具有内部端口重定向的Windows 7,可以吗?


9

我收到一位开发人员的请求,要求我解决问题。

他们在办公室中使用Linux桌面,我可以通过iptables nat将localhost:80转发到localhost:8080。在Windows 7中,他们想要的就是家里的东西。

我得到了我认为有两种解决方法。一种用于重新配置jboss网络服务器和所有webapps URL(混乱)的工具。另一个是找到一种将本地主机端口8080重定向/保留到端口80的方法。尽管在Windows 7中,我不确定如何执行此操作。

有人对第二种方法有想法吗?

Answers:


6

AFAIK,Win7没有等效的iptables。编写满足您需要的服务器(侦听端口,将所有内容复制到另一个端口或从另一个端口复制所有内容)应该足够容易。您可以在以下URL中找到一个:http : //www.quantumg.net/portforward.php(未经测试)。使用反向代理(Google是您的朋友)可能适合类似HTTP的流量。还请检查此帖子:https : //stackoverflow.com/questions/3721000/port-forwarding-on-windows-7


h,我现在就像个假人,忘记了反向代理一词。只要我可以投票,我就会为您服务。
bdavenport 2012年

12

是的,Windows确实具有iptables等效项,它是通过工具netsh和portproxy接口实现的

做你想做的命令

netsh interface portproxy add v4tov4 listenaddress=YOUR_IP_HERE listenport=8080 connectaddress=YOUR_IP_HERE connectport=80 

请注意,这只会进行IPv4连接,如果您还想转发IPv6连接,则还需要

netsh interface portproxy add v6tov6 listenaddress=YOUR_IP_HERE listenport=8080 connectaddress=YOUR_IP_HERE connectport=80

重新启动后是否会持续存在?命令也无效,因为出现错误:“未定义一个或多个基本参数”
sorin

@sorin确实存在,我在将RDP从标准端口重定向到非标准端口的系统中使用它,并且在设置新VM时只需要运行一次此命令。至于错误,您是正确的,我忘记了地址的参数(谢谢,您好!)
Scott Chamberlain 2015年

我改用了add v4tov4 listenport=80 connectaddress=127.0.0.1 connectport=8080假设您要在端口80上侦听并重定向到运行在8080上的非高架服务器,则需要切换侦听和连接端口。如果要同时响应网络IP和本地主机请求,请删除listenaddress。而且您可以重定向到127.0.0.1,以避免硬编码您的IP地址。
卡尔·沃尔什

其他有用的命令在Microsoft docs中进行了描述:docs.microsoft.com/zh-cn/windows-server/networking/technologies/…例如,列出当前的端口代理(netsh interface portproxy show v4tov4)或删除后代理(netsh interface portproxy delete v4tov4 listenaddress=localhost listenport=80
neXus

0

我认为Windows没有等效的iptables。命令

netsh interface portproxy ...

进行端口代理,但不进行数据包转发。主要区别是

我们一直在使用此技术进行端口转发,但是在发现这些发现之后,我们不得不在网络防火墙上使用其他规则以避免使用netsh。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.