811 字
4 分钟
UFW简明配置指南
在 VPS (Virtual Private Server) 运维中,安全是第一要素。UFW (Uncomplicated Firewall) 是 Ubuntu 和 Debian 系统上默认的防火墙配置工具。它旨在简化 iptables 的复杂语法,让用户能以更直观的方式管理网络流量。
1. 安装与基础状态
虽然大多数 Ubuntu 镜像默认安装了 UFW,但为了保险起见,可以检查一下。
# 更新源并安装 UFWsudo apt update && sudo apt install ufw
# 查看当前状态 (默认通常是 inactive/未激活)sudo ufw status verbose2. 设置默认策略 (Default Policies)
在添加具体规则之前,建议配置“默认拒绝所有入站连接,允许所有出站连接”的策略。这是一种安全基线,意味着除非你明确允许,否则没人能访问你的VPS,但你的VPS可以访问外部网络(如更新软件)。
# 拒绝所有入站流量sudo ufw default deny incoming
# 允许所有出站流量sudo ufw default allow outgoing3. ⚠️ 关键步骤:允许 SSH 连接
在启用防火墙之前,必须先允许 SSH 连接! 否则当你启动 UFW 时,你会被立即踢出服务器,且无法再次连接。
# 允许默认 SSH 端口 (22)sudo ufw allow ssh
# 或者,如果你的 SSH 使用了自定义端口 (例如 2222),请使用:sudo ufw allow 2222/tcp4. 常用服务配置指令
根据你的 VPS 用途,开放相应的端口。以下是最常见的配置场景:
Web 服务 (HTTP/HTTPS)
如果你运行网站(Nginx/Apache):
# 允许 HTTP (80)sudo ufw allow 80/tcp
# 允许 HTTPS (443)sudo ufw allow 443/tcp
# 或者直接使用服务名 (如果已安装 Nginx)sudo ufw allow 'Nginx Full'数据库与邮件
# 允许 MySQL (仅限受信任的 IP 访问比较安全,详见进阶)sudo ufw allow 3306/tcp
# 允许 SMTP 邮件服务sudo ufw allow 25/tcp指定特定 IP 访问 (进阶安全)
如果你只想让你自己的 IP 访问某个端口(例如数据库或 SSH):
# 格式: sudo ufw allow from <IP地址> to any port <端口号>sudo ufw allow from 192.168.1.100 to any port 225. 启用与管理防火墙
配置好规则后,正式启用防火墙。
# 启用防火墙 (系统会提示可能会中断 SSH,输入 y 确认)sudo ufw enable
# 禁用防火墙sudo ufw disable
# 重载配置 (修改配置文件后使用)sudo ufw reload6. 删除规则与查看状态
查看带编号的规则列表
这是管理规则最方便的方式,因为你可以通过编号来删除规则。
sudo ufw status numbered输出示例:
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):
# 按编号删除sudo ufw delete 2
# 或者按具体规则内容删除sudo ufw delete allow 80/tcp7. 重置配置
如果你把规则配置乱了,想从头开始:
# 禁用 UFW 并删除所有自定义规则,恢复默认设置sudo ufw reset💡 快速检查清单
- 设置默认拒绝入站 (
default deny incoming). - 务必允许 SSH (
allow ssh). - 允许必要的业务端口 (如 80, 443).
- 启用防火墙 (
enable). - 检查状态 (
status).