centos6-centos7防火墙(iptables-firewalld)设置端口nat转发

背景:

将本机的 8080端口转发至其他主机,主机 IP:192.168.1.162,目标主机 IP和端口192.168.1.163:80,方法如下:

centos6系统iptables环境下:

   iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8080 -j DNAT --todestination 192.168.1.163:80

  iptables -t nat -A POSTROUTING -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.1.162:8080

  echo 1 > /proc/sys/net/ipv4/ip_forward  ###同时开启 Linux 内核转发功能。

centos7系统firewalld环境下:

开启防火墙伪装:firewall-cmd --add-masquerade --permanent    //开启后才能转发端口

添加转发规则:firewall-cmd --add-forward-port=port=8080:proto=tcp:toport=80:toaddr=192.168.1.163 --permanent

(PS:此规则将本机8080端口转发到192.168.1.163的80端口上,配置完--reload才生效)

如果配置完以上规则后仍不生效,检查防火墙是否开启80端口,如果80端口已开启,仍无法转发,可能是由于内核参数文件sysctl.conf未配置ip转发功能,具体配置如下:

vi /etc/sysctl.conf

在文本内容中添加:net.ipv4.ip_forward = 1

保存文件后,输入命令sysctl -p生效
原文地址:https://www.cnblogs.com/Crazy-Liu/p/11344505.html