温馨提示×

Debian iptables如何允许IP

小樊
39
2026-07-01 22:52:04
栏目: 智能运维

在 Debian 系统中,使用 iptables 允许某个 IP(或 IP 段)访问,常见场景如下。下面按常用需求给你示例,并说明临时生效 / 永久生效的区别。


一、允许单个 IP(最常用)

1️⃣ 允许某个 IP 访问本机(所有端口)

iptables -A INPUT -s 1.2.3.4 -j ACCEPT

✅ 含义:

  • -A INPUT:添加到 INPUT 链
  • -s 1.2.3.4:来源 IP
  • -j ACCEPT:允许

2️⃣ 允许某个 IP 访问指定端口(如 22)

iptables -A INPUT -s 1.2.3.4 -p tcp --dport 22 -j ACCEPT

✅ 只允许 1.2.3.4 访问 SSH


二、允许 IP 段(子网)

允许整个子网

iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT

三、允许 IP 访问指定协议

允许访问 HTTP/HTTPS

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

四、允许本机访问某个 IP(OUTPUT)

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 会丢失,需要保存。

方法 1:使用 iptables-persistent(推荐)

安装

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 10+(nftables)

Debian 新版本默认使用 nftables,iptables 可能是兼容层。

查看:

update-alternatives --config iptables

总结(最常用一条)

允许某个 IP 访问服务器

iptables -A INPUT -s 1.2.3.4 -j ACCEPT
netfilter-persistent save

如果你愿意,可以告诉我:

  • Debian 版本
  • 想允许 哪个 IP / 端口
  • 服务器还是桌面
  • 是否已有防火墙策略

我可以帮你写一套完整安全规则

0