您設定了埠轉發。您的朋友可以從網際網路訪問您的伺服器。但您無法使用您的公共 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 更容易,並且適用於每個路由器。