端口的转发
一:linux系统下:
1、本地端口转发本地端口
iptables -t nat -A PREROUTING -p tcp --dport 7777 -j REDIRECT --to-port 6666 #转发本地7777端口到6666端口上
2、将本地端口转发到其他端口
服务器A:内网ip为: 172.27.0.6
服务器B(redis):内网ip为: 172.27.0.3(没外网ip,不能外网访问)
iptables -t nat -A PREROUTING -d 172.27.0.6 -p tcp --dport 6379 -j DNAT --to 172.27.0.3:6379
iptables -t nat -A POSTROUTING -d 172.27.0.3 -p tcp --dport 6379 -j SNAT --to-source 172.27.0.6
第一句意思: 把用户请求172.27.0.6:6379行为 转到172.27.0.3:6379;
第二句意思: 把 172.27.0.3:6379响应 转发到172.27.0.6
在就可以通过服务器A的主机ip+6379+redis密码访问redis了;
3、删除端口的转发
查看当前iptables 的 nat 表的所有规则:(不用 -t 指定表名默认的是指 filter 表)
iptables -t nat -nL --line
删除指定表的指定链上的规则, -D 并指定序号即可。
iptables -t nat -D PREROUTING 1
*说明:PREROUTING链修改的是从外部连接过来时的转发,如果本机连接到本机的转发,需要修改 OUTPUT链。
iptables -t nat -A OUTPUT -p tcp --dport 7777 -j REDIRECT --to-port 6666
二:windows下的端口转发
假定需要通过192.168.204.150的3389端口转发到3340端口,则需要在192.168.204.150主机的命令行输入如下语句:
netsh interface portproxy add v4tov4 listenport=3340 listenaddress=192.168.204.150 connectport=3389 connectaddress=192.168.204.150
可以查看存在的转发
netsh interface portproxy show all
删除指定规则
netsh interface portproxy delete v4tov4 listenport=3340 listenaddress=192.168.204.150
使用netstat确保3340端口当前处于被侦听状态:
netstat -ano | findstr :3340
禁用系统防火墙
netsh firewall set opmode disable
启用防火墙
netsh firewall set opmode enable
网友评论