国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

二級路由器下服務(wù)器的映射

edgexie

2016/08/30 15:58
最近在學(xué)習(xí)workerman框架,雖然也在看手冊,但找到些好玩兒的會增強自己學(xué)習(xí)的主動性。所以就尋思著如何將自己制作的東西分享給朋友,也就是怎么把本地搭建的服務(wù)映射到外網(wǎng)。所以今天做下筆記,以便在成長路上留下一抹印記。
我的家還算大,書房跟 客廳路由器的位置比較遠,所以采用兩級路由器的方式組網(wǎng),用文本表示一下組網(wǎng)的線路結(jié)構(gòu)吧。
光貓LAN口->路由器A WAN口 | 路由器A LAN口->路由器B WAN口 | 路由器B LAN口->centos服務(wù)器。其中路由器A負責(zé)撥號上網(wǎng)。
先來想想如果想在有internet的地方訪問到本地centos服務(wù)器的訪問鏈:

  • 通過公網(wǎng)地址訪問到路由器A的WAN口。所以你必須保證自己家的網(wǎng)絡(luò)運營商給你分配的是一個公網(wǎng)地址,隨著上網(wǎng)用戶的增減,IPv4的IP地址緊張,現(xiàn)在運營商的普遍做法是在用戶沒要求的時候給用戶分配一個內(nèi)網(wǎng)地址,如10.XXX.XXX.XXX 這樣的地址。你會發(fā)現(xiàn)百度‘IP地址’所顯示的地址和路由器A的WAN口地址不一樣。這時候你需要跟運營商溝通,說你需要公網(wǎng)地址。

  • 如果運營商給你改成了公網(wǎng)地址,事情就可以進行下去了。把路由器A給路由器B分配的IP地址映射出去,插一句:路由器B的上網(wǎng)方式你要設(shè)置成靜態(tài)獲取一個路由器的IP地址。操作路由器A在管理頁面里,找到功能如“虛擬服務(wù)器”或者“端口段映射”(具體看所屬品牌路由器上有什么對應(yīng)的功能名稱),把路由器B的WAN口地址做映射,端口填寫你服務(wù)器對外提供服務(wù)的端口,我開的是一個apache(端口80)和一個worker(端口2345)。路由器(tplink)映射設(shè)置如下圖:
    圖片

  • 這樣通過公網(wǎng)就可以訪問到路由器B的WAN口了。接下來把路由器B下掛的服務(wù)器地址映射出去。如下圖(騰達):
    圖片

  • 這樣就可以在瀏覽器中通過公網(wǎng)地址訪問到你的服務(wù)器了。

  • 瀏覽器輸入公網(wǎng)地址如:60.223.XX.XX ,插一句:有的用戶80端口會被服務(wù)商屏蔽,如果被屏蔽請修改為一個10000以上的端口去把服務(wù)器的apache映射出去,當然這里也需要在服務(wù)器中改apache配置文件里的服務(wù)端口。

在服務(wù)器上開啟wokerman,start.php如下:

<?php
use Workerman\Worker;
require_once './Workerman/Autoloader.php';
// 創(chuàng)建一個Worker監(jiān)聽2345端口,使用websocket協(xié)議通訊
$ws_worker = new Worker("websocket://0.0.0.0:2345");
$ws_worker->onConnect = function($connection)use($ws_worker){
    echo $connection->id."\n";
};
function send($ws_worker,$data){
    foreach($ws_worker->connections as $connection)
    {
        $connection->send($data);
    }
}
$ws_worker->onMessage = function($connection,$data)use($ws_worker)
{
    send($ws_worker,$data);
};
// 運行worker
Worker::runAll();

3.在服務(wù)器的apache服務(wù)中(默認路徑:/var/www/html)上傳一個index.html網(wǎng)頁,一定要注意填寫正確的地址即你的公網(wǎng)地址,我源碼中用60.223.XX.XX表示了

源碼如下:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1,user-scalable=no">
<style>
body{ font-size:16px; line-height:1.8; width:900px; margin:auto;padding: 60px 0}
*{ margin:0; padding:0;}
#show{
width: 200px;border: 1px solid black;margin: 10px;display: inline-block;height: 29px;
}
input{
height: 29px;line-height: 29px;padding-left: 10px;width: 200px;
}
</style>
</head>
<body>
    <div>輸入:<input type="text" id="content" /><button onclick="sendText()" type="submit">測試</button></div>
    <div>記錄:<span id="show"></span></div>
    <script type="text/javascript">
    //使用websocket協(xié)議
    ws = new WebSocket("ws://60.223.XX.XX:2345");
    ws.onopen = function(){
        ws.send('即時聊天@xie');
    };
    ws.onmessage = function(e){
        document.getElementById('show').innerHTML = e.data;
    };
    ws.onclose = function(e) {
        alert('WebSocketClosed!');
    };

    //測試按鈕發(fā)送文本框內(nèi)容
    function sendText(){
        var content = document.getElementById('content').value;
        if(content!=''){
            ws.send(document.getElementById('content').value);
            document.getElementById('content').value='';
        }
    };
    </script>
</body>
</html>

4.打開瀏覽器輸入公網(wǎng)地址,截圖如下:
圖片

圖片

圖片

題外話:
我為什么要這樣折騰?
前幾天從朋友家拿了個他一腳踹開的電腦,配置一般。我就尋思的在家自己搭建個服務(wù)器學(xué)習(xí)。就順過來了,拿回來第一件事就是用U盤裝centos無圖形界面,安裝還算順利,唯一要注意的是引導(dǎo)程序別安裝在U盤上,不然,拔了U盤centos啟動不了。
有花生殼的朋友還可以在路由器A上開啟DDNS,這樣通過訪問花生殼提供的免費域名就可以了,不用再輸入那個公網(wǎng)地址,具體我想大家應(yīng)該會操作吧,只是簡單的登錄一下花生殼就行。
一定要注意centos的防火墻設(shè)置,把2345和80端口開了。

我這樣折騰以后,只要開著那個服務(wù)器和路由器就相當于我有了一個隨時可以遠程玩兒弄的服務(wù)器。

我是新手,老司機們不要笑啊。

5529 2 2
2個評論

walkor

很精彩的分享。
希望越來越多的人能夠把自己使用workerman的經(jīng)驗分享出來,方便更多人參考。
workerman社區(qū)需要這樣的分享,當然不一定分享到問答里,任何博客系統(tǒng)都可以。
已經(jīng)設(shè)置為推薦文章。
再次感謝

  • 暫無評論
edgexie

哈哈,寫博客最主要是分享和給自己留下點知識積累.
還是懇請大大和其他前輩多給小弟的知識糾錯啊.
還有為什么發(fā)的文章用了代碼格式不起作用.而顯示{{{ }}}.
還是那句話:分享也是成長.

  • 暫無評論
年代過于久遠,無法發(fā)表評論

edgexie

1925
積分
0
獲贊數(shù)
0
粉絲數(shù)
2016-08-26 加入
??