温馨提示×

centos防火墙怎么查日志

小樊
40
2026-09-18 00:27:13
栏目: 智能运维

在 CentOS 中,“防火墙”通常指的是 firewalld(CentOS 7 及以后默认),也可能是 iptables。下面分别说明怎么查看它们的日志。


一、firewalld(CentOS 7/8/Stream 默认)

1. firewalld 自身默认不记录日志

firewalld 默认不会记录被拒绝的连接日志,需要手动开启。

2. 查看系统日志(journalctl)

sudo journalctl -u firewalld

查看实时日志:

sudo journalctl -u firewalld -f

3. 开启 firewalld 拒绝日志(推荐)

使用 rich rule 记录被拒绝的包:

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="0.0.0.0/0" reject log prefix="FIREWALL-REJECT: " level="info"'
sudo firewall-cmd --reload

日志位置:

sudo journalctl | grep FIREWALL-REJECT

或在 /var/log/messages(CentOS 7):

grep FIREWALL-REJECT /var/log/messages

二、iptables(如果你用的是 iptables)

1. 确认是否使用 iptables

systemctl status iptables

2. 添加日志规则(示例)

iptables -I INPUT -j LOG --log-prefix "IPTABLES-DROP: " --log-level 4

3. 查看日志

CentOS 7:

tail -f /var/log/messages

CentOS 8+(使用 rsyslog/journald):

journalctl -k | grep IPTABLES-DROP

三、nftables(CentOS 8 新方案)

nft list ruleset
journalctl -k | grep nft

四、常见排查命令

# 查看防火墙状态
firewall-cmd --state

# 查看规则
firewall-cmd --list-all

# 查看是否有 dropped 包
iptables -L -v -n

如果你能告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • 用的是 firewalld 还是 iptables
  • 想查“被拦截”还是“正常通过”的日志

我可以给你更精确的命令。

0