端口转发因令人困惑而闻名。它出现在每个游戏指南、每个家庭服务器教程和每个 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 和 测试网络连接.