0

我想用 websocket 做一个服务器。我尝试了很多编程语言(python、php、c++ 等),只要我连接到 ws://127.0.0.1:12345,一切似乎都很好。但是如果我尝试将地址更改为我的 PC 的 IP(89.135.123.456),那么我无法连接到服务器。服务器始终绑定到 IP 0.0.0.0,在我的路由器中启用了端口 12345。我可以使用我的 IP 地址连接到 xampp 服务器。我的 IP 地址无法连接到它的原因是什么?

4

1 回答 1

0

我猜你正在本地机器上开发,该机器通过具有网络地址转换(NAT)的通用路由器连接到互联网。

将服务器绑定到 0.0.0.0 确保进程正在侦听所有接口,这是必需的,并且您拥有它,很好。

使用外部 IP 地址时,您尝试从哪里连接到 WebSocket 服务器?当您位于典型的 NATed 互联网连接后面时,您无法在本地网络甚至本地主机上使用该设备。当您尝试从本地网络中的另一台计算机连接到您的服务器时,您需要使用本地 IP 地址。

如果您尝试从“外部”连接,即使用路由器的外部 IP 地址从路由器的 Internet 端连接,那么您需要确保在路由器中配置了端口转发:任何带有目标的 IP 数据包your_external_ip:ws_port需要转发到your_local_ip:ws_port。否则路由器只会丢弃传入的数据包,因为它是意外的。

于 2013-07-27T13:49:46.840 回答