利用firewall-cmd和iptables分别实现端口转发(本地端口转发和远程端口转发)
使用iptables实现
命令(两台机器一样):
// 开放本机8080端口,确保本机能8080能被访问
iptables -A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
// 设置转发规则
iptables -t nat -A PREROUTING -d 192.168.0.42 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.0.41:8080
iptables -t nat -A POSTROUTING -d 192.168.0.41 -p tcp --dport 8080 -j SNAT --to-source 192.168.0.42
// 保存iptables规则
service iptables save
// 修改转发规则,该文件内容为0,表示禁止数据包转发,1表示允许,将其修改为1
echo 1 > /proc/sys/net/ipv4/ip_forward
// 重启
service iptables restart
在192.168.0.41上执行:
[root@manager ~]# iptables -A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
[root@manager ~]# iptables -t nat -A PREROUTING -d 192.168.0.42 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.0.41:8080
[root@manager ~]# iptables -t nat -A POSTROUTING -d 192.168.0.41 -p tcp --dport 8080 -j SNAT --to-source 192.168.0.42
[root@manager ~]# service iptables save
iptables:将防火墙规则保存到 /etc/sysconfig/iptables: [确定]
[root@manager ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@manager ~]# service iptables restart
iptables:将链设置为政策 ACCEPT:filter nat [确定]
iptables:清除防火墙规则: [确定]
iptables:正在卸载模块: [确定]
iptables:应用防火墙规则: [确定]
[root@manager ~]#
测试http://192.168.0.41:8080/可以访问。
在192.168.0.42上执行:
[root@node1~]# iptables -A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
[root@node1~]# iptables -t nat -A PREROUTING -d 192.168.0.42 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.0.41:8080
[root@node1~]# iptables -t nat -A POSTROUTING -d 192.168.0.41 -p tcp --dport 8080 -j SNAT --to-source 192.168.0.42
[root@node1~]# service iptables save
iptables:将防火墙规则保存到 /etc/sysconfig/iptables: [确定]
[root@node1~]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@node1~]# service iptables restart
iptables:将链设置为政策 ACCEPT:filter nat [确定]
iptables:清除防火墙规则: [确定]
iptables:正在卸载模块: [确定]
iptables:应用防火墙规则: [确定]
[root@node1~]#
测试http://192.168.0.42:8080/可以访问。