iptables持久化核心是先配置正确规则再保存,Ubuntu/Debian推荐用iptables-persistent:安装时选“Yes”保存当前规则至/etc/iptables/rules.v4和rules.v6,自动开机加载;修改后需运行sudo netfilter-persistent save更新。

新手配置 iptables 持久化,核心就两点:先加好规则,再让它们“记住自己”。Ubuntu/Debian 系统推荐用 iptables-persistent,它简单、稳定、开机自动加载,不用写脚本、不碰 systemd 服务,适合刚接触防火墙的新手。
确认当前 iptables 规则已按需配置
持久化只保存“此刻生效”的规则,所以得先确保规则加对了:
- 检查是否已有基础防护规则,比如放行本地回环、已建立连接、SSH(22)、HTTP(80)、HTTPS(443)等: sudo iptables -L -n --line-numbers
- 若还没加规则,可快速添加常用入站许可(示例): sudo iptables -A INPUT -i lo -j ACCEPT(允许本地通信) sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT(放行返回流量) sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT(开放 SSH) sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT(开放 HTTP) sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT(开放 HTTPS)
- 注意:别漏掉 IPv6(如有启用),同步用 ip6tables 添加对应规则,否则重启后 v6 流量可能被拦
安装并启用 iptables-persistent
这是 Debian/Ubuntu 官方推荐的持久化方案,一步到位:
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
- 运行安装命令:sudo apt update && sudo apt install iptables-persistent
- 安装过程中会弹出交互提示:“Save current rules to /etc/iptables/rules.v4?”,选 Yes(这是关键!)
- 系统会自动将当前 IPv4 规则保存到 /etc/iptables/rules.v4,IPv6 规则保存到 /etc/iptables/rules.v6
- 服务已默认启用,开机自动加载,无需额外执行
systemctl enable
验证与后续维护
装完不是终点,要确认它真能扛住重启:
- 手动保存一次(养成习惯):sudo netfilter-persistent save
- 重载测试(不重启也能验证):sudo netfilter-persistent reload,再运行 sudo iptables -L -n 看规则是否还在
- 修改规则后,记得再次 save,否则下次重启还是旧规则
- 如需清空重来,可用:sudo iptables -F 清空内存规则,再重新添加并 save
常见误区提醒
新手容易卡在这几个地方:
- ufw 和 iptables 别混用:如果系统已启用 ufw(Ubuntu 默认防火墙),直接操作 iptables 可能被覆盖。建议先停用:sudo ufw disable,再配 iptables-persistent
- 规则顺序很重要:iptables 自上而下匹配,DROP/REJECT 规则要放在 ACCEPT 后面,否则可能把合法流量提前拦掉
- 没开 IP 转发?NAT 规则无效:如果用到 PREROUTING 或 POSTROUTING(如端口转发),记得开启:echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
- 别跳过 IPv6:即使你主要用 IPv4,只要系统启用了 IPv6 协议栈,就得配 ip6tables 并保存,否则 v6 连接会被默认 DROP

















