在 Ubuntu 上设置 iptables 防火墙规则,可以按下面步骤来。内容从基础概念 → 常见规则示例 → 保存与开机生效逐步说明。
sudo iptables -L -n -v
-L:列出规则-n:不做 DNS 解析(更快)-v:显示详细信息查看指定表(如 nat):
sudo iptables -t nat -L -n -v
iptables 由 表(table) 和 链(chain) 组成:
filter(默认):过滤数据包nat:地址转换mangle:修改数据包raw:连接跟踪INPUT:进入本机的数据包OUTPUT:本机发出的数据包FORWARD:转发的数据包sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
⚠️ 设置默认策略前一定要先允许 SSH,否则可能断连
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
含义:
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT
sudo iptables -A INPUT -s 10.0.0.5 -j DROP
sudo iptables -L INPUT --line-numbers
sudo iptables -D INPUT 3
sudo iptables -I INPUT 1 -p tcp --dport 3306 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
开启 IP 转发:
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.10:80
sudo apt install iptables-persistent
sudo netfilter-persistent save
规则保存在:
/etc/iptables/rules.v4
/etc/iptables/rules.v6
sudo iptables -F
sudo iptables -X
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
如果你愿意,可以告诉我:
我可以帮你定制一套安全且不会断网的 iptables 规则。