VPS

Linux VPS 设置 UFW 防火墙完全指南
阻止未经授权的访问

📅 2026年8月30日 ⏱ 阅读约12分钟 🏷 VPS, 安全, Linux
在 Linux VPS 上配置 UFW 防火墙防止暴力破解

📋 目录

  1. 什么是 UFW 及为何使用
  2. 在 Ubuntu/Debian 上安装 UFW
  3. 设置默认策略
  4. 开放和关闭端口
  5. IP 白名单和黑名单
  6. 速率限制防止暴力破解
  7. 启用 UFW
  8. 检查状态和规则
  9. UFW 日志记录
  10. Web 服务器配置示例
  11. UFW 常用命令速查表
  12. 常见问题解答
  13. 总结

获得 Linux VPS 后,第一件要做的事就是配置防火墙,控制网络流量的进出,防止端口扫描、暴力破解和未经授权的访问。UFW(Uncomplicated Firewall)是 Ubuntu/Debian 的默认防火墙工具,简单易用、功能强大,适合初学者和专业管理员。

1. 什么是 UFW 及为何使用

UFW 全称 Uncomplicated Firewall,是 iptables 的前端工具,让防火墙规则管理变得更加简单。自 Ubuntu 8.04 起内置,Debian 完全支持。

为什么 VPS 需要配置防火墙:

💡 提示:启用 UFW 之前务必先允许 SSH,否则会立即被锁定在服务器外面。

2. 在 Ubuntu/Debian 上安装 UFW

Ubuntu 20.04+ 预装了 UFW 但未启用。Debian 可能需要手动安装:

# 更新软件包列表
sudo apt update

# 安装 UFW(Ubuntu 通常已预装)
sudo apt install ufw -y

# 检查版本
ufw version

验证 UFW 已安装但尚未启用:

sudo ufw status
# 输出:Status: inactive

3. 设置默认策略

优秀防火墙的核心原则是拒绝所有,按需放行——先关闭一切,再开放必要的端口:

# 拒绝所有入站流量(允许的除外)
sudo ufw default deny incoming

# 允许所有出站流量(服务器正常对外通信)
sudo ufw default allow outgoing

⚠️ 警告:在允许 SSH 之前切勿启用 UFW,否则会立即被锁定在服务器外面。

4. 开放和关闭端口

允许 SSH(最重要——必须首先执行)

# 允许端口 22(标准 SSH)
sudo ufw allow 22/tcp

# 或使用服务名称
sudo ufw allow ssh

# 如果使用自定义 SSH 端口如 2222
sudo ufw allow 2222/tcp

允许 Web 服务器端口

# HTTP
sudo ufw allow 80/tcp

# HTTPS
sudo ufw allow 443/tcp

# 通过应用配置文件同时允许 HTTP 和 HTTPS
sudo ufw allow 'Nginx Full'
sudo ufw allow 'Apache Full'

允许端口范围

# 允许 TCP 端口 8000-8100
sudo ufw allow 8000:8100/tcp

# FTP 被动模式端口
sudo ufw allow 20000:21000/tcp

关闭端口

# 拒绝 MySQL 端口(不应向公网开放)
sudo ufw deny 3306/tcp

# 删除已有的允许规则
sudo ufw delete allow 80/tcp

5. IP 白名单和黑名单

允许特定 IP

# 允许单个 IP 访问所有端口
sudo ufw allow from 203.0.113.10

# 只允许单个 IP 访问端口 22
sudo ufw allow from 203.0.113.10 to any port 22

# 允许整个 /24 子网访问端口 22
sudo ufw allow from 203.0.113.0/24 to any port 22

封锁可疑 IP

# 封锁单个 IP
sudo ufw deny from 198.51.100.45

# 封锁整个子网
sudo ufw deny from 198.51.100.0/24

💡 提示:对于拥有固定 IP 的生产服务器,建议将 SSH 和 DirectAdmin 面板端口限制为团队 IP,以获得最高安全性。

6. 速率限制防止暴力破解

UFW 的 limit 命令会自动封锁在 30 秒内连接超过 6 次的 IP:

# 为 SSH 启用速率限制
sudo ufw limit ssh

# 或指定端口号
sudo ufw limit 22/tcp

启用此规则后,UFW 将:

7. 启用 UFW

配置好所有规则后,启用 UFW:

# 启用 UFW(会提示确认)
sudo ufw enable

# 输出:
# Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
# Firewall is active and enabled on system startup

⚠️ 按 Y 前请确认:确保已允许 SSH 后再按确认键,否则会立即被锁定。

临时禁用 UFW

sudo ufw disable

修改规则后重新加载

sudo ufw reload

8. 检查状态和规则

# 基本状态检查
sudo ufw status

# 带编号的规则列表(便于删除)
sudo ufw status numbered

