Debian-Jessie:你如何检查 iptables 状态?

Tre*_*ith 6 firewall debian iptables systemd

在旧的 sysvinit 中,我只是service iptables status看看它是否正在运行。

但是在较新的 Debian-Jessie 中,我在服务列表中搜索了 iptables,但在任何地方都没有看到 iptables。当我尝试通过 systemctl status iptables 查询状态时,出现错误。

Debian-Jessie:你如何检查 iptables 状态?

小智 9

Linux 中的 iptables 是作为许多内核模块实现的。通常它是由一些 init 脚本配置的 - 但您可以从命令行动态添加和删除规则。所以基本上,有(至少)你相关的问题:

  • 是否加载了内核模块?
  • 是否适用任何规则?
  • 我的防火墙脚本/程序是否“正在运行”?

旧的 iptables“服务”已被 systemd 淘汰。我认为这个项目试图为 Debian 提供类似的“服务”。

要查看内核模块是否已加载:

# lsmod | grep ip_tables
Run Code Online (Sandbox Code Playgroud)

查看有效规则:

# iptables -L
Run Code Online (Sandbox Code Playgroud)

或者,如果您想查看 NAT 规则:

# iptables -t nat -L
Run Code Online (Sandbox Code Playgroud)

在 Debian 中有许多防火墙软件包可以为您设置 iptables 规则。(我没有尝试过它们中的任何一个,我通常在需要时推出自己的)。

apt-cache search firewall | grep firewall | less
Run Code Online (Sandbox Code Playgroud)