在 Ubuntu 上使用 iptables 设置白名单(只允许特定 IP/网段访问,其余拒绝),一般按下面的思路来做:先允许可信 IP,再拒绝其他所有流量。
iptables -F
iptables -X
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
⚠️ 如果是远程服务器,一定要先允许自己的 IP,否则会断连
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 允许单个 IP
iptables -A INPUT -s 1.2.3.4 -j ACCEPT
# 允许一个网段
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -s 1.2.3.4 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -j DROP
iptables -L -n -v
# Ubuntu 18.04+
apt install iptables-persistent
netfilter-persistent save
或手动:
iptables-save > /etc/iptables/rules.v4
iptables -A INPUT -p tcp --dport 22 -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
❌ 先 DROP 再允许自己 IP(会断网)
❌ 忘了 ESTABLISHED 规则(访问异常)
❌ 没保存规则(重启失效)
如果你愿意,可以告诉我:
我可以给你一份可直接用的完整规则脚本。