温馨提示×

ubuntu iptables怎么限制ip

小樊
49
2026-09-09 22:21:02
栏目: 智能运维

在 Ubuntu 下使用 iptables 限制 IP(允许/拒绝某些 IP 访问本机或端口),常见做法如下:


一、基础准备

查看当前规则:

sudo iptables -L -n -v

保存规则(Ubuntu 20.04+ 推荐):

sudo apt install iptables-persistent
sudo netfilter-persistent save

二、禁止某个 IP 访问本机(全部拒绝)

sudo iptables -A INPUT -s 192.168.1.100 -j DROP

或拒绝并返回错误:

sudo iptables -A INPUT -s 192.168.1.100 -j REJECT

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

例如只允许 192.168.1.10:

sudo iptables -A INPUT -s 192.168.1.10 -j ACCEPT
sudo iptables -A INPUT -j DROP

⚠️ 注意:最后一条一定要谨慎,会拒绝其他所有 IP。


四、限制 IP 访问指定端口

禁止某 IP 访问 22 端口(SSH)

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

只允许某 IP 访问 3306(MySQL)

sudo iptables -A INPUT -p tcp --dport 3306 -s 192.168.1.10 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 3306 -j DROP

五、限制一段 IP(子网)

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

六、解除限制(删除规则)

按规则编号删除

sudo iptables -L INPUT --line-numbers
sudo iptables -D INPUT 2

按原命令删除

sudo iptables -D INPUT -s 192.168.1.100 -j DROP

七、Ubuntu 新系统注意(nftables)

Ubuntu 20.04+ 默认可能用 nftables:

sudo nft list ruleset

若使用 nftables,建议改用:

sudo nft add rule inet filter input ip saddr 192.168.1.100 drop

如果你有具体场景(比如限 SSH、限国外 IP、限 Docker),可以告诉我,我给你精确命令。

0 踩