在 Debian 系统中,使用 iptables 允许某个 IP(或 IP 段)访问,常见场景如下。下面按常用需求给你示例,并说明临时生效 / 永久生效的区别。
iptables -A INPUT -s 1.2.3.4 -j ACCEPT
✅ 含义:
-A INPUT:添加到 INPUT 链-s 1.2.3.4:来源 IP-j ACCEPT:允许iptables -A INPUT -s 1.2.3.4 -p tcp --dport 22 -j ACCEPT
✅ 只允许 1.2.3.4 访问 SSH
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -s 1.2.3.4 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -s 1.2.3.4 -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -d 1.2.3.4 -j ACCEPT
⚠️ iptables 顺序执行,如果前面有 DROP,后面 ACCEPT 不会生效。
iptables -I INPUT 1 -s 1.2.3.4 -j ACCEPT
iptables -L -n --line-numbers
iptables -D INPUT 3
iptables -D INPUT -s 1.2.3.4 -j ACCEPT
Debian 重启后 iptables 会丢失,需要保存。
apt update
apt install iptables-persistent
netfilter-persistent save
或手动:
iptables-save > /etc/iptables/rules.v4
iptables -P INPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s 1.2.3.4 -p tcp --dport 22 -j ACCEPT
✅ 只允许指定 IP 访问 SSH,其余全部拒绝
Debian 新版本默认使用 nftables,iptables 可能是兼容层。
查看:
update-alternatives --config iptables
✅ 允许某个 IP 访问服务器
iptables -A INPUT -s 1.2.3.4 -j ACCEPT
netfilter-persistent save
如果你愿意,可以告诉我:
我可以帮你写一套完整安全规则。