用小米路由器輕松實(shí)現(xiàn)端口映射(小米路由器怎么做端口映射)
當(dāng)我嘗試在家搭建私人網(wǎng)盤(pán)nextcloud時(shí),遇到一個(gè)難題:如何隨時(shí)隨地訪問(wèn)家里的服務(wù)器 ?業(yè)界有幾種解決方案:
option1: 租用公網(wǎng)服務(wù)器,把應(yīng)用部署在公網(wǎng)服務(wù)器上。優(yōu)點(diǎn):安全穩(wěn)定,不需要維護(hù)設(shè)備;缺點(diǎn):需要定期支付租賃費(fèi)用。
option2: 應(yīng)用部署在家用服務(wù)器上,依賴(lài)“內(nèi)網(wǎng)穿透”(如frps/frpc)訪問(wèn)家庭網(wǎng)絡(luò)。優(yōu)點(diǎn):適用家庭寬帶沒(méi)有公網(wǎng)IP的場(chǎng)景;缺點(diǎn):需要租用公網(wǎng)服務(wù)器做“代理”,帶寬受公網(wǎng)服務(wù)器限制。
option3: 應(yīng)用部署在家用服務(wù)器上,用“端口映射”訪問(wèn)家庭網(wǎng)絡(luò)。優(yōu)點(diǎn):帶寬大,且無(wú)需租賃服務(wù)器;缺點(diǎn):依賴(lài)運(yùn)營(yíng)商臨時(shí)公網(wǎng)IP。
我嘗試過(guò)option1和option2,出于成本考慮我選擇性價(jià)比高的option3,畢竟長(zhǎng)期租用服務(wù)器價(jià)格不菲,并且?guī)捲酱筚M(fèi)用也越高。
1 前提
開(kāi)始之前,請(qǐng)確認(rèn)是否滿足下列條件,缺一不可。
需要寬帶撥號(hào)賬號(hào)和密碼;
需要確認(rèn)寬帶使用公網(wǎng)IP;
需要路由器有DDNS功能;
需要獲取光貓超級(jí)權(quán)限。
1.1 需要寬帶撥號(hào)賬號(hào)和密碼
家庭寬帶采用撥號(hào)上網(wǎng),即PPPOE上網(wǎng)。通常寬帶上門(mén)安裝時(shí),運(yùn)營(yíng)商工作人員會(huì)設(shè)置好光貓撥號(hào)上網(wǎng),并提供用戶名密碼。如果不記得用戶名密碼,可撥打運(yùn)營(yíng)商熱線電話詢問(wèn)。
1.2 確認(rèn)寬帶是否有公網(wǎng)IP
電信寬帶往往會(huì)有動(dòng)態(tài)公網(wǎng)IP(ipv4),而移動(dòng)寬帶通常沒(méi)有動(dòng)態(tài)公網(wǎng)IP,需要自己確認(rèn)清楚。有一種方法可供確認(rèn):
1)查詢家用網(wǎng)絡(luò)對(duì)外IP地址:
IP地址查詢
2)登錄光貓查看WAN口IP地址:
以電信光貓為例,光貓背后往往有IP地址、賬號(hào)、密碼,如下圖:
“光貓”銘牌
瀏覽器地址欄訪問(wèn)192.168.1.1,使用賬號(hào)useradmin和密碼登錄,查詢WAN口IP地址。
如果上述兩個(gè)IP一致,表示家用寬使有公網(wǎng)IP。否則,可以嘗試撥打運(yùn)營(yíng)商熱線電話要求提供動(dòng)態(tài)公網(wǎng)IP。
1.3 確認(rèn)路由器DDNS功能
我使用的是小米AC2100,登錄路由器管理地址選擇“高級(jí)設(shè)置”會(huì)看到“DDNS”,這表示路由器具有DDNS(動(dòng)態(tài)域名服務(wù))功能。
小米路由器webUI
1.4 獲取光貓的超級(jí)權(quán)限
光貓銘牌上的useradmin不是超級(jí)賬號(hào),telecomadmin才是超級(jí)賬號(hào),這里需要獲得telecomadmin賬號(hào)的密碼。由于我的光貓年代久遠(yuǎn)(2015年),獲取密碼很簡(jiǎn)單,可以參考豆瓣文章《烽火HG261GS破解超級(jí)用戶密碼》。其他型號(hào)如果百度不到就求助萬(wàn)能的淘寶吧。
2 開(kāi)始配置
2.1 配置光貓為橋接模式
瀏覽器登錄光貓IP 192.168.1.1,輸入超級(jí)賬號(hào)telecomadmin,以及密碼。
光貓webUI
進(jìn)入“網(wǎng)絡(luò)”——“寬帶設(shè)置”——“Internet連接”,連接名稱(chēng)選擇“4_INETERNET_B_VID_41”,連接類(lèi)型選擇“Bridge”,保存配置。注意,修改光貓配置會(huì)導(dǎo)致暫時(shí)斷網(wǎng)。
光貓配置橋接模式
2.2 配置路由器PPOE上網(wǎng)
瀏覽器登錄小米路由器管理IP地址(我已改為192.168.0.1),“常用設(shè)置”——“上網(wǎng)設(shè)置”,上網(wǎng)方式改為“PPPoE”,輸入PPPoE撥號(hào)賬號(hào)和密碼,點(diǎn)擊“應(yīng)用”。
小米路由器webUI
路由器設(shè)置PPPoE上網(wǎng)
查看“上網(wǎng)信息”——“外網(wǎng)狀態(tài)”出現(xiàn)“撥號(hào)成功”,即表示路由器撥號(hào)成功,網(wǎng)絡(luò)已恢復(fù)。做到這一步,表示已完成了重要的一半。
路由器撥號(hào)成功
2.3 申請(qǐng)免費(fèi)域名
我使用“公云(www.pubyun.com)”申請(qǐng)免費(fèi)域名,注冊(cè)登錄后選擇“動(dòng)態(tài)域名”——“創(chuàng)建域名”,輸入域名前綴,這里就填你想要的域名名字;僅勾選.f3322.net這個(gè)免費(fèi)域名后綴。
pubyun申請(qǐng)免費(fèi)域名
申請(qǐng)成功后通過(guò)“會(huì)員中心”可查看自己的域名:
pubyun會(huì)員中心
2.4 配置路由器DDNS
瀏覽器登錄小米路由器管理IP地址(192.168.0.1),“常用設(shè)置”——“高級(jí)設(shè)置”——“DDNS”——“添加服務(wù)”。這里的“服務(wù)提供商”可以自由選擇,因?yàn)槲业拿赓M(fèi)域名是在“公云”申請(qǐng)的,選擇“公云”。當(dāng)狀態(tài)顯示“連接成功”,表示DDNS配置成功。
DDNS配置
DDNS配置成功
打開(kāi)windows CMD輸入"ping 域名"測(cè)試域名解析,如果ping通,表示域名解析已生效,否則可以點(diǎn)擊“手動(dòng)更新”。
域名解析測(cè)試
2.5 配置端口轉(zhuǎn)發(fā)
瀏覽器登錄小米路由器管理IP地址(192.168.0.1),“常用設(shè)置”——“高級(jí)設(shè)置”——“端口轉(zhuǎn)發(fā)”——“添加規(guī)則”,配置你想暴露出去的【名稱(chēng)、協(xié)議、外部端口、內(nèi)部IP地址、內(nèi)部端口】,除了80和443端口不能用,其他端口都可以配置。以我的配置test為例,協(xié)議選擇“TCP和UDP”,外部端口“8888”,內(nèi)部IP地址為“windows本機(jī)IP”,內(nèi)部端口“8888”。
端口轉(zhuǎn)發(fā)配置
3 測(cè)試
3.1 啟動(dòng)windows本地測(cè)試服務(wù)
我用了nodejs的一個(gè)簡(jiǎn)單命令行http服務(wù)器http-server(需要安裝nodejs,http-server庫(kù))做測(cè)試,服務(wù)器監(jiān)聽(tīng)本地IP地址192.168.0.81的8888端口,如下所示:
啟動(dòng)測(cè)試程序http-server
瀏覽器輸入http://192.168.0.81:8888測(cè)試http-server是否可訪問(wèn),出現(xiàn)下面界面表示訪問(wèn)成功。
http-server訪問(wèn)測(cè)試
3.2 測(cè)試端口映射
瀏覽器輸入“http://域名:8888”測(cè)試,出現(xiàn)下面界面表示端口映射成功!打開(kāi)手機(jī)瀏覽器(關(guān)閉wifi,避免連上家里的局域網(wǎng))訪問(wèn)“http://域名:8888”也能同樣出現(xiàn)下面界面!這就是端口映射的魅力,即使不連接無(wú)線路由器,也能訪問(wèn)家里的服務(wù)。
端口映射測(cè)試
這是我搭建的nextcloud網(wǎng)盤(pán)界面,已經(jīng)可以通過(guò)“域名:端口”的形式訪問(wèn)。
訪問(wèn)nextcloud
4 結(jié)語(yǔ)
盡管端口映射看起來(lái)很美好,但它仍然美中不足。最重要的一點(diǎn)是免費(fèi)域名只能通過(guò)http訪問(wèn),而不是https!http協(xié)議不會(huì)對(duì)數(shù)據(jù)進(jìn)行加密,就好比你的數(shù)據(jù)在網(wǎng)絡(luò)上傳輸是毫無(wú)防備的。