防火墙实现端口转发

目的:通过使用linux中的iptables和firewalld来实现本地端口转发和远程端口转发。

一、iptables

1.本地端口转发

比如当我们访问192.168.87.5的1234端口时,自动帮我们转到80端口

命令如下:

iptables -t nat -I PREROUTING -p tcp --dport 1234 -j REDIRECT --to-ports 80

验证:

防火墙实现端口转发_第1张图片

 2.远程端口转发

当我们访问A主机的80端口时,帮我们跳转到B主机的80端口(都在A上配置)

查看转发开关是否为1 (打开状态)

如果没有打开,则打开:    echo "1" > /proc/sys/net/ipv4/ip_forward

cat /proc/sys/net/ipv4/ip_forward
1

然后我们在A上配置DNAT SNAT:  A地址87.5   B地址87.3

iptables -t nat -I PREROUTING -p tcp -d 192.168.87.5 --dport 80 -j DNAT --to-destination 192.168.87.3:80  
iptables -t nat -I POSTROUTING -p tcp -d 192.168.87.3 --dport 80 -j SNAT --to-source 192.168.87.5:80

检测:访问A地址能够跳转到B的地址

防火墙实现端口转发_第2张图片

 防火墙实现端口转发_第3张图片

 

二、firewalld

1.本地端口转发

当我们访问192.168.87.3:2345时  转到本地的192.168.87.3:80

firewall-cmd --add-forward-port=port=2345:proto=tcp:toport=80

检测:

防火墙实现端口转发_第4张图片

 

防火墙实现端口转发_第5张图片

 2.远程端口转发

同样要像iptables里面,检查转发开关已经打开

访问A主机上的192.168.87.5:80  跳转到B主机上的192.168.87.3:80

firewall-cmd --add-forward-port=port=80:proto=tcp:toport=80:toaddr=192.168.87.3

firewall-cmd --add-masquerade

检测:

防火墙实现端口转发_第6张图片

 

防火墙实现端口转发_第7张图片

 

你可能感兴趣的:(linux,服务器,运维)