温馨提示×

Ubuntu怎么配置iptables

小樊
46
2026-07-11 21:54:51
栏目: 智能运维

在 Ubuntu 上配置 iptables 一般包括:查看规则、添加规则、保存规则、设置开机自动加载。下面按常见使用场景给你一个完整、实用的说明(适用于 Ubuntu 20.04 / 22.04,其他版本也类似)。


一、安装 iptables(一般已自带)

sudo apt update
sudo apt install iptables iptables-persistent

iptables-persistent 用于开机自动保存/恢复规则


二、查看当前 iptables 规则

sudo iptables -L -n -v

查看 NAT 表:

sudo iptables -t nat -L -n -v

三、基本规则配置示例

1️⃣ 允许已建立连接和相关连接(非常重要)

sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

2️⃣ 允许本地回环(lo)

sudo iptables -A INPUT -i lo -j ACCEPT

3️⃣ 允许 SSH(22端口)

⚠️ 配置前一定要允许 SSH,否则可能把自己踢出服务器

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

4️⃣ 允许 HTTP / HTTPS

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

5️⃣ 设置默认策略(推荐)

sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT

含义:

  • INPUT:默认拒绝
  • FORWARD:默认拒绝(如果不是路由器)
  • OUTPUT:默认允许

四、删除 / 插入规则

删除某条规则(按编号)

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

插入规则(放到最前面)

sudo iptables -I INPUT 1 -p tcp --dport 3306 -j ACCEPT

五、保存 iptables 规则(非常关键)

方法一:使用 iptables-persistent(推荐)

保存:

sudo netfilter-persistent save

规则会保存到:

/etc/iptables/rules.v4

开机自动加载 ✅


方法二:手动保存(不推荐)

sudo iptables-save > /etc/iptables.rules

恢复:

sudo iptables-restore < /etc/iptables.rules

六、NAT 配置(服务器做网关/转发)

开启 IP 转发

echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

配置 SNAT / MASQUERADE

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

七、清空所有规则(慎用)

sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X

八、简单安全模板(推荐新手)

# 清空
sudo iptables -F
sudo iptables -X

# 默认策略
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

# 允许 SSH
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# 保存
sudo netfilter-persistent save

九、常见问题

❓ Ubuntu 有 ufw,还要用 iptables 吗?

  • ufw 是 iptables 的封装
  • 服务器/复杂规则建议直接用 iptables
  • ufw 和 iptables 不要混用

❓ 重启后规则没了?

✅ 没保存
✅ 没装 iptables-persistent


如果你愿意,可以告诉我:

  • ✅ 是 云服务器 / 本地服务器
  • ✅ 是否需要 开放端口 / 防 CC / 防扫描
  • ✅ 是否做 NAT / 转发 / Docker

我可以帮你直接写一套适合你环境的 iptables 规则

0