温馨提示×

ubuntu iptables怎样限制ip

小樊
46
2026-10-06 21:22:50
栏目: 智能运维

在 Ubuntu 下,使用 iptables 限制某个 IP(或网段)的访问,常见需求有几种,下面按场景说明。


一、禁止某个 IP 访问本机(最常用)

1. 禁止单个 IP 访问所有端口

sudo iptables -A INPUT -s 192.168.1.100 -j DROP

-A INPUT:添加到入站规则
-s:来源 IP
DROP:直接丢弃(不回应)

如果你想“拒绝并通知对方”,可以用:

sudo iptables -A INPUT -s 192.168.1.100 -j REJECT

2. 禁止某个 IP 访问指定端口(如 22)

sudo iptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j DROP

3. 禁止一个 IP 段

sudo iptables -A INPUT -s 192.168.1.0/24 -j DROP

二、只允许某个 IP 访问(白名单)

只允许 192.168.1.100 访问 22 端口

sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP

⚠️ 注意:ACCEPT 要在 DROP 前面


三、限制本机访问外部某个 IP(出站)

sudo iptables -A OUTPUT -d 8.8.8.8 -j DROP

四、查看和删除规则

查看规则

sudo iptables -L -n --line-numbers

删除某条规则(比如 INPUT 第 3 条)

sudo iptables -D INPUT 3

五、重启后生效(保存规则)

Ubuntu 默认重启会清空 iptables,需要保存:

Ubuntu 18.04 及以下

sudo apt install iptables-persistent
sudo netfilter-persistent save

Ubuntu 20.04 / 22.04

sudo netfilter-persistent save

六、推荐替代方案(更简单)

如果你觉得 iptables 太底层,可以直接用:

sudo ufw enable
sudo ufw deny from 192.168.1.100

如果你能说清楚:

  • 想限制 进还是出
  • 是 所有端口还是某一端口
  • 是 黑名单还是白名单

我可以给你一条最合适的具体命令。

0 踩