下面给你一个Debian 下配置 iptables 的完整入门指南,从基础到常用规则,再到开机自动生效,适合服务器和桌面环境。
cat /etc/debian_version
iptables -V
如果没有安装:
sudo apt update
sudo apt install iptables
Debian 10+ 默认可能使用 nftables,但 iptables 命令仍然可用(作为兼容层)。
iptables 有三张常用表:
| 表 | 用途 |
|---|---|
| filter | 过滤数据包(最常用) |
| nat | 网络地址转换(NAT) |
| mangle | 修改数据包 |
最常用的是 filter 表,默认三条链:
sudo iptables -L -n -v
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
含义:
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
如果是非 22 端口:
sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
sudo iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
sudo iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
sudo iptables -L --line-numbers
sudo iptables -D INPUT 3
sudo iptables -F
sudo iptables -X
Debian 不会自动保存 iptables,重启会丢失。
iptables-persistent(推荐)sudo apt install iptables-persistent
sudo netfilter-persistent save
sudo netfilter-persistent reload
规则保存在:
/etc/iptables/rules.v4
/etc/iptables/rules.v6
iptables-save > /etc/iptables.rules
iptables-restore < /etc/iptables.rules
如果你启用了 IPv6,也要配置:
sudo ip6tables -P INPUT DROP
sudo ip6tables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
COMMIT
查看命中计数:
iptables -L -v -n
查看日志(如果配置了):
dmesg
✅ 新手建议先用 ufw(Debian 也支持):
sudo apt install ufw
sudo ufw enable
但如果你需要精细控制,iptables 是标准方案。
如果你愿意,可以告诉我:
我可以帮你直接写一套适合你环境的 iptables 规则。