温馨提示×

ubuntu iptables怎么配置

小樊
62
2026-08-06 22:01:28
栏目: 智能运维

在 Ubuntu 上配置 iptables 一般分为几个步骤:查看、添加、保存、开机自动加载。下面给你一个从入门到常用配置的完整说明(适用于 Ubuntu 20.04 / 22.04,其他版本也类似)。


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

sudo apt update
sudo apt install iptables iptables-persistent

iptables-persistent 用于保存规则并开机自动加载。


二、查看当前规则

sudo iptables -L -n -v

常用参数说明:

  • -L:列出规则
  • -n:不解析域名(更快)
  • -v:显示详细信息

查看指定表:

sudo iptables -t nat -L -n -v

三、理解 iptables 基本结构

iptables 由 表(table) → 链(chain) → 规则(rule) 组成。

常用表:

  • filter(默认,控制允许/拒绝)
  • nat(地址转换)

常用链:

  • INPUT:进入本机的数据包
  • OUTPUT:本机发出的数据包
  • FORWARD:转发的数据包

四、常用基础配置示例

1️⃣ 允许已建立连接的数据

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

2️⃣ 允许本地回环接口(必须)

sudo iptables -A INPUT -i lo -j ACCEPT

3️⃣ 允许 SSH(非常重要)

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

✅ 建议先加这条,再改默认策略,防止被踢出服务器


4️⃣ 设置默认策略(拒绝所有入站)

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

五、开放常用端口示例

HTTP / HTTPS

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

MySQL(仅允许某 IP)

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

六、删除规则

按编号删除(推荐)

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

按内容删除

sudo iptables -D INPUT -p tcp --dport 80 -j ACCEPT

七、保存 iptables 规则(非常重要)

方法一(推荐)

sudo netfilter-persistent save
sudo netfilter-persistent reload

规则会保存在:

/etc/iptables/rules.v4

八、开机自动生效

sudo systemctl enable netfilter-persistent

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

sudo iptables -F
sudo iptables -X
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT

十、推荐的安全模板(服务器常用)

sudo iptables -F
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
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 netfilter-persistent save

十一、iptables vs ufw

Ubuntu 默认还有 ufw,如果你用的是 ufw:

sudo ufw status

⚠️ iptables 和 ufw 不要混用,否则规则会冲突。


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

  • ✅ 是 云服务器 还是 本地服务器
  • ✅ 想实现什么(防攻击 / 端口转发 / 限 IP / Docker 环境)

我可以给你定制一套 iptables 规则。

0 踩