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

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

edgexie

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

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

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

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

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

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

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

<?php
use Workerman\Worker;
require_once './Workerman/Autoloader.php';
// 創(chuàng)建一個(gè)Worker監(jiān)聽(tīng)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);
};
// 運(yùn)行worker
Worker::runAll();

3.在服務(wù)器的apache服務(wù)中(默認(rèn)路徑:/var/www/html)上傳一個(gè)index.html網(wǎng)頁(yè),一定要注意填寫(xiě)正確的地址即你的公網(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">測(cè)試</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('即時(shí)聊天@xie');
    };
    ws.onmessage = function(e){
        document.getElementById('show').innerHTML = e.data;
    };
    ws.onclose = function(e) {
        alert('WebSocketClosed!');
    };

    //測(cè)試按鈕發(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.打開(kāi)瀏覽器輸入公網(wǎng)地址,截圖如下:
圖片

圖片

圖片

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

我這樣折騰以后,只要開(kāi)著那個(gè)服務(wù)器和路由器就相當(dāng)于我有了一個(gè)隨時(shí)可以遠(yuǎn)程玩兒弄的服務(wù)器。

我是新手,老司機(jī)們不要笑啊。

5675 2 2
2個(gè)評(píng)論

walkor

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

  • 暫無(wú)評(píng)論
edgexie

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

  • 暫無(wú)評(píng)論
年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表評(píng)論

edgexie

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