端口转发/端口代理配置规则
windows端口转发/端口代理配置规则
查看端口转发规则
netsh interface portproxy show all
配置/新增端口转发
netsh interface portproxy add v4tov4 listenport=<本地端口> listenaddress=[本地IP] connectport=<目标端口> connectaddress=<目标IP>
<本地端口>:需要监听的本地端口
[本地IP]:可选,如果要限制只能通过特定本地IP地址访问,则提供此地址
<目标端口>:目标服务器上的端口
<目标IP>:目标服务器的IP地址
例如,如果要将本地计算机上的本地端口80的流量转发到目标服务器IP地址192.168.1.100的端口8443上,则运行命令
netsh interface portproxy add v4tov4 listenport=80 listenaddress=0.0.0.0 connectport=8443 connectaddress=192.168.1.100
0.0.0.0表示本机所有可用IP
更改端口转发规则
使用“set”关键字,例如将上例中的8443端口改成8080
netsh interface portproxy set v4tov4 listenport=80 listenaddress=0.0.0.0 connectport=8080 connectaddress=192.168.1.100
删除端口转发
netsh interface portproxy delete v4tov4 listenport=80 listenaddress=0.0.0.0
重置所有配置
netsh interface portproxy reset
注意事项
- 执行命令需要管理员权限
- 无论本机地址、目标地址,都不要使用127.0.0.1
- 防火墙中需要放行相应端口
- 现在只支持TCP协议(命令中可以不用声明protocol=tcp)
- windows资源管理器不支持带端口访问,因此服务器SMB服务端口更改后,可以考虑更改客户端的端口转发
Linux端口转发/端口代理配置规则
使用iptables中的nat表
本地端口转发至本地端口
将本机443端口转发至8443端口
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443
查询转发配置
iptables -t nat -nL --line
删除转发配置
删除对应PREROUTING的编号即可,本例中编号为1
iptables -t nat -D PREROUTING 1
本地端口转发至远程机器端口
将本机192.168.1.100的443端口转发至远程机器192.168.1.200的8443端口
在本机192.168.1.100上进行操作
iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 192.168.1.200:8443
iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.200 --dport 8443 -j SNAT --to-source 192.168.1.100