ubuntu

ubuntu iptables如何保存当前规则

小樊
101
2025-05-17 16:16:06
栏目: 智能运维

在 Ubuntu 系统中,iptables 规则在重启后不会自动保存。因此,您需要手动保存当前的 iptables 规则。以下是几种常见的方法来保存 iptables 规则:

方法一:使用 iptables-saveiptables-restore

  1. 保存规则到文件

    sudo iptables-save > /etc/iptables/rules.v4
    

    这条命令会将当前的 IPv4 规则保存到 /etc/iptables/rules.v4 文件中。

  2. 恢复规则: 在系统启动时,您可以使用 iptables-restore 命令来恢复这些规则。您可以创建一个 systemd 服务来实现这一点。

    创建一个 systemd 服务文件:

    sudo nano /etc/systemd/system/iptables-restore.service
    

    在文件中添加以下内容:

    [Unit]
    Description=Restore iptables rules
    After=network.target
    
    [Service]
    Type=oneshot
    ExecStart=/sbin/iptables-restore < /etc/iptables/rules.v4
    
    [Install]
    WantedBy=multi-user.target
    

    启用并启动服务:

    sudo systemctl enable iptables-restore.service
    sudo systemctl start iptables-restore.service
    

方法二:使用 ufw(Uncomplicated Firewall)

如果您使用的是 ufw,它会在启用时自动保存规则。

  1. 启用 ufw

    sudo ufw enable
    
  2. 查看 ufw 状态

    sudo ufw status
    
  3. 保存规则ufw 会自动将规则保存到 /etc/ufw/user.rules/etc/ufw/user6.rules 文件中。

方法三:使用 netfilter-persistent

netfilter-persistent 是一个用于保存和加载 iptables 规则的工具。

  1. 安装 netfilter-persistent

    sudo apt-get update
    sudo apt-get install netfilter-persistent
    
  2. 保存当前规则

    sudo netfilter-persistent save
    
  3. 查看已保存的规则

    sudo netfilter-persistent status
    

通过以上方法之一,您可以确保在系统重启后 iptables 规则仍然有效。选择适合您需求的方法进行操作即可。

0
看了该问题的人还看了