在 Debian 下使用 iptables 主要通过命令行完成。下面给你一个从安装到常用操作的实用指南。
Debian 默认通常已安装,但如果没有:
sudo apt update
sudo apt install iptables
查看是否安装:
iptables --version
iptables 分 表(table) 和 链(chain):
常用表:
filter(默认,防火墙)nat(地址转换)mangle(修改包)常用链:
INPUT:进入本机的数据包OUTPUT:本机发出的数据包FORWARD:转发的数据包sudo iptables -L -n -v
-L:列出规则-n:不解析域名-v:详细信息查看 NAT 表:
sudo iptables -t nat -L -n -v
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
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 -L --line-numbers
sudo iptables -D INPUT 3
sudo iptables -F
sudo iptables -X
Debian 默认 重启后 iptables 规则会丢失。
sudo apt install iptables-persistent
保存规则:
sudo netfilter-persistent save
开机自动加载:
sudo systemctl enable netfilter-persistent
开启 IP 转发:
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
MASQUERADE(出口网卡 eth0):
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
❓ iptables 和 nftables?
Debian 10+ 默认用 nftables,但仍兼容 iptables 命令。
❓ 防火墙被锁死?
通过控制台或救援模式清空规则:
iptables -F
如果你有具体需求(比如只允许某 IP、端口转发、Docker 环境、服务器防护),可以告诉我,我给你精确命令。