狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

通過“打洞”實現端口映射

admin
2024年6月8日 18:49 本文熱度 950

什么是打洞

NAT1網絡下,我們可以通過一種 “打洞” 的方式,將本地的 TCP 端口暴露至公網上,運行 HTTP 服務等。通過Natter 打洞+防火墻的轉發規則。我們可以方便地將內網設備暴露在公網。

實驗環境

  • 路由器(軟路由)
  • Centos7 (內網主機)

檢驗網絡

首次使用,檢查當前網絡 NAT 情況。我們首先克隆項目到本地環境。

git clone https://github.com/MikeWang000000/Natter.git
cd Natter
# 檢驗網絡
python natter.py --check-nat

如上圖,沒有任何報錯的話。證明可以愉快地玩耍了。

大概率會失敗的原因 你的家庭網絡是NAT,不是NAT1.(目前大多數運營商網絡都是NAT1)

牛刀小試

實驗目的:

通過外網,訪問我本地服務器(192.168.123.173:5244)alist云盤。首先我們利用Natter腳本打洞

python3 natter.py -t  5244 

-t 即tcp協議。

上一步完成后,我們還無法訪問。因為沒有指定內網設備的IP和端口。因此我們需要在路由器中進行端口轉發。

端口轉發

登錄路由器,在端口轉發中設置參數如下:

如上,當我們訪問http://118.xxxx.xxxx.183:65317/便可以訪問我們本地的5244端口。

多臺設備打洞

在上述方法中,我們僅僅打通了5244端口。如果有多個端口和多臺設備怎么辦呢?或者路由器沒有端口轉發功能怎么辦?我們需要新建一個json文件。內容如下

// 注意:JSON 配置文件不支持代碼注釋,此處為說明配置用途。
{
    "logging": {
        "level""info",                        // 日志等級:可選值:"debug"、"info"、"warning"、"error"
        "log_file""./natter.log"              // 將日志輸出到指定文件,不需要請留空:""
    },
    "status_report": {
        // 當外部IP/端口發生改變時,會執行下方命令。
        // 大括號 {...} 為占位符,命令執行時會被實際值替換。
        // 不需要請留空:""
        "hook""bash ./natter-hook.sh '{protocol}' '{inner_ip}' '{inner_port}' '{outer_ip}' '{outer_port}'",
        "status_file""./natter-status.json"   // 將實時端口映射狀態儲存至指定文件,不需要請留空:""
    },
    "open_port": {
        // 此處設置 Natter 打洞IP:端口。(僅打洞)
        // 此處地址為 Natter 綁定(監聽)的地址,Natter 僅對這些地址打洞,您需要手動設置端口轉發。
        // 注意:使用默認出口IP,請使用 0.0.0.0 ,而不是 127.0.0.1 。
        "tcp": [
            "0.0.0.0:3456",
            "0.0.0.0:3457"
        ],
        "udp": [
            "0.0.0.0:3456",
            "0.0.0.0:3457"
        ]
    },
    "forward_port": {
        // 此處設置需要 Natter 開放至公網的 IP:端口。(打洞 + 內置轉發)
        // Natter 會全自動打洞、轉發,您無需做任何干預。
        // 注意:使用本機IP,請使用 127.0.0.1,而不是 0.0.0.0 。
        "tcp": [
            "127.0.0.1:80",
            "192.168.1.100:443"
        ],
        "udp": [
            "127.0.0.1:53",
            "192.168.1.100:51820"
        ]
    },
    "stun_server": {
        // 此處設置公共 STUN 服務器。
        // TCP 服務器請確保 TCP/3478 端口開放可用;
        // UDP 服務器請確保 UDP/3478 端口開放可用。
        "tcp": [
            "stun.stunprotocol.org",
            "stun.voip.blackberry.com"
        ],
        "udp": [
            "stun.miwifi.com",
            "stun.qq.com"
        ]
    },
    "keep_alive""www.qq.com"  // 此處設置 HTTP Keep-Alive 服務器。請確保該服務器 80 端口開放,且支持 HTTP Keep-Alive。
}

運行

python3 natter.py -c ./config.json

總結

利用此工具,我們可以很便捷地實現外網訪問內網設備。但是當運營商IP發生變化時,還不能自動更新IP。因此可以參照前期的文章配合域名自動更新。此外,沒有必要盡量不要將內網設備暴露在公網!


該文章在 2024/6/8 18:49:08 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved