博客專欄

        EEPW首頁 > 博客 > 如何像訪問百度一樣訪問家里的服務器?(三)

        如何像訪問百度一樣訪問家里的服務器?(三)

        發布人:魚鷹談單片機 時間:2023-05-24 來源:工程師 發布文章

        在前面的兩篇筆記《家里寬帶搞個服務器,YYDS(一)》《家里寬帶申請公網 IP(二)》,介紹了如何獲取公網 IP,算是打好了基礎。

        也有很多道友說,很難獲取公網 IPv4,可能每個地方政策不同,運營商不同,政策也不同,因此如果確實有需要的話,可以更換運營商,或者使用 IPv6(這個一般運營商都會給,如果沒有,可以打客服問問)。但是也有道友說 IPv6 現在不少路由器可能不支持,這樣連接路由器可能訪問不了家里的服務器。但是我們可以用手機熱點(電腦連接手機熱點)解決,現在手機一般除了分配IPv4,也會有 IPv6 地址只要流量夠多,自用的話,完全夠用了。那么公網IP(v4 or v6)有了,又該如何訪問呢?
        因為光貓設置了橋接,因此必須使用寬帶的賬號和密碼進行撥號上網。一般的路由器都有這個功能,自己上網搜一搜就行。

        圖片

        (圖片來源網絡)

        寬帶賬號和密碼就是入網通行證,有了這個,運營商才會認可你,允許你聯網,因此必須設置。

        圖片

        設置完成后,正常情況下就應該能夠連接路由器上網了,不行的話,重啟路由器試試。現在網絡的掌控權已經算是掌握在我們自己手里了,可以為所欲為了。
        如何將自己的服務器(電腦、樹莓派等聯網設備)暴露到互聯網呢?即別人可以像訪問百度一樣訪問你的服務器。

        最簡單方法:DMZ 主機

        如果你的路由器支持 DMZ 主機,直接開啟這個,就可以免去一大堆設置。1、在路由器上設置服務器固定 IP
            讓你的服務器固定局域網的 IP,這樣重啟后,服務器的 IP 地址就不會變化了(通過 MAC 綁定)。
        2、設置服務器 IP 地址    在 DMZ 主機界面,設置服務器的固定 IP,比如192.168.1.100。

        圖片

        (圖片來源于網絡) 

        如此一來,你就可以直接通過公網ip ping 通家里的服務器了。

        比如可以手機關閉wifi,然后使用自身網絡訪問 ping 公網ip(事實上,沒有接服務器也能 ping 通,tp-link測試是這樣的)。

        這樣所有從外部訪問公網 ip 的流量都自動到了 192.168.1.100 這個服務器中,這就是 DMZ 主機的作用。

        此時你可以通過手機 ssh 登錄家里的服務器(建議使用樹莓派測試,沒有防火墻限制,配置簡單,功耗也很低)。

        注意先在內網測試 ssh 登錄沒有問題,再嘗試使用 公網 ip 登錄。

        比如 ssh pi@172.70.214.xx, 正常情況下,不管在內網還是外網,都可以正常登錄。

        端口轉發

        上面的方法,將服務器的所有端口都開放了,比如外部訪問的 2080 端口對應服務器的 2080 端口,一一映射,可能不是很安全(注意,有些端口是從運營商的層面禁用了,因此怎么樣都是無法訪問的)。

        因此我們可以放棄開啟 DMZ,轉而使用端口進行轉發。

        圖片

         (圖片來源于網絡) 

        比如外部端口 10000,內部端口 2000,IP 地址 192.168.1.100。

        那么你可以通過內網訪問192.168.1.100:2000,進而訪問服務的 2000端口,如果這個端口是網頁,那么可以在瀏覽器輸入上面的信息訪問。

        而如果使用公網 IP,也是類似的,不過端口變成 10000,如 172.70.214.xx:10000 就能訪問家里的資源了(用手機訪問)。

        如目前魚鷹老家的樹莓派,安裝了 Nginx 服務,端口號 20081,在瀏覽器上就能看到魚鷹存放的一些測試文件了(后面有機會分享這個)。

        圖片

        (后面準備有時間,把分享的公眾號資源放在這里,方便大家下載,云盤速度實在太慢了,但前提是先把樹莓派的安全問題搞定,不然被黑客黑了就得不償失了)。

        ssh 登錄默認端口是 22(考慮到安全問題,可以換一個),因此這個映射一定要有,否則你在外面就登錄不了服務器了。

        怎么像訪問百度一樣訪問服務器呢

        回到今天的主題,如何像上面圖片一樣,能隨時隨地訪問呢?答案是 DDNS。

        有點網絡常識的都知道,網絡是通過 IP地址互聯的,但是我們ip地址不容易記住,因此有了域名,這樣我們可以通過域名來間接得到 IP ,從而訪問。

        這里需要 DNS 服務來得到我們需要的 IP,比如,我們訪問 www.baidu.com,電腦其實也不知道它對應的 IP,但是它可以一級一級往上查,從而得到它的 IP 地址:

        圖片

        圖片

        可以看到,百度的 IP 是 39.156.66.10

        但是這種 IP 一般是固定的,DNS 服務器有存檔(就算IP改變了,也會更新),而我們家里的寬帶雖然申請了公網 IP,但它是動態的,可能隔一段時間或重啟,IP 就變了。

        此時我們可以通過郵箱或者其他方式告訴我們公網 IP,通過 IP 訪問。但這種方式顯然很麻煩。

        因此我們可以使用 DDNS 服務。

        魚鷹采用了公云(https://www.pubyun.com/products/dyndns/)的免費 DDNS 服務(TP-Link路由器有這免費功能,但我家的不能用,哎)。

        只要在上面注冊好,就可以擁有一個免費的 xxx.f3322.net 的域名。xxx 可以任取自己喜歡的。

        然后在樹莓派中定時通過腳本定時更新公網 IP 到服務器中。

        這樣你訪問域名  xxx.f3322.net 時候,就可以通過公云的 DDNS 服務得到你家里的 IP 地址了。


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: 單片機

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 木兰县| 贵溪市| 昭平县| 教育| 周口市| 纳雍县| 犍为县| 凤阳县| 友谊县| 正定县| 宁乡县| 油尖旺区| 尼勒克县| 恩施市| 德钦县| 延边| 北票市| 炉霍县| 台南市| 策勒县| 陇南市| 西宁市| 阿克| 遵义市| 丰顺县| 铁岭县| 扎兰屯市| 大兴区| 仁怀市| 嫩江县| 祁连县| 嘉善县| 太原市| 城固县| 沾化县| 军事| 汾西县| 桂林市| 昂仁县| 图们市| 兴安县|