![如何在住宅连接上向世界开放端口?](https://linux22.com/image/1436730/%E5%A6%82%E4%BD%95%E5%9C%A8%E4%BD%8F%E5%AE%85%E8%BF%9E%E6%8E%A5%E4%B8%8A%E5%90%91%E4%B8%96%E7%95%8C%E5%BC%80%E6%94%BE%E7%AB%AF%E5%8F%A3%EF%BC%9F.png)
我家里有 DSL 互联网,LAN 上运行着一些 Windows 服务器。我已将路由器设置为将端口 80 转发到其中一个,并同样设置了防火墙规则以允许端口 80,效果很好。如果我从远程站点连接到 XXXX(我的家庭 IP 地址),它会连接到该服务器并显示一个网页,正如我所期望的那样。
但是,我在其他端口上运行着其他应用程序,这些应用程序似乎不起作用。我遵循了完全相同的步骤 - 在路由器上设置端口转发,并确保防火墙已打开 - 但端口 80 以外的任何端口似乎都无法通过。例如,我尝试连接到 XXXX:5432,但不起作用。
我怀疑我的 ISP 以某种方式阻止了其他端口?(有什么方法可以验证我的假设吗?)我想知道是否有办法打开(受限)端口通过另一个(开放)端口,使用代理或隧道或类似的东西。有什么建议吗?
答案1
最好使用静态 IP 地址将计算机连接到路由器。然后,使用路由器的设置,您可以将任何端口转发到您想要的任何 PC。有时,您的路由器可能安装了防火墙,阻止了您想要的端口,因此请在设置中检查。(路由器设置通常位于 PC 浏览器上的 192.1.1.254)。另外,请检查计算机的防火墙。默认情况下,Windows 通常会阻止大多数未使用的端口,因此您需要进入防火墙设置并允许指定端口的 UDP 和 TCP 出站和入站。
答案2
使用此在线工具检查你的端口转发http://ping.eu/port-chk/ 如果它说你的端口 80 是打开的,而你尝试使用的其他端口是关闭的,那么你要么没有正确转发它们,要么你尝试运行的应用程序/游戏根本没有监听这些端口。为此,你应该在你尝试连接的电脑上运行命令 netstat -a 来查看你的电脑正在监听哪些端口。你也可以添加 -b 参数来查看监听该端口的进程名称。如果你没有看到这些端口,那么这不是网络问题。如果你确实看到了正在监听的端口,那么从同一 LAN 上的另一台电脑尝试运行“telnet otherpcIP portnum”,如果你看到闪烁的光标,那么你已连接,并且端口已打开并可从 LAN 访问。你可能必须在程序和功能中添加 telnet/打开或关闭 Windows 功能。如果所有这些都有效并且 ping.eu 说你的 80 以外的端口都已关闭,那么它可能真的是 ISP 阻止了它……