在 Debian 系统中,iptables 本身并不是一个“服务”,而是内核 netfilter 框架的用户态工具,因此不存在“启动 iptables”这种说法。
你真正需要理解的是:规则如何加载、保存和开机自动生效。
下面按常见场景说明 ✅
iptables -L
如果能正常列出规则(即使为空),说明 iptables 已可用。
nftables 后端查看当前使用的后端:
update-alternatives --display iptables
或:
iptables --version
输出中若包含 nf_tables,说明是 nft 后端。
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
⚠️ 重启后规则会丢失
iptables-save / iptables-restore(推荐)保存:
iptables-save > /etc/iptables/rules.v4
恢复:
iptables-restore < /etc/iptables/rules.v4
netfilter-persistent安装:
apt update
apt install iptables-persistent
安装过程中会询问是否保存当前规则,选择 Yes
规则文件位置:
/etc/iptables/rules.v4 # IPv4
/etc/iptables/rules.v6 # IPv6
以后修改规则后保存:
netfilter-persistent save
重启自动加载 ✅
这是正常的 ❗
❌ 错误示例:
systemctl start iptables
✅ 正确方式:
netfilter-persistent start
或根本不需要 start,规则在 boot 时自动加载。
如果你愿意使用现代方式:
apt install nftables
systemctl enable nftables
systemctl start nftables
nftables 是 Debian 官方推荐替代方案。
| 需求 | 做法 |
|---|---|
| 立即生效 | iptables -A ... |
| 保存规则 | iptables-save > /etc/iptables/rules.v4 |
| 开机自动加载 | iptables-persistent |
| 新系统推荐 | nftables |
| 启动服务 | ❌ 不存在 iptables.service |
如果你愿意,可以告诉我:
cat /etc/debian_version)我可以帮你写一套完整可用的 iptables 规则 + 自动启动方案 ✅