准备查看下centos服务器是用的那个防火墙管理工具,结果发现了问题
firewall是开启状态
但是这样看,firewall却是关闭状态,iptables是开启的
到底哪个是开启的,那个是关闭的啊?
新手,求帮助
准备查看下centos服务器是用的那个防火墙管理工具,结果发现了问题
firewall是开启状态
但是这样看,firewall却是关闭状态,iptables是开启的
到底哪个是开启的,那个是关闭的啊?
新手,求帮助
您的问题是关于如何确定 CentOS 服务器上防火墙的状态。根据您提供的截图,这里有两种可能的解释:
首先,第一张图显示 firewalld
是开启状态。firewall-cmd --state
命令返回 running
,这表示 firewalld
服务正在运行。
第二张图显示 iptables
规则存在,但这并不直接表示 iptables
防火墙服务本身是开启的。iptables
规则的存在仅仅说明有防火墙规则被定义,但并不一定意味着 iptables
服务正在运行。在 CentOS 中,iptables
通常通过 init.d
脚本或 systemd
服务管理,并且其状态可能与 firewalld
不同。
要确定 iptables
服务是否正在运行,您可以尝试以下命令:
systemctl status iptables
或者,对于 CentOS 7 及以上版本,您可能需要查看 firewalld
是否管理 iptables
规则(因为 firewalld
在后台可以使用 iptables
或 nftables
)。
综上所述,根据第一张图,firewalld
是开启的。至于 iptables
,您需要运行上述命令来确认其服务状态。如果 iptables
服务没有运行,那么即使规则存在,它也不会是活跃的防火墙。
如果您的 CentOS 服务器同时安装了 firewalld
和管理 iptables
规则的其他工具(如 iptables-services
),则可能存在配置冲突。在这种情况下,您应该决定使用哪一个防火墙管理工具,并相应地配置和启用它,同时确保禁用其他工具以避免潜在的冲突。
一般来说,推荐的做法是:
firewalld
,则使用 firewall-cmd
来管理防火墙规则,并确保 firewalld
服务正在运行。firewalld
,而是想直接管理 iptables
规则,那么确保 iptables
服务正在运行,并通过相应的工具或脚本管理规则。最后,请确保不要同时启用两个防火墙管理工具,因为它们可能会相互干扰并导致不可预测的行为。
查看命令文档man systemctl:
list-unit-files [PATTERN...]
List installed unit files and their enablement state (as reported by is-enabled). If one or more PATTERNs are specified,
only units whose filename (just the last component of the path) matches one of them are shown.
这里的list-unit-files展示的状态是服务是否开机自启,systemctl status展示的是当前服务的状态,这两个状态是不一样的。
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答798 阅读✓ 已解决
2 回答3.2k 阅读
systemctl list-unit-files --type=service
这个命令是查看服务是否设置了开机自启, 与当前服务状态无关,你以service firewalld status
显示的为准