![FirewallD 在 Fedora 25 上无法正常工作](https://linux22.com/image/100639/FirewallD%20%E5%9C%A8%20Fedora%2025%20%E4%B8%8A%E6%97%A0%E6%B3%95%E6%AD%A3%E5%B8%B8%E5%B7%A5%E4%BD%9C.png)
我不知道 FirewallD 最近的更新发生了什么,但一切都搞砸了,首先,我在 Fedora 24 上的活动规则遇到了问题,我应该启用了 samba 服务器服务,但无法连接,解决方案是手动添加 145 和 339 端口。但在 Fedora 25 上情况变得更糟,我什至无法设置默认区域。我可以正确执行该firewall-cmd --set-default-zone FedoraServer
命令,但是,在发出命令时,firewall-cmd --reload
我收到有关错误参数 COMMIT 的错误。最重要的是,如果我这样做,systemctl restart firewalld
我会丢失所做的所有更改,例如,如果我现在运行,firewall-cmd --get-default-zone
我会得到一个空字符串。更糟糕的是,运行时更改甚至没有生效,因为如果我运行,firewall-cmd --add-port 22/tcp
我仍然无法连接,因为(惊讶!)我的接口都没有绑定到区域(甚至不是默认区域),而且我什至无法连接设置默认区域,因为我什至无法重新加载服务来应用更改。有人遇到过这些问题吗?我该怎么办?现在,我的两台生产服务器都在没有防火墙的情况下运行,这让我抓狂。
编辑:
systemctl status firewalld
这是服务停止时日志中的两个“奇怪”的事情( systemctl stop firewalld
):
错误:无法刷新 eb 防火墙:'/usr/sbin/ebtables-restore --noflush' 失败:错误参数:'COMMIT'。
...
错误:无法设置 eb 防火墙的策略:“/usr/sbin/ebtables-restore --noflush”失败:错误参数:“COMMIT”。
答案1
您需要添加参数--permanent
,否则您只是更改运行时配置。重新加载配置时,您将删除所有运行时配置并加载到永久配置中。同样,当您重新启动服务或系统时,运行时配置也会丢失。读什么时候需要重新加载FirewallD配置?为了更好的解释。
至于您看到的 COMMIT 错误;你的系统的 iptables 中必须有一些 ebtables 规则。根据以下规定,这是不支持的防火墙规范。删除所有 iptables 防火墙规则,然后尝试在不混合管理工具链的情况下再次配置防火墙。