当前位置: 首页 > article >正文

Ubuntu 上设置 iptables 规则开机自启

在 Ubuntu 上设置 iptables 规则开机自启,可以通过以下方法实现:

方法 1:使用 iptables-persistent(推荐)

Ubuntu 服务器上 iptables 规则不会自动保存,因此需要 iptables-persistent 来持久化规则并在开机时自动加载。

  1. 安装 iptables-persistent
    sudo apt update
    sudo apt install iptables-persistent -y
    安装过程中会要求保存当前的 iptables 规则,选择 Yes。
  2. 保存 iptables 规则
    如果你已经配置了 iptables 规则,可以手动保存:
    sudo netfilter-persistent save
    或者:
    sudo iptables-save > /etc/iptables/rules.v4
    sudo ip6tables-save > /etc/iptables/rules.v6 # 如果使用 IPv6
  3. 重新加载 iptables 规则
    sudo netfilter-persistent reload
  4. 确保 iptables-persistent 在开机时运行
    sudo systemctl enable netfilter-persistent
    sudo systemctl start netfilter-persistent

方法 2:使用 rc.local(适用于较旧版本的 Ubuntu)

如果你不想使用 iptables-persistent,可以在 /etc/rc.local 中添加规则。

  1. 编辑 /etc/rc.local
    sudo nano /etc/rc.local
    在 exit 0 之前添加:
    iptables-restore < /etc/iptables/rules.v4
    如果使用 IPv6:
    ip6tables-restore < /etc/iptables/rules.v6
    然后保存并退出(Ctrl + X,然后按 Y)。
  2. 赋予执行权限
    sudo chmod +x /etc/rc.local
  3. 让 rc.local 生效
    如果 /etc/rc.local 不存在,可以手动创建并启用:
    sudo touch /etc/rc.local
    sudo chmod +x /etc/rc.local
    sudo systemctl enable rc-local
    sudo systemctl start rc-local

方法 3:使用 systemd 自定义服务

你可以创建一个 systemd 服务来在启动时恢复 iptables 规则。

  1. 创建 iptables 服务
    sudo nano /etc/systemd/system/iptables.service
    添加以下内容:
    [Unit]
    Description=Restore iptables rules
    After=network.target

[Service]
Type=oneshot
ExecStart=/sbin/iptables-restore < /etc/iptables/rules.v4
ExecStart=/sbin/ip6tables-restore < /etc/iptables/rules.v6
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
2. 重新加载 systemd 并启用服务
sudo systemctl daemon-reload
sudo systemctl enable iptables
sudo systemctl start iptables

验证 iptables 规则是否生效
sudo iptables -L -v -n
如果重启后 iptables 规则仍然存在,则说明设置成功。
如果你是用于生产环境,建议使用 方法 1(iptables-persistent),因为它是 Ubuntu 官方推荐的方法,并且管理方便。


http://www.kler.cn/a/573225.html

相关文章:

  • 【大模型基础_毛玉仁】1.1 基于统计方法的语言模型
  • Gradle 配置 Lombok 项目并发布到私有 Maven 仓库的完整指南
  • 备忘录模式(Memento Pattern)
  • 读写分离架构下的一致性挑战
  • Unity3D主程入职90天工作计划
  • PHP 将图片url,写入到文件夹中,导出到zip下载到桌面
  • SpringBoot Actuator
  • 4. Prometheus监控数据持久化
  • Spring Boot中对接Twilio以实现发送验证码和验证短信码
  • Redis 篇
  • flask 安装后不能识别
  • C# 类型转换
  • 2025中企出海解决方案:工博科技联合SAP构建AI赋能的全球化管理平台
  • vscode远程ssh链接服务器
  • 迷你世界脚本背包接口:Backpack
  • [内网安全] Windows 网络认证 — 基于挑战响应认证的 NTLM 协议
  • Python Pandas实现GROUP BY WITH CUBE和WITH ROLLUP的分类汇总功能
  • 【极客时间】浏览器工作原理与实践-2 宏观视角下的浏览器 (6讲) - 2.5 渲染流程(上):HTML、CSS和JavaScript,是如何变成页面的?
  • 辉视融合服务器方案:为小酒店行业铺垫未来智能化布局
  • 极限入门题解析