在 Ubuntu 下使用 iptables 封禁 IP,常见做法如下:
sudo iptables -A INPUT -s 1.2.3.4 -j DROP
-A INPUT:添加到 INPUT 链-s 1.2.3.4:来源 IP-j DROP:直接丢弃(不返回响应)如果想返回拒绝信息(如端口不可达):
sudo iptables -A INPUT -s 1.2.3.4 -j REJECT
例如封禁 1.2.3.4 访问 22 端口(SSH):
sudo iptables -A INPUT -s 1.2.3.4 -p tcp --dport 22 -j DROP
sudo iptables -A INPUT -s 192.168.1.0/24 -j DROP
sudo iptables -A OUTPUT -d 1.2.3.4 -j DROP
sudo iptables -L -n -v
sudo iptables -L INPUT --line-numbers
sudo iptables -D INPUT 3
sudo iptables -D INPUT -s 1.2.3.4 -j DROP
iptables 规则重启会丢失,需要保存:
sudo apt install iptables-persistent
sudo netfilter-persistent save
或:
sudo systemctl enable netfilter-persistent
如果系统启用了 ufw,建议用:
sudo ufw deny from 1.2.3.4
否则 iptables 可能被 ufw 覆盖。
如果你有具体场景(如:封 IP、防爆破、Docker、NAT),我可以给你更精准的规则。