自Windows XP开始,Windows中就内置网络端口转发的功能。任何传入到本地端口的TCP连接(IPv4或IPv6)都可以被重定向到另一个本地端口,或远程计算机上的端口,并且系统不需要有一个专门用于侦听该端口的服务。
在Linux中,使用iptables可以非常轻松地配置端口重定向。在Windows Server系统上,路由和远程访问服务(RRAS)通过使用虚拟专用网络 (VPN) 或拨号连接支持远程用户或站点到站点连接,但这种方式相对较为麻烦。其实,除此之外还有一种更为简单的方法可以帮助我们在Windows中实现端口转发,即我们可以使用命令Netsh的Portproxy模式配置Windows中的端口转发。该命令的语法如下:
listenaddress – 等待连接的本地IP地址。 listenport – 本地侦听TCP端口。 connectaddress – 将传入连接重定向到本地或远程IP地址(或DNS名称)。
connectport – 一个TCP端口,来自listenport的连接会被转发到该端口。假设当前我们的RDP服务端口在一个非标准端口上进行响应,如3340(端口可以在服务设置中更改)。为此,我们需要将传入流量从TCP端口3340重定向到另一个本地端口 – 3389(即标准rdp端口)。
我们以管理员身份启动命令提示符并执行以下命令:
netsh interface portproxy add v4tov4 listenport=3340 listenaddress=10.1.1.110 connectport=3389 connectaddress=10.1.1.110
测试结果:
在服务器执行命令:
netsh interface portproxy add v4tov4 listenport=3340 listenaddress=172.27.0.3 connectport=3389 connectaddress=172.27.0.3
检查是否正在监听3340端口
远程连接服务器IP:3340