您設定了埠轉發。您的朋友可以從網際網路訪問您的伺服器。但您無法使用您的公共 IP 或域名從您自己的網路內部訪問它。
這稱為髮夾 NAT(或 NAT 環回),大多數路由器不支援它。
問題
您正在嘗試訪問: yourserver.com 或 203.45.67.89:25565
解析為您的公共IP。您的路由器看到來自網路內部的流向其公共 IP 的流量並將其丟棄。路由器認為“這沒有意義”並終止連線。
快速修復:使用本地 IP 代替
使用以下方式訪問您的伺服器 192.168.1.50:25565 (您伺服器的本地 IP)。
使用 yourserver.com 僅當您位於網路之外時。
找到你的伺服器的本地IP:
Windows(在伺服器上):
ipconfig
查詢 IPv4 地址。
Mac/Linux:
hostname -I
書籤 http://192.168.1.50 或您伺服器的本地 IP 是什麼。
更好的修復:在路由器上啟用 Hairpin NAT
有些路由器支援此功能。檢查您的路由器設定。
尋找:
- “NAT環回”
- “髮夾NAT”
- 《NAT 反射》
通常在高階 > NAT 設定中。
如果找到它,請啟用它。現在您可以從網路內部使用您的公共 IP。
支援的常見路由器:
- 大多數華碩路由器(預設啟用)
- 一些 Netgear(必須手動啟用)
- pfSense/OPNsense(必須配置)
- Ubiquiti(通常有效)
不支援:
- 大多數 ISP 提供的閘道器
- 50 美元以下的預算路由器
- 舊版 TP-Link/Linksys 型號
替代方案:水平分割 DNS
設定本地DNS進行解析 yourserver.com 至 192.168.1.50 而不是您的公共 IP。
如果您執行 Pi-hole 或自定義 DNS: 新增本地DNS記錄: yourserver.com → 192.168.1.50
現在 yourserver.com 自動在您的網路內部和外部工作,根據您所在的位置轉到正確的 IP。
大多數人: 在家就用本地IP即可。簡單又有效。
為什麼會發生這種情況
正常流量:您的電腦→路由器→網際網路→伺服器
Hairpin 嘗試:你的電腦 → 路由器(看到目的地是它自己)→ ??? (混亂)
路由器的設計目的不是將流量從內部網路路由到其自己的公共 IP 返回到內部網路。這是一種只有自我託管者才會遇到的奇怪的邊緣情況。
底線
當您在網路內部時,請使用伺服器的本地 IP (192.168.1.x).
當您在外面時,請使用您的公共 IP 或域名。
或者在您的路由器上啟用 NAT Loopback(如果支援)。但老實說,僅使用本地 IP 更容易,並且適用於每個路由器。