温馨提示×

centos怎么查看iptables日志

小樊
42
2026-08-29 10:11:33
栏目: 智能运维

CentOS 上查看 iptables 日志,需要先确认 日志是否开启规则是否记录日志,以及 日志写到哪里。下面按常见情况说明。


一、先确认 iptables 是否有日志规则

iptables 本身 不会自动记录日志,必须在规则中显式使用 -j LOG

查看现有规则中是否有 LOG:

iptables -L -n -v | grep LOG

或查看所有规则:

iptables -L -n -v
iptables -L -n -v -t nat

✅ 如果没有看到 LOG,说明 当前没有开启 iptables 日志


二、iptables 日志通常写在哪里?

1️⃣ CentOS 6 / 老版本(rsyslog)

日志一般写在:

/var/log/messages

查看:

grep -i "iptables" /var/log/messages

或实时查看:

tail -f /var/log/messages

2️⃣ CentOS 7 / 8(systemd + journald)

日志通常在 内核日志 中:

dmesg | grep -i iptables

或:

journalctl -k | grep -i iptables

实时查看:

journalctl -k -f

三、如何开启 iptables 日志(示例)

1️⃣ 添加日志规则(推荐做法)

记录被拒绝的包

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

记录被丢弃的包

iptables -A INPUT -j LOG --log-prefix "IPTABLES-REJECT: "

参数说明:

  • --log-prefix:日志前缀,方便 grep
  • --log-level 4:warning 级别(可选)

⚠️ 注意:LOG 只是记录,不会拦截流量,通常后面跟 DROP / REJECT 规则。


2️⃣ 防止日志过多(限制频率)

iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "IPTABLES: "

四、改变 iptables 日志输出位置(rsyslog)

1️⃣ 编辑 rsyslog 配置

vim /etc/rsyslog.conf

添加:

:msg, contains, "IPTABLES" /var/log/iptables.log
& stop

2️⃣ 重启 rsyslog

systemctl restart rsyslog

查看:

tail -f /var/log/iptables.log

五、CentOS 8 / firewalld 用户注意

如果你用的是 firewalld,它底层仍是 iptables / nftables:

firewall-cmd --get-log-denied

开启拒绝日志:

firewall-cmd --set-log-denied=all

查看日志:

journalctl -k | grep -i denied

六、快速排查清单 ✅

✅ 是否有 LOG 规则
✅ 是 CentOS 6 还是 7/8
✅ 查看 /var/log/messagesdmesg
✅ 是否限制日志频率
✅ 是否配置 rsyslog 输出位置


如果你愿意,可以告诉我:

  • CentOS 版本
  • 是否使用 firewalld
  • 想记录 哪类流量(DROP / ACCEPT / 某端口)

我可以帮你写一套 完整可用的 iptables 日志规则

0