由于某些特殊的原因,我临时需要在一个windows的机器上做一个tcp转发。网上各种奇奇怪怪的软件要下载下来还需要额外担心一下是不是有病毒什么的。不过经过一番搜索,我找到windows自带端口转发的功能,是netsh命令的一部分。
微软有一个相关的说明文档,里面有具体的说明。根据网上搜索得到的结果来看,是从windows vista的年代开始内置,不需要额外的软件。
使用方法也很简单:
#新建一个转发,监听到192.168.1.111:4422,所有进来的流量,转发到192.168.0.33:80
netsh interface portproxy add v4tov4 listenport=4422 listenaddress=192.168.1.111 connectport=80 connectaddress=192.168.0.33
#列出当前所有转发
netsh interface portproxy show all
侦听 ipv4: 连接到 ipv4:
地址 端口 地址 端口
--------------- ---------- --------------- ----------
192.168.1.111 4422 192.168.0.33 80
#删除转发
netsh interface portproxy delete v4tov4 listenport=4422 listenaddress=192.168.1.111
网上还有控制这个端口转发的图形界面软件,可以免除手动输入命令的功夫。
另外,这个转发收到防火墙的保护,意味着你打开端口需要手动调整防火墙。所以流程就是以下的二选一
- 增加转发->打开防火墙->重启电脑->生效;
- 打开防火墙->增加转发->生效;
所以建议先操作防火墙。