温馨提示×

debian iptables怎么查日志

小樊
39
2026-09-01 18:31:59
栏目: 智能运维

在 Debian 下,iptables 本身不记录日志,需要你显式写规则把包交给日志模块(NFLOG / LOG),然后再去对应位置看日志。下面按常见情况说明。


一、先确认你有没有写日志规则

iptables -L -n -v | grep LOG

iptables -S | grep LOG

如果没有看到 LOG 相关规则,那系统里是不会有 iptables 日志的


二、最常见的做法(推荐):用 ulogd + NFLOG

1. 写日志规则(示例)

iptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix "IPTABLES-DROP: " --log-level 4

或更推荐(不影响性能):

iptables -A INPUT -p tcp --dport 22 -j NFLOG --nflog-prefix "SSH-INPUT"

2. 日志去哪看?

情况 A:用 LOG 模块

日志会进 内核日志

dmesg

journalctl -k

情况 B:用 NFLOG 模块

需要装 ulogd

apt install ulogd2
systemctl enable --now ulogd

日志默认在:

/var/log/ulog/syslogemu.log

三、如果什么都没配,但有“被丢包”的疑问

你可以临时加规则看一眼:

iptables -A INPUT -j LOG --log-prefix "DROP-DEBUG: "

然后:

dmesg -T | tail

确认完后记得删掉:

iptables -D INPUT -j LOG --log-prefix "DROP-DEBUG: "

四、Debian 小提醒

  • Debian 默认 rsyslog / journald
  • iptables 日志 ≠ ufw 日志
  • 如果你用的是 nftables,命令完全不同

五、快速总结

方式 查看位置
iptables + LOG dmesg / journalctl -k
iptables + NFLOG /var/log/ulog/*
没写规则 没日志

如果你愿意,可以把你的 iptables 规则贴出来,我可以直接告诉你日志该去哪看、怎么加最合适。

0