我需要一个客户端应用程序来连接到不同网络中的服务器。另一台计算机连接到两个网络,如下所示:
Client Computer Server
192.168.1.10 <---------> 192.168.1.20 192.168.2.30 <---------> 192.168.2.40
network 1 network 2
(wifi) (ethernet)
我需要中间计算机(Windows)充当路由器,将任何到端口 502 的连接转发到服务器。网络 2 是工业机器的内部网络,因此我希望尽可能将其与主网络 1 分开,并避免重新配置路由器。这意味着仅连接到中间计算机并从那里重定向数据包(如果可能)。
实现这一目标的最佳方法是什么?
我已经尝试过了netsh interface portproxy add v4tov4 listenport=502 listenaddress=192.168.1.20 connectport=502 connectaddress=192.168.2.40
,效果很好,但只能在下次重启之前使用。如果规则是在 wifi 连接之前创建或激活的,则它不起作用,即使它仍然可见netsh interface portproxy show all
。只有删除并重新创建规则,或重新启动服务iphlpsvc
才能使其再次工作。有办法解决这个问题吗?
有没有更好的工具或更好的方法来实现这一点,比如使用简单的路由或类似的技术?还是需要 NAT 和端口转发?
答案1
正如评论中所建议的,最简单的解决方案是使用listenaddress=0.0.0.0
似乎netsh portproxy
更可靠的方法。
更好的方法是使用或开发代理应用程序。