更改配置
sudo vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
使能配置
sysctl -p #命令生效
sudo firewall-cmd --permanent --zone=external --change-interface=ens0
sudo firewall-cmd --permanent --zone=internal --change-interface=ens1
设置特定区域的SNAT——IP伪装。
sudo firewall-cmd --zone=external --add-masquerade --permanent
查看特定区域的SNAT是否允许
sudo firewall-cmd --zone=external --query-masquerade --permanent
删除特定区域的SNAT功能
sudo firewall-cmd --zone=external --delete-masquerade --permanent
内部访问外部,将source ip为src_net网段来的数据包伪装成external(即ens0)的地址
sudo firewall-cmd --zone=external --permanent --add-rich-rule=rule family=ipv4 source address=<src_net/mask> masquerade’
src_net举例:192.168.100.0/24
或者设置NAT规则也可实现(设置POSTROUTING)
sudo firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s <internal_ip|internal_net/mask> -j SNAT --to-source <external_ip>
或
sudo firewall-cmd --permanent --direct --passthrough ipv4 -t nat POSTROUTING -o ens0 -j MASQUERADE -s <internal_ip|internal_net/mask>
外部访问内部,将访问本机‘external_port‘端口流量转发到‘internal_ip‘
sudo firewall-cmd --zone=external --permanent --add-forward-port=port=<external_port>:proto=tcp:toaddr=<internal_ip>
或者设置NAT规则也可实现(设置PRERROUTING)
sudo firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A PREROUTING -d <external_ip> -j DNAT --to-destination <internal_ip>
外部访问内部,将访问本机‘external_port‘端口流量转发到‘internal_ip‘的‘internal_port‘
sudo firewall-cmd --zone=external --permanent --add-forward-port=port=<external_port>:proto=tcp:toport=<internal_port>:toaddr=<internal_ip>
sudo firewall-cmd --reload
target是就是对该区域内流经的数据包作最终的处理动作,它可以设置为以下选项之一:
要设置区域的target,使用--zone选项指定区域,并使用--set-target选项指定目标。例如:
firewall-cmd --zone=public --set-target=DROP
要允许来自特定IP地址(或范围)的所有传入流量,使用--zone选项指定区域,并使用--add-source选项指定源IP。例如:
firewall-cmd --zone=public --add-source=192.168.100.10
原文:https://blog.51cto.com/huanghai/2656485