首页 > Technology > 正文

VPS 防火墙配置指南:UFW 完整教程

fenij 2026-07-30 69 Technology

UFW(Uncomplicated Firewall)是 Ubuntu 和 Debian 上 iptables 的简化前端。它的命令很直观,适合不想记复杂 iptables 语法的人。下面这份教程覆盖 UFW 的日常配置、常见问题和排查方法。

UFW 常用命令速查

操作 命令 说明
查看状态 ufw status verbose 看当前规则
放行端口 ufw allow 80/tcp 放行 HTTP
拒绝端口 ufw deny 3306 拒绝外部访问 MySQL
限制尝试 ufw limit 22 防暴力破解
删除规则 ufw delete allow 80 移除规则
重置 ufw reset 清空所有规则
DEFAULT
DENY 入站
🔧
ufw enable
启用防火墙
📊
6
常用端口: 22/80/443/8069/5432/8072

安装与启用

大多数 Ubuntu 系统已经预装 UFW。先检查状态:

sudo ufw status verbose

如果没安装:

sudo apt install ufw

配置默认策略

服务器通常只需要对外提供几个服务,所以默认拒绝入站、允许出站:

sudo ufw default deny incoming
sudo ufw default allow outgoing

放行必要端口

启用防火墙前,必须先放行 SSH,否则会被锁在外面:

# 如果 SSH 在默认 22 端口
sudo ufw allow 22/tcp

# 如果改了 SSH 端口
sudo ufw allow 2222/tcp

# Web 服务
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# 启用
sudo ufw enable

按应用名放行

UFW 内置了一些常见应用的配置文件:

sudo ufw app list
sudo ufw allow 'Nginx Full'
sudo ufw allow 'OpenSSH'

这种方式比记端口号方便,也更容易维护。

删除规则和重置

查看带编号的规则:

sudo ufw status numbered

删除某条规则:

sudo ufw delete 3

如果规则搞乱了,直接重置:

sudo ufw reset

限制连接频率

UFW 本身不支持 rate limiting,但可以调用 iptables 的 recent 模块。更简单的做法是用 UFW 的 limit 命令(针对 SSH):

sudo ufw limit 22/tcp

这会限制每 30 秒内同一 IP 最多 6 次新连接。

排查连接问题

如果启用 UFW 后某个服务访问不了:

  1. 检查规则:sudo ufw status verbose
  2. 确认端口放行正确
  3. 临时禁用 UFW 测试:sudo ufw disable
  4. 查看系统日志:sudo tail -f /var/log/ufw.log

IPv6 支持

UFW 默认同时管理 IPv4 和 IPv6。如果你的服务只监听 IPv4,需要在 /etc/default/ufw 里确认 IPV6=yes 是开启的。如果有专门的 IPv6 规则需求,可以在 /etc/ufw/before6.rules 里手动添加。

更多服务器安全教程,请访问 fenij.com

常见问题

问:UFW 和 iptables 是什么关系?
答:UFW 是 iptables 的前端。你执行的 ufw 命令最终会被翻译成 iptables 规则。可以用 sudo iptables -L -v -n 查看底层规则。

问:启用 UFW 后 Docker 容器访问异常?
答:Docker 会绕过 UFW 直接操作 iptables。需要在 /etc/default/docker 里设置 DOCKER_OPTS="--iptables=false",或者手动管理 Docker 的 iptables 规则。

问:UFW 支持端口范围吗?
答:支持。sudo ufw allow 60000:61000/tcp 可以放行一段端口,适合被动模式的 FTP 或某些 P2P 应用。

排错自查清单

  • ☐ UFW 常用命令速查
  • ☐ 安装与启用:大多数 Ubuntu 系统已经预装 UFW。先检查状态:
  • ☐ 配置默认策略:服务器通常只需要对外提供几个服务,所以默认拒绝入站、允许出站:
  • ☐ 放行必要端口:启用防火墙前,必须先放行 SSH,否则会被锁在外面:
  • ☐ 按应用名放行:UFW 内置了一些常见应用的配置文件:
  • ☐ 删除规则和重置:查看带编号的规则:
  • ☐ 限制连接频率:UFW 本身不支持 rate limiting,但可以调用 iptables 的 recent 模块。更简单的
  • ☐ 排查连接问题:如果启用 UFW 后某个服务访问不了:
  • ☐ IPv6 支持:UFW 默认同时管理 IPv4 和 IPv6。如果你的服务只监听 IPv4,需要在 /etc/default/
  • ☐ 常见问题:问:UFW 和 iptables 是什么关系? 答:UFW 是 iptables 的前端。你执行的 ufw 命

关键命令速查

  • sudo ufw status verbose
  • sudo apt install ufw
  • sudo ufw default deny incoming sudo ufw default allow outgoing
  • # 如果 SSH 在默认 22 端口 sudo ufw allow 22/tcp # 如果改了 SSH 端口 sudo ufw allow 2222/tcp # Web 服务 su
  • sudo ufw app list sudo ufw allow 'Nginx Full' sudo ufw allow 'OpenSSH'
  • sudo ufw status numbered

相关延伸

更系统的排查思路,见 Technology 分类归档

补充:UFW 之外记得把 IPv6 也护上,很多发行版默认只配了 v4,机器一旦有 v6 地址就等于白挡。规则改完用 ufw status numbered 复核顺序,靠前的规则优先匹配,别把 allow 写到了 deny 后面。对外只开必要端口,其余默认拒绝,这才是最小攻击面。

相关完整手册

系统化的排查与配置思路,建议顺手收藏这几篇完整手册: