背景:
将本机的 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生效