3

我有一个 Java Socket 服务器在给定 192.168.* 地址的机器上监听。我有一个客户端 Java 解决方案连接到 Socket 服务器并使用 BufferedOutputStream 发送命令并捕获 BufferedInputStream 上的响应。

当我在本地网络上时,这一切都很好。

当我使用 VPN 时,我获得了 10* IPA,但该解决方案不起作用。听说需要路由10网,但是VPN服务器不会为我做这一切吗?

我可以通过我的 10 Net VPN 连接访问所有 192.168* 资源,所以我看不出这怎么可能是路由问题。

任何想法为什么来自 10 Net VPN 的 Java Socket 解决方案无法获得发送命令或接收响应?

提前致谢。

4

1 回答 1

0

尽管您解决了问题,但我仍然对您的回答有一些误解,并考虑添加以确保。

您有一台 192.... 机器,您的服务器正在其上侦听某个端口(例如 4055)。现在,您希望该网络之外的客户端能够访问该服务器并交换数据。

如果您的客户端在同一个网络上,您不需要任何路由,您所需要的只是您的服务器允许端口 4055 上的传入连接。通常传入的连接(来自本地主机的除外)被防火墙(例如 Linux 上的 iptables)阻止,您必须为此在防火墙配置中添加规则。

但是,如果您的客户端位于不同的子网上并且需要路由,则您需要在路由器上设置一个规则,即您的路由器需要被告知从路由器端口 (y) 上的 ip x(客户端)收到的每个数据包都应该转发到您的服务器端口 4055。这称为端口转发。

即使您的路由器能够转发某些端口,也必须明确告知需要将哪些流量从哪个 ip / 端口转发到哪个 ip 在哪个端口侦听

于 2012-10-04T11:55:40.053 回答