使用iptables实现端口转发
程序员文章站
2022-05-27 23:41:37
...
使用iptables实现端口转发
环境及目标
- 环境
机器manager1:192.168.0.41
机器manager2:192.168.0.42
web项目部署在manager1上,端口为8080。 - 目标
将192.168.0.42的80端口转发到192.168.0.41的8080端口,即访问http://192.168.0.42可以访问到http://192.168.0.41:8080上的web项目。
使用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上执行:
[[email protected] ~]# iptables -A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
[[email protected] ~]# 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
[[email protected] ~]# iptables -t nat -A POSTROUTING -d 192.168.0.41 -p tcp --dport 8080 -j SNAT --to-source 192.168.0.42
[[email protected] ~]# service iptables save
iptables:将防火墙规则保存到 /etc/sysconfig/iptables: [确定]
[[email protected] ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
[[email protected] ~]# service iptables restart
iptables:将链设置为政策 ACCEPT:filter nat [确定]
iptables:清除防火墙规则: [确定]
iptables:正在卸载模块: [确定]
iptables:应用防火墙规则: [确定]
[[email protected] ~]#
测试http://192.168.0.41:8080/可以访问。
在192.168.0.42上执行:
[[email protected]~]# iptables -A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
[[email protected]~]# 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
[[email protected]~]# iptables -t nat -A POSTROUTING -d 192.168.0.41 -p tcp --dport 8080 -j SNAT --to-source 192.168.0.42
[[email protected]~]# service iptables save
iptables:将防火墙规则保存到 /etc/sysconfig/iptables: [确定]
[[email protected]~]# echo 1 > /proc/sys/net/ipv4/ip_forward
[[email protected]~]# service iptables restart
iptables:将链设置为政策 ACCEPT:filter nat [确定]
iptables:清除防火墙规则: [确定]
iptables:正在卸载模块: [确定]
iptables:应用防火墙规则: [确定]
[[email protected]~]#
测试http://192.168.0.42:8080/可以访问。
上一篇: nginx配置默认跳转