温馨提示×

ubuntu iptables如何查日志

小樊
35
2026-10-15 15:48:00
栏目: 智能运维

在 Ubuntu 上,用 iptables 查“日志”通常分两种情况:

  1. iptables 本身的规则日志(通过 LOG 目标)
  2. 系统/防火墙整体日志(ufw、内核、syslog)

下面按常见场景说明。


一、iptables 自己打的日志(最常用)

1. 先确认是否写了 LOG 规则

iptables -L -n -v | grep LOG

如果有类似:

LOG        all  --  0.0.0.0/0  0.0.0.0/0  LOG flags 0 level 4 prefix "IPTABLES-DROP: "

说明有日志。

2. 查看日志位置

在现代 Ubuntu(16.04+,使用 systemd):

sudo journalctl -k | grep IPTABLES

或:

sudo dmesg | grep IPTABLES

如果是老系统(syslog):

sudo grep IPTABLES /var/log/syslog
sudo grep IPTABLES /var/log/messages

日志里的 IPTABLES 是你自己定义的 --log-prefix


二、如果没有 LOG 规则,怎么加?

示例:记录被 DROP 的包

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

然后查看:

sudo dmesg -T | grep IPTABLES-DROP

三、Ubuntu 用 ufw 的情况(很常见)

如果你用的是 ufw(Ubuntu 默认):

查看 ufw 日志

sudo ufw status verbose
sudo grep UFW /var/log/syslog
sudo journalctl | grep UFW

开启 ufw 日志:

sudo ufw logging on

四、查看当前 iptables 规则(不是日志,但常混用)

sudo iptables -S
sudo iptables -L -n -v

五、常见问题

1. 为什么 dmesg 里没有?

  • 没加 LOG 规则
  • 日志级别不对
  • 内核未启用 CONFIG_NETFILTER_LOG

2. 日志太多怎么办?

  • 限制日志频率:
-m limit --limit 5/min

六、总结(最常用命令)

# 看规则
iptables -L -n -v

# 看日志
dmesg | grep IPTABLES
journalctl -k | grep IPTABLES

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

  • 是用 iptables 还是 ufw
  • 想查 DROP / ACCEPT / 某端口
  • Ubuntu 版本

我可以给你精准命令。

0 踩