防火墙是保护 VPS 的第一道屏障。UFW(Uncomplicated Firewall)是 Ubuntu/Debian 上最易上手的防火墙管理工具,它把底层 iptables 的复杂语法封装成简洁命令,即便是运维新手也能在几分钟内建立起有效的访问控制策略。本文从安装到日常维护,完整演示如何用 UFW 保护你的搬瓦工 VPS。

本文要点

  • UFW 的安装与默认策略设置
  • 放行 SSH、HTTP、HTTPS 等常用端口
  • 启用防火墙并验证状态
  • 按需增删规则,保持规则集整洁

安装 UFW

Ubuntu/Debian 系统通常已预装 UFW;若未安装可执行:

apt update && apt install -y ufw

先放行 SSH,再启用防火墙

启用 UFW 之前,必须先放行当前使用的 SSH 端口,否则启用后立即断线,把自己锁在门外。如使用非默认端口(非 22),请用实际端口号替换下面示例中的 22。

设置默认策略

推荐做法:拒绝所有入站、允许所有出站,之后按需逐一放行:

ufw default deny incoming
ufw default allow outgoing

放行常用端口

放行 SSH

# 默认端口 22
ufw allow 22/tcp
# 自定义端口示例(如 2222)
ufw allow 2222/tcp

放行 Web 服务

ufw allow 80/tcp    # HTTP
ufw allow 443/tcp   # HTTPS
# 或用服务名一次放行 80 和 443
ufw allow "Nginx Full"

放行数据库或其他服务

# MySQL:仅对特定 IP 开放,不要对全网放行
ufw allow from 203.0.113.5 to any port 3306
# 自定义应用端口
ufw allow 8080/tcp

启用防火墙

确认 SSH 端口已放行后启用:

ufw enable
# 提示时输入 y 确认

启用成功的标志

看到 Firewall is active and enabled on system startup 即表示成功,规则会随系统重启自动加载。

查看当前规则与状态

ufw status verbose        # 详细状态
ufw status numbered       # 带编号,方便删除时引用

UFW 常用命令速查

操作命令示例说明
放行端口ufw allow 8080/tcp放行 TCP 8080
放行 UDPufw allow 53/udp放行 DNS UDP
仅允许某 IPufw allow from 203.0.113.5 to any port 22特定来源访问 SSH
拒绝端口ufw deny 23/tcp屏蔽 Telnet
按编号删除ufw delete 3删除 numbered 中第 3 条
按规则删除ufw delete allow 8080/tcp按规则内容删除
临时关闭ufw disable关闭(规则保留)
重置清空ufw reset清空全部规则并禁用

删除规则

# 先查带编号的规则列表
ufw status numbered
# 按编号删除(如删第 3 条)
ufw delete 3
# 或按规则语法删除
ufw delete allow 8080/tcp

CentOS/RHEL 系差异

CentOS/AlmaLinux/Rocky 默认使用 firewalld 而非 UFW,命令不同。放行端口示例:firewall-cmd --permanent --add-port=22/tcp && firewall-cmd --reload。两套工具不要混用。

小结

  • 先设默认策略(deny incoming / allow outgoing),再逐条放行
  • 启用前务必放行 SSH 端口,以免断线
  • ufw status numbered 是查看和清理规则的好工具
  • 只放行业务真正需要的端口,保持规则集最小化
  • 改完规则新开窗口测试,确认连通再关旧连接

常见问题

UFW 启用后 SSH 断了怎么办?

用 KiwiVM 紧急控制台登录服务器,执行 ufw allow 22/tcp(或你的 SSH 端口)再 ufw reload,即可恢复连接。

如何只允许特定 IP 访问 SSH?

执行 ufw allow from 你的IP to any port 22,再删掉原来的 ufw allow 22 规则,这样只有该 IP 才能访问。

UFW 和 iptables 能同时用吗?

UFW 底层就是 iptables,两套工具同时操作规则容易冲突。选一个统一管理即可,推荐 UFW。

服务器重启后规则还在吗?

执行过 ufw enable 后,规则持久保存并随开机自动加载,无需重新设置。