UFW简明配置指南

在 VPS (Virtual Private Server) 运维中,安全是第一要素。UFW (Uncomplicated Firewall) 是 Ubuntu 和 Debian 系统上默认的防火墙配置工具。它旨在简化 iptables 的复杂语法,让用户能以更直观的方式管理网络流量。

1. 安装与基础状态

虽然大多数 Ubuntu 镜像默认安装了 UFW,但为了保险起见,可以检查一下。

1
2
3
4
5
# 更新源并安装 UFW
sudo apt update && sudo apt install ufw

# 查看当前状态 (默认通常是 inactive/未激活)
sudo ufw status verbose

2. 设置默认策略 (Default Policies)

在添加具体规则之前,建议配置“默认拒绝所有入站连接,允许所有出站连接”的策略。这是一种安全基线,意味着除非你明确允许,否则没人能访问你的VPS,但你的VPS可以访问外部网络(如更新软件)。

1
2
3
4
5
# 拒绝所有入站流量
sudo ufw default deny incoming

# 允许所有出站流量
sudo ufw default allow outgoing

3. ⚠️ 关键步骤:允许 SSH 连接

在启用防火墙之前,必须先允许 SSH 连接! 否则当你启动 UFW 时,你会被立即踢出服务器,且无法再次连接。

1
2
3
4
5
# 允许默认 SSH 端口 (22)
sudo ufw allow ssh

# 或者,如果你的 SSH 使用了自定义端口 (例如 2222),请使用:
sudo ufw allow 2222/tcp

4. 常用服务配置指令

根据你的 VPS 用途,开放相应的端口。以下是最常见的配置场景:

Web 服务 (HTTP/HTTPS)

如果你运行网站(Nginx/Apache):

1
2
3
4
5
6
7
8
# 允许 HTTP (80)
sudo ufw allow 80/tcp

# 允许 HTTPS (443)
sudo ufw allow 443/tcp

# 或者直接使用服务名 (如果已安装 Nginx)
sudo ufw allow 'Nginx Full'

数据库与邮件

1
2
3
4
5
# 允许 MySQL (仅限受信任的 IP 访问比较安全,详见进阶)
sudo ufw allow 3306/tcp

# 允许 SMTP 邮件服务
sudo ufw allow 25/tcp

指定特定 IP 访问 (进阶安全)

如果你只想让你自己的 IP 访问某个端口(例如数据库或 SSH):

1
2
# 格式: sudo ufw allow from <IP地址> to any port <端口号>
sudo ufw allow from 192.168.1.100 to any port 22

5. 启用与管理防火墙

配置好规则后,正式启用防火墙。

1
2
3
4
5
6
7
8
# 启用防火墙 (系统会提示可能会中断 SSH,输入 y 确认)
sudo ufw enable

# 禁用防火墙
sudo ufw disable

# 重载配置 (修改配置文件后使用)
sudo ufw reload

6. 删除规则与查看状态

查看带编号的规则列表

这是管理规则最方便的方式,因为你可以通过编号来删除规则。

1
sudo ufw status numbered

输出示例:

1
2
3
4
5
6
7
Status: active

To Action From
-- ------ ----
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 80/tcp ALLOW IN Anywhere
[ 3] 443/tcp ALLOW IN Anywhere

删除规则

假设你想删除上面列表中的第 2 条规则(即 80/tcp):

1
2
3
4
5
# 按编号删除
sudo ufw delete 2

# 或者按具体规则内容删除
sudo ufw delete allow 80/tcp

7. 重置配置

如果你把规则配置乱了,想从头开始:

1
2
# 禁用 UFW 并删除所有自定义规则,恢复默认设置
sudo ufw reset

💡 快速检查清单

  1. 设置默认拒绝入站 (default deny incoming).
  2. 务必允许 SSH (allow ssh).
  3. 允许必要的业务端口 (如 80, 443).
  4. 启用防火墙 (enable).
  5. 检查状态 (status).
作者

Smaritron

发布于

2025-12-12

更新于

2025-12-13

许可协议