Linux下实现Firewalld Net 外网端口转发至内网
前提条件:
- 公网服务器至少需要2个网卡,一个配公网一个配内网。
- 内网服务器网卡配置同公网服务器相同内网段内网地址
如果安装过iptables的机器,需要先停止,然后设置开机禁用:
servcie iptables stop --临时关闭防火墙
chkconfig iptables off --永久关闭防火墙
特别注意:请勿使用yum remove iptables来卸载防火墙,因为iptables附带了很多依赖文件,这样卸载会导致机器SSH丢失。
安装firewall防火墙
yum install firewalld -y
设置开机自启
systemctl enable --now firewalld
开启路由转发
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf sysctl -p
检查NAT转发是否开启
firewall-cmd --query-masquerade
如图:
开启NAT转发
firewall-cmd --zone=public --permanent --add-masquerade
开启TCP流量转发
firewall-cmd --permanent --zone=public --add-forward-port=port=9810:proto=tcp:toport=22:toaddr=10.10.10.3
将本地9810端口,转发到10.10.10.3内网主机的TCP 22 端口。
重新载入Firewalld
firewall-cmd --reload
开启UDP流量转发(可选)
firewall-cmd --permanent --zone=public --add-forward-port=port=9810:proto=udp:toport=22:toaddr=10.10.10.3
本机Firewalld 放行9810端口
firewall-cmd --add-port=8080/tcp --permanent
内网放行22端口
firewall-cmd --add-port=22/tcp --permanent