列出firewalld 中仅运行时的更改

列出firewalld 中仅运行时的更改

有没有办法列出--permanent防火墙中仅运行时(即无)的更改?我希望看到我的配置中的差异,以确保在出现--reload.

答案1

据我所知,没有任何工具可以为您提供这种可能性,但您可以自己创建它。

我向端口 54/tcp 添加运行时 acl:

# firewall-cmd --add-port=54/tcp

然后我可以将运行时规则保存到文件中:

# firewall-cmd --list-all > /tmp/runtime_rules

我将永久规则保存到另一个文件:

# firewall-cmd --list-all --permanent > /tmp/permanent_rules

最后我使用 diff 来比较两者

# diff /tmp/runtime_rules /tmp/permanent_rules 
1c1
< FedoraWorkstation (active)
---
> FedoraWorkstation
4c4
<   interfaces: wlp2s0
---
>   interfaces: 
7c7
<   ports: 1025-65535/udp 1025-65535/tcp 54/tcp
---
>   ports: 1025-65535/udp 1025-65535/tcp

现在您看到了我在运行时规则上添加的端口,而不是永久规则上添加的端口。

答案2

我想提出一个可在 bash shell 中使用的单行替代方案:

diff -u <(firewall-cmd --list-all --permanent) <(firewall-cmd --list-all)
--- /dev/fd/63  2022-02-20 14:05:38.106385643 +0000
+++ /dev/fd/62  2022-02-20 14:05:38.110385485 +0000
@@ -3,7 +3,7 @@
   icmp-block-inversion: no
   interfaces: eno0
   sources: 
-  services: dhcpv6-client ssh
+  services: dhcpv6-client http https ssh
   ports: 
   protocols: 
   forward: no

以 为前缀的行-属于永久配置。以 为前缀的行+属于实时配置。

相关内容