埠轉發因令人困惑而聞名。它出現在每個遊戲指南、每個家庭伺服器教程和每個 IP 攝像機設定指南中 - 通常隱藏在帶有神秘欄位的路由器設定中,並且沒有解釋它的實際用途。
2026 年 10 月 8 日更新: 新增了有序的故障排除清單以及 CGNAT、雙 NAT 和髮夾 NAT 指南的連結。 DHCP 網路上的
本指南跳過了術語並解釋了實際發生的情況,因此您可以就是否需要它做出正確的決定,並在需要時正確設定它。
心智模型:你的路由器是接待員
您的路由器位於家庭網路和網際網路之間。您家中的每臺裝置(電話、膝上型電腦、智慧電視、遊戲機)共享一個由 ISP 分配的公共 IP 地址。在內部,您的路由器為每個裝置提供了自己的私有 IP(例如 192.168.1.x).
可以把它想象成一家只有一個電話號碼但有很多員工的公司。當有人撥打總機號碼時,接待員需要知道將呼叫轉接到哪個分機。
埠轉發是告訴您的路由器的規則列表: “當網際網路上的某人連線到埠 25565 時,將該連線轉移到位於 192.168.1.50 的 PC。”
如果沒有這條規則,路由器不知道將傳入連線傳送到哪裡 - 因此它會丟棄它。
什麼是埠
每個網路連線都使用兩件事:IP 地址(哪臺計算機)和埠號(該計算機上的哪個應用程式)。
埠只是從 0 到 65535 的數字。您可能見過的常見埠:
| 連接埠 | 服務 |
|---|---|
| 80 | HTTP(網路) |
| 443 | HTTPS(安全網路) |
| 22 | SSH |
| 25565 | 我的世界 Java 版 |
| 3389 | Remote Desktop (RDP) |
| 32400 | Plex 媒體伺服器 |
當你打字時 google.com 在您的瀏覽器中,您的計算機在埠 443 上連線到 Google 的 IP。當您的朋友嘗試連線到您的 Minecraft 伺服器時,他們會在埠 25565 上連線到您的公共 IP。
如果沒有埠轉發,您的路由器就不知道將 Minecraft 流量傳送到您的遊戲 PC,而不是直接丟棄它。
當你確實需要埠轉發時
執行您家以外的人連線到的伺服器。
這才是真正的答案。如果您在路由器的 IPv4 NAT 後面託管服務並想要直接入站連線,通常需要埠對映。中繼、出站隧道或覆蓋 VPN 可以提供無需手動轉發的訪問。 IPv6 使用防火牆規則而不是 IPv4 NAT 對映。
具體案例:
- Minecraft Java 伺服器 — 埠 25565,網路之外的朋友沒有它就無法加入
- Plex 遠端訪問 — 埠 32400,沒有它,外部 Plex 客戶端無法訪問您的伺服器
- 從工作場所透過 SSH 連線到您的家庭伺服器 — 埠 22(或自定義埠)
- 遠端桌面 — 通常為 TCP 3389;更喜歡透過 VPN 訪問它而不是直接暴露它
- 網路攝像機 — 使用受支援的安全訪問方法;避免直接暴露他們的管理介面
- 自託管 VPN(WireGuard、OpenVPN) — 需要 VPN 埠上的埠轉發
共同點: 東西 外面 您的網路正在嘗試發起連線 進入 您的網路。
當你不需要埠轉發時
這是大多數指南都會跳過的部分。
作為客戶端玩網路遊戲不需要埠轉發。 您連線到 EA 的伺服器、Steam 伺服器或 PlayStation Network — 這是您的路由器自動處理的出站連線。無需埠轉發。
現代遊戲和應用程式使用 NAT 穿越技術(STUN、ICE、UDP 打洞)來建立點對點連線,而不需要手動開啟埠。諸如此類的事情:
- 玩《使命召喚》、《堡壘之夜》、《火箭聯盟》
- 使用 Discord 語音聊天
- Zoom、Teams、Google Meet 上的視訊通話
- 在 Netflix、YouTube、Twitch 上串流
全部出站。所有工作都無需任何埠轉發。
遊戲指南告訴你開啟一堆埠“以獲得更好的 NAT 型別”?有時對非常特定的平臺(Xbox、PlayStation NAT 型別評級)很有幫助,但實際上很少需要玩線上遊戲。
UPnP 自動處理許多情況。 許多路由器預設啟用通用即插即用功能。當應用程式需要開啟埠時,它會直接詢問路由器,路由器會自動開啟它。 Plex 使用這個,很多遊戲都使用它。缺點是安全性較差——應用程式可以在您不知情的情況下開啟埠。
如何設定埠轉發
確切的 UI 因路由器品牌而異,但過程在任何地方都是相同的:
步驟 1:為您的裝置提供靜態本地 IP
埠轉發指向本地網路上的特定 IP 地址。如果您的裝置的 IP 發生變化(DHCP 租約到期並重新分配),轉發就會中斷。透過以下任一方法修復此問題:
- 在裝置本身上設定靜態 IP(在網路設定中),或者
- 在路由器的 DHCP 設定中為該裝置的 MAC 地址保留 IP
步驟 2:找到路由器的管理面板
通常 192.168.1.1 或 192.168.0.1 在瀏覽器中。如果不確定,請檢查路由器上的標籤。
第三步:找到埠轉發部分
查詢:“埠轉發”、“虛擬伺服器”、“NAT”或“應用程式和遊戲”——因品牌而異。
步驟 4:建立規則
您需要填寫:
- 外部埠 (有時稱為“服務埠”或“公共埠”):傳入流量到達的埠號
- 內部IP:您要轉發到的裝置的本地IP
- 內部埠 (有時稱為“本地埠”):通常與外部埠相同,除非您要重新對映
- 協議:TCP、UDP 或兩者 — 檢查文件以瞭解您的應用程式需要什麼
第五步:儲存並測試
儲存規則。埠轉發在大多數路由器上立即處於活動狀態。
驗證您的埠轉發是否確實有效
首先確認應用程式正在執行並且可以在 LAN 內訪問。然後使用 埠檢查器 與您當前的公共 IP 和 外部 TCP 埠。測試時保持服務執行。 TCP 檢查器不會驗證僅 UDP 服務,例如典型的 WireGuard 端點;與其實際的客戶端進行測試。
如果測試失敗,請按順序完成這些檢查。當您發現第一個失敗的步驟時停止。
1.確認服務正在本地監聽
找到主機當前的LAN地址,然後檢查監聽套接字。將 25565 替換為應用程式的 TCP 埠。
Windows PowerShell:
Get-NetTCPConnection -State Listen -LocalPort 25565
Linux:
sudo ss -lntp 'sport = :25565'
監聽器僅繫結到 127.0.0.1 接受本地連線,而不是轉發到主機 LAN 地址的普通連線。根據其文件將應用程式配置為偵聽預期的 LAN 介面。僅偵聽器並不能證明應用程式正常工作。
2. 從其他 LAN 裝置連線
使用應用程式的客戶端連線到主機當前的私有IP和內部埠。對於來自另一臺 Windows 計算機的 TCP 測試:
Test-NetConnection 192.168.1.50 -Port 25565
替換為實際地址和埠。如果 LAN 訪問失敗,請先修復服務、主機防火牆或網段隔離,然後再更改路由器的轉發。僅允許所需的流量;不要禁用整個防火牆。
3.匹配轉發規則中的所有欄位
確認目的IP、外部埠、內部埠、TCP/UDP協議。首選 DHCP 預留,這樣目的地就不會移動。如果外部埠 30000 對映到內部埠 25565,則外部客戶端必須連線到 30000。
對於不熟悉的目的地,請使用我們的 裝置識別工作流程 將規則匹配到正確的計算機。
4. 檢查上游 NAT 層
將路由器的 WAN IPv4 地址與您的進行比較 當前公共 IPv4 地址,使用相同的網際網路連線,無需 VPN 或代理。不匹配表明上游轉換或不同的流量路徑;確實如此 不是 自行證明CGNAT。
WAN 地址 10.0.0.0/8, 172.16.0.0/12, 或 192.168.0.0/16 是私人的。它可能來自您控制的 ISP 閘道器或 ISP 操作的 NAT。地址位於 100.64.0.0/10 是常用於CGNAT的共享地址空間;與您的 ISP 確認安排。
- 您控制的兩個路由器:按照 雙NAT指南.
- ISP 運營的上行 NAT:遵循 CGNAT檢查指南 並詢問公共地址或其他支援的訪問方法。
- 匹配WAN和公共IPv4:繼續外部測試;僅匹配並不能證明傳入流量是允許的。
5. 從真正的外部連線進行測試
在 Wi-Fi 關閉的情況下使用蜂窩資料手機,或使用線上 TCP 檢查器。從您自己的 LAN 內部測試您的公共地址可能會失敗,因為路由器不支援環回。如果外部訪問有效但內部訪問無效,請使用 髮夾NAT指南.
如果連線重新啟動,請再次檢查您的公共IP。如果您使用域名,請使用以下命令將其 A 記錄與當前公共 IPv4 進行比較 DNS 查詢。單獨檢查其 AAAA 記錄:IPv6 連線將遵循 IPv6 路由和防火牆規則,而不是 IPv4 轉發。
6. 解釋失敗而不是開啟更多埠
| 結果 | 它意味著什麼 | 下一步檢查 |
|---|---|---|
| 本地申請失敗 | 服務或應用程式配置問題 | 啟動服務並確認其繫結地址 |
| 本地工作正常,另一個區域網裝置出現故障 | 主機防火牆、隔離或錯誤目的地 | 檢查狹窄的防火牆規則和網段 |
| LAN 工作,外部 TCP 測試被拒絕 | 端點或防火牆主動拒絕連線 | 確認目的地、偵聽器、對映和拒絕規則 |
| LAN 工作,外部 TCP 測試超時 | 流量或回覆可能會被丟棄或錯誤路由 | 檢查WAN地址、上行NAT、路由器規則、ISP策略 |
| 外部工作正常,LAN 到公共 IP 失敗 | 可能缺少 NAT 環回 | 嘗試 LAN 地址或拆分 DNS |
| TCP埠開啟,應用仍然失敗 | TCP可達性只是服務的一部分 | 檢查應用程式日誌、TLS、身份驗證和所需協議 |
請在確認本地服務和路由器對映後,向您的 ISP 詢問入站埠限制。超時本身無法識別哪個防火牆或網路丟棄了流量。我們的 TCP 握手指南 解釋了拒絕和沉默之間的區別。
關於安全的一句話
埠轉發將您裝置上的服務直接公開到網際網路。這就是重點——但它也伴隨著風險。
一些值得遵循的做法:
不要將預設埠用於敏感服務。 在埠 22 上執行 SSH 可保證持續不斷的自動登入嘗試。將其移至非標準埠可能會減少例行掃描噪音,但這不是訪問控制措施,也不會阻止發現。
使用強身份驗證。 如果您要轉發 SSH 或 RDP,請確保您使用基於金鑰的身份驗證或強密碼,如果只有少數位置需要訪問,請考慮將 IP 列入白名單。
定期稽核您的轉發。 偶爾檢視路由器的埠轉發列表並刪除不再需要的任何內容。指向不再存在的裝置的舊轉發只是攻擊面。
考慮使用 VPN。 如果您需要對家庭網路進行常規遠端訪問(而不僅僅是一項特定服務),那麼設定 WireGuard VPN 伺服器比開啟多個埠更安全。您公開一個 UDP 埠,其後面的所有內容都會受到保護。
底線
一旦瞭解了底層邏輯,埠轉發就很簡單了。預設情況下,您的路由器會丟棄所有未經請求的入站連線 - 埠轉發是您說“除了這個”的方式。
對於 NAT 後的直接入站 IPv4 訪問,請在本地驗證服務,確認對映和上行路徑,然後在外部進行測試。對於私人管理,請考慮使用 VPN 或支援的隧道。
設定好,然後 驗證它是否真的有效 在你花一個小時除錯錯誤的事情之前。並在開始之前檢查 CGNAT 是否是一個問題——再多的路由器配置也無法修復丟失的公共 IP。
技術參考
的 IETF 共享地址空間規範 定義 100.64.0.0/10。微軟文件 獲取 NetTCPConnection 和 測試網路連線.