如何管理 iptables -v 选项的源数据?

如何管理 iptables -v 选项的源数据?

如果我在运行 Ubuntu 的 VPS 服务器上运行该命令iptables -nvL,我会得到类似的输出(输出更长 - 我只显示了有趣的部分)

$ sudo iptables -nvL

Chain INPUT (policy DROP 41439 packets, 2499K bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      *       91.234.36.0/24       0.0.0.0/0           
    0     0 DROP       all  --  *      *       223.255.252.0/23     0.0.0.0/0
    0     0 DROP       all  --  *      *       1.0.1.0/24           0.0.0.0/0           
 3102  261K ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
 174K   54M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
  495 26116 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
  331 14756 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:1723
   26  1468 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            LOG flags 0 level 7 prefix "iptables denied: "

有时,当我运行此命令时,我会得到如下结果

(policy DROP 41439 packets, 2499K bytes)

但其他时候 - 在同一个 shell 内 - 数据会重置为零,并且似乎再次开始计数。例如

(policy DROP 2 packets, 9K bytes)

如果我切换到不同的 shell,我将从最后一个 shell 获得相同的数据。
我的问题是

  • iptables 从哪里获取这些信息?
    • 日志文件?
    • 它是否从第一次调用开始内部跟踪iptables -nvL
  • 如何确保数据不会重置为零?

答案1

Iptables 保存已处理数据包的计数(每个链)。这两个选项可用于更改计数:

-Z, --zero [chain [rulenum]] 将所有链中的数据包和字节计数器清零,或仅将给定的链清零,或仅将链中的给定规则清零。

-c, --set-counters 数据包字节 这使管理员能够初始化规则的数据包和字节计数器(在 INSERT、APPEND、REPLACE 操作期间)。

了解调用 iptables 执行 INSERT、APPEND 或 REPLACE 操作的其他进程也会更改数据包计数。

相关内容