ubuntu

Ubuntu iptables如何清除规则

小樊
70
2025-03-10 05:32:05
栏目: 智能运维

在 Ubuntu 中,iptables 是一个用于配置 Linux 内核防火墙(netfilter)规则的命令行工具。要清除所有的 iptables 规则,可以使用以下命令:

  1. 清空所有链的规则

    sudo iptables -P INPUT ACCEPT
    sudo iptables -P FORWARD ACCEPT
    sudo iptables -P OUTPUT ACCEPT
    sudo iptables -t nat -F
    sudo iptables -t mangle -F
    sudo iptables -F
    sudo iptables -X
    

    解释:

    • -P INPUT ACCEPT-P FORWARD ACCEPT-P OUTPUT ACCEPT:将默认策略设置为接受所有输入、输出和转发的数据包。
    • -t nat -F:清空 NAT 表中的所有规则。
    • -t mangle -F:清空 mangle 表中的所有规则。
    • -F:清空所有链中的所有规则。
    • -X:删除用户自定义的链。
  2. 保存更改: 在某些版本的 Ubuntu 中,iptables 规则在重启后不会自动保存。你可以使用 iptables-persistent 工具来保存和恢复规则。

    安装 iptables-persistent

    sudo apt-get update
    sudo apt-get install iptables-persistent
    

    在安装过程中,系统会提示你是否保存当前的 iptables 规则。选择“是”以保存规则。

  3. 手动保存规则(如果未使用 iptables-persistent): 如果你没有使用 iptables-persistent,可以手动保存规则到文件中,并在启动时加载它们。

    保存规则:

    sudo iptables-save > /etc/iptables/rules.v4
    sudo iptables-save > /etc/iptables/rules.v6  # 如果使用 IPv6
    

    加载规则(在启动时自动加载): 编辑 /etc/network/if-pre-up.d/iptables 文件,添加以下内容:

    #!/bin/sh
    iptables-restore < /etc/iptables/rules.v4
    iptables-restore < /etc/iptables/rules.v6  # 如果使用 IPv6
    

    赋予执行权限:

    sudo chmod +x /etc/network/if-pre-up.d/iptables
    

通过以上步骤,你可以清除并保存 iptables 规则,确保在系统重启后规则不会丢失。

0
看了该问题的人还看了