在 Debian 里使用 iptables 主要分几个层面:查看规则、添加规则、保存规则、Debian 下的注意事项。下面用常见场景一步一步说明。
sudo apt update
sudo apt install iptables
检查版本:
iptables -V
sudo iptables -L -n -v
说明:
-L 列出规则-n 不做 DNS 解析(更快)-v 显示详细信息查看指定表(例如 nat 表):
sudo iptables -t nat -L -n -v
iptables 有三要素:
表(tables)
filter(默认,最常用)natmangleraw链(chains)
INPUT:进入本机的数据包OUTPUT:从本机出去的数据包FORWARD:转发的数据包规则动作
ACCEPT:允许DROP:丢弃(不回应)REJECT:拒绝(返回错误)sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
⚠️ 修改规则前一定要确认 SSH 是允许的,否则可能把自己踢出服务器
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
意思是:
sudo iptables -D INPUT -p tcp --dport 22 -j ACCEPT
或用编号删除(先查看编号):
sudo iptables -L INPUT --line-numbers
sudo iptables -D INPUT 3
sudo iptables -F
sudo iptables -X
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
Debian 默认 不会自动保存 iptables,重启会丢失。
安装保存工具:
sudo apt install iptables-persistent
保存规则:
sudo netfilter-persistent save
规则会保存到:
/etc/iptables/rules.v4
/etc/iptables/rules.v6
开机自动加载 ✅
sudo iptables-save > /etc/iptables/rules.v4
恢复:
sudo iptables-restore < /etc/iptables/rules.v4
sudo iptables -L -n -v
sudo iptables -S
查看命中计数:
sudo iptables -L -v
iptables-persistent 保存规则sudo iptables -F
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
然后保存:
sudo netfilter-persistent save
如果你愿意,可以告诉我:
我可以帮你给出一套完全贴合你环境的 iptables 配置。