一、防火墙配置

在 CentOS 上,firewalld 管理 NAT 规则可以通过其区域和服务配置进行控制。如果你想关闭或删除 NAT 规则,可以通过以下步骤来操作。

1. 移除特定的 NAT 规则

firewalld 中的 NAT 规则通常位于 masquerade(伪装)设置中。你可以通过以下命令关闭 NAT(即关闭 masquerade 伪装):

sudo firewall-cmd --zone=public --remove-masquerade

这会从 public 区域中移除 masquerade,即关闭 NAT 功能。如果你在其他区域配置了 masquerade,需要指定该区域,例如:

sudo firewall-cmd --zone=work --remove-masquerade

2. 永久移除 NAT 规则

上面的命令只是临时关闭,重启后会恢复。如果你希望永久关闭 NAT,需要添加 --permanent 选项:

sudo firewall-cmd --zone=public --remove-masquerade --permanent

然后重新加载防火墙配置,使更改生效:

sudo firewall-cmd --reload

3. 查看当前的 NAT 规则

如果你想查看当前 firewalld 中的 NAT 规则,可以使用以下命令:

sudo firewall-cmd --zone=public --query-masquerade

这会显示 public 区域的 NAT 状态。如果显示 yes,表示 masquerade 已启用;如果显示 no,表示 NAT 已关闭。

4. 重启 firewalld

在更改防火墙配置后,建议检查 firewalld 状态,确保更改已生效:

sudo systemctl restart firewalld

要恢复之前通过 sudo firewall-cmd --zone=public --remove-masquerade --permanent 移除的 masquerade(NAT)规则,可以使用以下步骤:

5. 恢复 masquerade(开启 NAT)

使用以下命令将 masquerade(NAT)重新添加到 public 区域:

sudo firewall-cmd --zone=public --add-masquerade --permanent

6. 重新加载防火墙规则

为了使永久更改立即生效,需要重新加载 firewalld 配置:

sudo firewall-cmd --reload

7. 验证 masquerade 是否恢复

可以使用以下命令检查 masquerade 是否已经重新启用:

sudo firewall-cmd --zone=public --query-masquerade

如果输出结果为 yes,说明 masquerade 已成功恢复,NAT 功能已经启用。

8. 重启 firewalld 服务(可选)

如果你想确保所有配置完全应用,你可以重启 firewalld 服务:

sudo systemctl restart firewalld