# 完整详细信息
sudo ufw status verbose

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
[ 4] 22/tcp (v6)                ALLOW IN    Anywhere (v6)
[ 5] 80/tcp (v6)                ALLOW IN    Anywhere (v6)
[ 6] 443/tcp (v6)               ALLOW IN    Anywhere (v6)

按编号删除规则

# 删除编号为 3 的规则
sudo ufw delete 3

9. UFW 日志记录

日志记录有助于了解被封锁的连接尝试:

# 启用低级日志(仅记录被封锁的数据包)
sudo ufw logging low

# 中级日志(被封锁 + 无效数据包)
sudo ufw logging medium

# 实时查看日志
sudo tail -f /var/log/ufw.log

# 只查看被封锁的条目
sudo grep "BLOCK" /var/log/ufw.log | tail -20

10. Web 服务器配置示例

适用于运行 Nginx + DirectAdmin 的 VPS 的实用配置:

# 重置清空规则
sudo ufw --force reset

# 设置默认策略
sudo ufw default deny incoming
sudo ufw default allow outgoing

# SSH + 速率限制(关键)
sudo ufw limit 22/tcp

# DirectAdmin 面板
sudo ufw allow 2222/tcp

# HTTP / HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# FTP(仅在需要时开放)
sudo ufw allow 21/tcp
sudo ufw allow 20000:21000/tcp

# 启用日志记录
sudo ufw logging low

# 启用 UFW
sudo ufw enable

# 验证配置
sudo ufw status numbered

💡 AsiaGB VPS:所有 泰国 VPS 和 新加坡 VPS 套餐均运行 Ubuntu/Debian,提供完整 root 权限——收到 VPS 后即可立即配置 UFW。

11. UFW 常用命令速查表

命令功能
ufw enable启用 UFW
ufw disable临时禁用 UFW
ufw status numbered列出所有规则(带编号)
ufw allow PORT/tcp允许 TCP 端口
ufw deny PORT/tcp封锁 TCP 端口
ufw limit ssh对 SSH 端口进行速率限制
ufw allow from IP将 IP 加入所有端口白名单
ufw deny from IP立即封锁 IP
ufw delete NUM按编号删除规则
ufw reload重新加载所有规则
ufw reset重置所有规则为默认值
ufw logging low/medium/high设置日志级别

12. 常见问题解答

UFW 和 iptables 有什么区别?
UFW 是 iptables 的前端工具,使防火墙管理更加简便。UFW 命令简短易懂,而 iptables 提供更精细的控制但语法更复杂。从技术上看两者功能相同,UFW 会将命令转换为 iptables 规则执行。
UFW 支持 IPv6 吗?
支持。确保 /etc/default/ufw 文件中设置了 IPV6=yes(默认值)。添加的规则将自动应用于 IPv4 和 IPv6。运行 ufw status 时可以看到每条规则都有对应的 IPv4 和 (v6) 条目。
不小心封锁了 SSH 连接怎么办?
通过 VPS 提供商控制面板的控制台或带外访问登录服务器,然后运行 ufw allow 22 或 ufw disable 恢复访问。预防方法:在第二个 SSH 窗口中测试规则,确认无误后再关闭原始会话。
UFW 速率限制是如何工作的?
UFW 速率限制会自动封锁在 30 秒内连接超过 6 次的 IP 地址,为 SSH 暴力破解攻击提供基本防护。如需更精细的保护,建议结合 Fail2Ban 一起使用。
Web 服务器应该开放哪些端口?
对于普通 Web 服务器,应开放:端口 22(SSH)、80(HTTP)、443(HTTPS)。其他端口保持关闭。如果使用 DirectAdmin,还需开放端口 2222。切勿将数据库端口(3306、5432)直接暴露于互联网。
UFW 有哪些日志级别?
UFW 有 5 个日志级别:off(关闭)、low(仅记录被阻止的数据包)、medium(被阻止 + 无效数据包)、high(所有数据包)、full(包括被允许的数据包)。大多数服务器使用 low 或 medium 级别以控制日志大小。日志存储于 /var/log/ufw.log。

✅ 总结:新 VPS 的 UFW 防火墙配置清单

  1. 安装 UFW:sudo apt install ufw
  2. 设置默认策略:sudo ufw default deny incoming + allow outgoing
  3. 先允许 SSH:sudo ufw allow 22/tcp
  4. 开放必要端口:80、443 及其他按需开放
  5. 启用 SSH 速率限制:sudo ufw limit ssh
  6. 启用 UFW:sudo ufw enable
  7. 验证配置:sudo ufw status verbose

在获得 VPS 的第一天就正确配置 UFW,能有效防御端口扫描、暴力破解和未授权访问,是每台 VPS 都应具备的基础安全措施。

准备好启动安全的 Linux VPS?

AsiaGB 泰国和新加坡 VPS — Ubuntu/Debian 开箱即用,完整 root 权限,99% 正常运行时间,SSD 存储

查看所有 VPS 套餐