我有一个Java Socket服务器在给定192.168。*地址的机器上侦听。我有一个客户端Java解决方案连接到Socket服务器并使用BufferedOutputStream发送命令并在BufferedInputStream上捕获响应。
当我在本地网络时,一切正常。
当我进入VPN时,我得到10 * IPA并且该解决方案不起作用。我听说10 Net需要路由,但VPN服务器不会为我做这一切吗?
我可以通过10 Net VPN连接访问所有192.168 *资源,所以我看不出这是如何成为路由问题。
为什么来自10 Net VPN的Java Socket解决方案无法获取发送命令或接收响应的任何想法?
提前致谢。
答案 0 :(得分:0)
虽然问题已经解决了,但我仍然觉得你的答案有些误解,并想加入以确保问题。
你有一台192 ....机器,你的服务器正在某个端口上监听(例如4055)。现在,您希望此网络外的客户端访问此服务器并交换数据。
如果您的客户端位于同一网络上,您不需要任何路由,您只需要服务器允许端口4055上的传入连接。通常,传入连接(本地主机除外)被防火墙阻止,例如Linux上的iptables和,您必须在防火墙配置中添加规则。
但是如果您的客户端位于不同的子网并且需要路由,则需要路由器上的规则,即您的路由器需要被告知从ip x(客户端)收到的每个数据包应将路由器端口(y)上的端口转发到服务器端口4055.这称为端口转发。
即使您的路由器能够转发某些端口,也必须明确告知需要将哪个流量从哪个IP /端口转发到哪个IP侦听哪个端口