如何像訪問百度一樣訪問家里的服務(wù)器?(三)
在前面的兩篇筆記《家里寬帶搞個(gè)服務(wù)器,YYDS(一)》《家里寬帶申請(qǐng)公網(wǎng) IP(二)》,介紹了如何獲取公網(wǎng) IP,算是打好了基礎(chǔ)。
也有很多道友說,很難獲取公網(wǎng) IPv4,可能每個(gè)地方政策不同,運(yùn)營商不同,政策也不同,因此如果確實(shí)有需要的話,可以更換運(yùn)營商,或者使用 IPv6(這個(gè)一般運(yùn)營商都會(huì)給,如果沒有,可以打客服問問)。但是也有道友說 IPv6 現(xiàn)在不少路由器可能不支持,這樣連接路由器可能訪問不了家里的服務(wù)器。但是我們可以用手機(jī)熱點(diǎn)(電腦連接手機(jī)熱點(diǎn))解決,現(xiàn)在手機(jī)一般除了分配IPv4,也會(huì)有 IPv6 地址,只要流量夠多,自用的話,完全夠用了。那么公網(wǎng)IP(v4 or v6)有了,又該如何訪問呢?
因?yàn)楣庳堅(jiān)O(shè)置了橋接,因此必須使用寬帶的賬號(hào)和密碼進(jìn)行撥號(hào)上網(wǎng)。一般的路由器都有這個(gè)功能,自己上網(wǎng)搜一搜就行。
(圖片來源網(wǎng)絡(luò))
寬帶賬號(hào)和密碼就是入網(wǎng)通行證,有了這個(gè),運(yùn)營商才會(huì)認(rèn)可你,允許你聯(lián)網(wǎng),因此必須設(shè)置。
設(shè)置完成后,正常情況下就應(yīng)該能夠連接路由器上網(wǎng)了,不行的話,重啟路由器試試?,F(xiàn)在網(wǎng)絡(luò)的掌控權(quán)已經(jīng)算是掌握在我們自己手里了,可以為所欲為了。
如何將自己的服務(wù)器(電腦、樹莓派等聯(lián)網(wǎng)設(shè)備)暴露到互聯(lián)網(wǎng)呢?即別人可以像訪問百度一樣訪問你的服務(wù)器。
如果你的路由器支持 DMZ 主機(jī),直接開啟這個(gè),就可以免去一大堆設(shè)置。1、在路由器上設(shè)置服務(wù)器固定 IP
讓你的服務(wù)器固定局域網(wǎng)的 IP,這樣重啟后,服務(wù)器的 IP 地址就不會(huì)變化了(通過 MAC 綁定)。
2、設(shè)置服務(wù)器 IP 地址 在 DMZ 主機(jī)界面,設(shè)置服務(wù)器的固定 IP,比如192.168.1.100。
(圖片來源于網(wǎng)絡(luò))
如此一來,你就可以直接通過公網(wǎng)ip ping 通家里的服務(wù)器了。
比如可以手機(jī)關(guān)閉wifi,然后使用自身網(wǎng)絡(luò)訪問 ping 公網(wǎng)ip(事實(shí)上,沒有接服務(wù)器也能 ping 通,tp-link測(cè)試是這樣的)。
這樣所有從外部訪問公網(wǎng) ip 的流量都自動(dòng)到了 192.168.1.100 這個(gè)服務(wù)器中,這就是 DMZ 主機(jī)的作用。
此時(shí)你可以通過手機(jī) ssh 登錄家里的服務(wù)器(建議使用樹莓派測(cè)試,沒有防火墻限制,配置簡(jiǎn)單,功耗也很低)。
注意先在內(nèi)網(wǎng)測(cè)試 ssh 登錄沒有問題,再嘗試使用 公網(wǎng) ip 登錄。
比如 ssh pi@172.70.214.xx, 正常情況下,不管在內(nèi)網(wǎng)還是外網(wǎng),都可以正常登錄。
端口轉(zhuǎn)發(fā)上面的方法,將服務(wù)器的所有端口都開放了,比如外部訪問的 2080 端口對(duì)應(yīng)服務(wù)器的 2080 端口,一一映射,可能不是很安全(注意,有些端口是從運(yùn)營商的層面禁用了,因此怎么樣都是無法訪問的)。
因此我們可以放棄開啟 DMZ,轉(zhuǎn)而使用端口進(jìn)行轉(zhuǎn)發(fā)。
(圖片來源于網(wǎng)絡(luò))
比如外部端口 10000,內(nèi)部端口 2000,IP 地址 192.168.1.100。
那么你可以通過內(nèi)網(wǎng)訪問192.168.1.100:2000,進(jìn)而訪問服務(wù)的 2000端口,如果這個(gè)端口是網(wǎng)頁,那么可以在瀏覽器輸入上面的信息訪問。
而如果使用公網(wǎng) IP,也是類似的,不過端口變成 10000,如 172.70.214.xx:10000 就能訪問家里的資源了(用手機(jī)訪問)。
如目前魚鷹老家的樹莓派,安裝了 Nginx 服務(wù),端口號(hào) 20081,在瀏覽器上就能看到魚鷹存放的一些測(cè)試文件了(后面有機(jī)會(huì)分享這個(gè))。
(后面準(zhǔn)備有時(shí)間,把分享的公眾號(hào)資源放在這里,方便大家下載,云盤速度實(shí)在太慢了,但前提是先把樹莓派的安全問題搞定,不然被黑客黑了就得不償失了)。
ssh 登錄默認(rèn)端口是 22(考慮到安全問題,可以換一個(gè)),因此這個(gè)映射一定要有,否則你在外面就登錄不了服務(wù)器了。
怎么像訪問百度一樣訪問服務(wù)器呢回到今天的主題,如何像上面圖片一樣,能隨時(shí)隨地訪問呢?答案是 DDNS。
有點(diǎn)網(wǎng)絡(luò)常識(shí)的都知道,網(wǎng)絡(luò)是通過 IP地址互聯(lián)的,但是我們ip地址不容易記住,因此有了域名,這樣我們可以通過域名來間接得到 IP ,從而訪問。
這里需要 DNS 服務(wù)來得到我們需要的 IP,比如,我們?cè)L問 www.baidu.com,電腦其實(shí)也不知道它對(duì)應(yīng)的 IP,但是它可以一級(jí)一級(jí)往上查,從而得到它的 IP 地址:
可以看到,百度的 IP 是 39.156.66.10
但是這種 IP 一般是固定的,DNS 服務(wù)器有存檔(就算IP改變了,也會(huì)更新),而我們家里的寬帶雖然申請(qǐng)了公網(wǎng) IP,但它是動(dòng)態(tài)的,可能隔一段時(shí)間或重啟,IP 就變了。
此時(shí)我們可以通過郵箱或者其他方式告訴我們公網(wǎng) IP,通過 IP 訪問。但這種方式顯然很麻煩。
因此我們可以使用 DDNS 服務(wù)。
魚鷹采用了公云(https://www.pubyun.com/products/dyndns/)的免費(fèi) DDNS 服務(wù)(TP-Link路由器有這免費(fèi)功能,但我家的不能用,哎)。
只要在上面注冊(cè)好,就可以擁有一個(gè)免費(fèi)的 xxx.f3322.net 的域名。xxx 可以任取自己喜歡的。
然后在樹莓派中定時(shí)通過腳本定時(shí)更新公網(wǎng) IP 到服務(wù)器中。
這樣你訪問域名 xxx.f3322.net 時(shí)候,就可以通過公云的 DDNS 服務(wù)得到你家里的 IP 地址了。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。