结论先行:UFW 的安全配置核心就三步:把默认策略设成「拒绝所有入站、允许所有出站」,启用前先放行 SSH(否则立即把自己锁死在门外),再开 80/443,最后运行 sudo ufw enable。有固定公网 IP 就把 SSH 仅限到自己的白名单 IP;跑 Docker 的要额外小心,它会绕过 UFW 直接操作 iptables,需绑定 127.0.0.1 由反代接入。

你刚买的 VPS 正在被全世界的脚本小子敲门。这篇 UFW 防火墙速配指南,5 分钟内把门锁死,只放该进的人进来。

全景图解导览:UFW防火墙速配:15分钟把你的VPS武装到牙齿 STAGE 01 · 问题起爆 写在前面 • 表面症状与经验误判 • 隐藏的触发边界与代价 • 隐藏的触发边界与代价 定位核心风险卡点 STAGE 02 · 机制拆解 期望目标 • 不用背RFC,够用就行:✅ 理解防火墙的基本原理 • ✅配置默认策略:拒绝所有… 理清底层因果逻辑 STAGE 03 · 方案对照 计划思考 • 为什么需要防火墙?:防火 墙就像你家门口的保安。没… • 为什么用UFW而不是… 对齐量化实测标尺 STAGE 04 · 工程落地 操作步骤 • 检查UFW安装状态:Ubuntu 20.04+默认预装UFW,但先… • 设置默认策略(最重要的一… 锁死生产确定性

0、写在前面

我见过太多刚买了 VPS 的开发者,兴冲冲地拿到 IP 就开始部署服务,完全忘了还有"防火墙"这回事。

这就像在新房子装修好之后,把大门敞开睡觉。

你的 VPS 有一个公网 IP,意味着全世界的任何人都可以尝试连接它。而你如果连最基本的防火墙都没配,那些端口扫描器、暴力破解脚本、僵尸网络……它们会像饿狼一样围上来。

出海做独立开发,第一步就是保证你的服务器不死在第一波攻击下。

这篇 UFW 防火墙速配指南,带你用最短的时间把 VPS 的门锁死。我们用 Ubuntu 默认的 UFW(Uncomplicated Firewall),名字就告诉你了,简单易用。

问题现场解剖:写在前面 ⚠️ 从问题出发:表面症状是如何一步步演变为生产故障或降权的? 独立开发者工具箱 · CH-11 · 核心卡点传导链 1. 经验主义误判 直接套用默认配置或通用模板上 线 症结:认知偏差与配置盲区 2. 底层机制盲区 忽视极端负载与边缘审查触发阈 值 传导:隐性劣化与边界失守 3. 缺乏验证流程 无量化观测指标与自动化止损防 线 破局:量化指标与工程验证 ✅ 破局核心原则(结论先行) UFW的安全配置核心就三步:把默认策略设成「拒绝所有入站、允许所有出站」, 启用前先放行SSH(否则立即把自己锁死在门外),再开80/443,最后运行sudo…

1、期望目标

这篇文章搞定这些:

  • ✅ 理解防火墙的基本原理(不用背 RFC,够用就行)
  • ✅ 配置默认策略:拒绝所有入站,允许所有出站
  • ✅ 开放必要端口:SSH、HTTP、HTTPS
  • ✅ 学会常用命令:查看状态、添加规则、删除规则
  • ✅ 处理常见坑:改端口、封 IP、Cloudflare 只放行

做完这些,你的服务器攻击面至少减少 90%。

底层机制与架构拆解:期望目标 四阶段递进分析模型 · 从前置识别到最终工程定级 S1 不用背RFC,够用就行 ✅理解防火墙的基本原理 底层规则强约束 S2 ✅配置默认策略 拒绝所有入站,允许所有 出站 S3 ✅开放必要端口 SSH、HTTP、HTTPS 底层规则强约束 S4 ✅学会常用命令 查看状态、添加规则、删 除规则 💡 工程启示:任何一个前置环节失守,都会通过传导链放大为下游的系统性偏差

2、计划思考

为什么需要防火墙?

防火墙就像你家门口的保安。没有它,任何人都能敲你的门;有了它,只有你放行的人能进来。

默认状态下 VPS 的端口状态:

1
2
3
4
5
22 端口(SSH):🔓 全世界都能敲
80 端口(HTTP):🔓 全世界都能敲
443 端口(HTTPS):🔓 全世界都能敲
3306 端口(MySQL):🔓 全世界都能敲
6379 端口(Redis):🔓 全世界都能敲

这些端口如果是默认配置,可能都没有密码或密码很弱。攻击者只需要:

  1. 用扫描器扫你的 IP
  2. 发现开放的端口
  3. 尝试默认密码或暴力破解

配了防火墙后:

1
2
3
4
5
22 端口(SSH):🔒 只允许你的 IP 访问
80 端口(HTTP):🔒 对所有人开放(你需要对外提供服务)
443 端口(HTTPS):🔒 对所有人开放(你需要对外提供服务)
3306 端口(MySQL):❌ 完全不对外开放
6379 端口(Redis):❌ 完全不对外开放

为什么用 UFW 而不是 iptables?

Linux 上有三大防火墙方案:

方案 优点 缺点 适用场景
iptables 功能强大、灵活 配置复杂、新手易出错 需要复杂规则的高级用户
nftables 新一代、性能好 语法变化大、资料少 追求最新技术的用户
UFW 简单直观、命令清晰 高级功能有限 绝大多数用户(推荐)

对于出海独立开发者,你的目标是"快速把服务器安全化",而不是成为防火墙专家。UFW 是最佳选择:

  • 语法简单到几乎不用记
  • Ubuntu 默认预装
  • 满足 95% 的使用场景
  • 官方支持稳定

防火墙工作原理

互联网 UFW 防火墙 你的 VPS 80 443 22* 3306 检查规则 放行?拦截? * 需要你的 IP

外来流量 → UFW 检查规则 → 放行 or 拦截

  • 绿色端口:允许所有人访问(HTTP/HTTPS)
  • 橙色端口:只允许特定 IP 访问(SSH)
  • 红色端口:完全禁止(数据库等)

3、操作步骤

3.1 检查 UFW 安装状态

Ubuntu 20.04+ 默认预装 UFW,但先确认一下:

1
2
3
4
5
# 检查是否安装
which ufw

# 如果提示找不到,执行安装
sudo apt install ufw -y

3.2 设置默认策略(最重要的一步)

默认策略决定"没有明确规则的端口"怎么处理。

安全做法是:拒绝所有入站,允许所有出站。

1
2
3
4
5
# 设置默认入站策略为拒绝
sudo ufw default deny incoming

# 设置默认出站策略为允许
sudo ufw default allow outgoing

为什么这样配?

  • default deny incoming:没有明确声明放行的入站端口全部丢弃拒绝。这是典型的「白名单」最小权限安全思维。
  • default allow outgoing:允许服务器主动向外发起请求(如 apt 更新、curl 调用第三方 API、git pull 代码等)。这是维持服务器正常工作的基石。

💡 小知识

UFW 的规则是"从上到下匹配"。第一条匹配的规则就生效,后面的不看了。所以默认策略是"最后的兜底"。

3.3 开放 SSH 端口(别把自己锁外面)

这是最关键的一步! 如果你先启用了防火墙但忘了开放 SSH,你会把自己锁在外面。

1
2
3
4
5
# 开放默认 SSH 端口 22
sudo ufw allow 22/tcp comment 'SSH'

# 如果你改过 SSH 端口(比如改成 22000)
sudo ufw allow 22000/tcp comment 'SSH'

参数解释:

  • allow:放行通行规则
  • 22/tcp:指定目标端口为 22,仅允许 TCP 协议(SSH 不需要 UDP)
  • comment "SSH":为规则增加文字备注,后续查阅规则表一目了然

⚠️ 生死提醒

一定要在启用防火墙前开放 SSH 端口! 不然你会把自己锁在外面,只能找服务商要 VNC 救援。

3.4 开放 Web 服务端口

如果你要跑网站,需要开放 HTTP 和 HTTPS:

1
2
3
4
5
# 开放 HTTP(80 端口)
sudo ufw allow 80/tcp comment 'HTTP'

# 开放 HTTPS(443 端口)
sudo ufw allow 443/tcp comment 'HTTPS'

按服务名开放(UFW 支持别名):

1
2
3
# 这两条命令等价于上面
sudo ufw allow http
sudo ufw allow https

UFW 会自动将协议别名转为标准端口:http → 80/tcp,https → 443/tcp。

3.5 启用防火墙

前面都是"配置规则",现在正式启用:

1
sudo ufw enable

会提示:

1
Command may disrupt existing ssh connections. Proceed with operation (y|n)?

输入 X 确认。

这个提示是在告诉你:
“启用防火墙可能会打断现有的 SSH 连接,确定要继续吗?”

通常不会打断现有连接,但建议保持 VNC 控制台开启以防万一。因为我们用的是 SSH 客户端主动连接服务器,已建立的连接一般不会被阻断,但部分 SSH 实现可能会超时断连。

3.6 检查状态

1
2
# 查看状态
sudo ufw status verbose

输出类似:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Status: active

Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)

New profiles: skip

To Action From
-- ------ ----
22/tcp (SSH) ALLOW IN Anywhere
80/tcp (HTTP) ALLOW IN Anywhere
443/tcp (HTTPS) ALLOW IN Anywhere
22/tcp (SSH (v6)) ALLOW IN Anywhere (v6)
80/tcp (HTTP (v6)) ALLOW IN Anywhere (v6)
443/tcp (HTTPS (v6)) ALLOW IN Anywhere (v6)

解读输出:

  • Status: active:确认防火墙已处于启用生效状态
  • Default: deny (incoming), allow (outgoing), disabled (routed):确认默认策略为入站全拒绝、出站全放行
  • 下面是具体规则列表

如果想看带编号的规则(方便删除):

1
sudo ufw status numbered

输出:

1
2
3
4
5
6
7
Status: active

To Action From
-- ------ ----
[ 1] 22/tcp (SSH) ALLOW IN Anywhere
[ 2] 80/tcp (HTTP) ALLOW IN Anywhere
[ 3] 443/tcp (HTTPS) ALLOW IN Anywhere

3.7 高级规则:限制 SSH 访问

如果你有固定 IP,可以让 SSH 只允许你的 IP 访问:

1
2
3
4
5
# 只允许你的 IP 访问 SSH(把 1.2.3.4 换成你的 IP)
sudo ufw allow from 1.2.3.4 to any port 22

# 如果改了 SSH 端口
sudo ufw allow from 1.2.3.4 to any port 22000

不知道自己的 IP?

1
2
3
4
5
6
7
# ⚠️ 在你的本地电脑(不是服务器!)上执行
curl ifconfig.me

# 或者访问
curl ip.sb

# ⚠️ 如果在服务器上执行,拿到的是服务器 IP,照样会把自己锁外面!

如果没有固定 IP(家里宽带 IP 会变)?

可以用域名动态解析,但配置比较复杂。更简单的方案是:

  • SSH 仍对公网开放,但改用 sudo ufw limit 22/tcp 限速:同一 IP 若在 30 秒内尝试新建超过 6 次连接则自动临时封禁,零外部依赖就能直接挡掉 95% 以上的暴力穷举脚本
  • 用 fail2ban 防暴力破解(上一篇讲过)
  • 用密钥登录,禁用密码登录

3.8 封禁恶意 IP

如果发现某个 IP 在攻击你:

1
2
3
4
5
6
7
8
# 封禁单个 IP
sudo ufw deny from 1.2.3.4

# 封禁 IP 段
sudo ufw deny from 1.2.3.0/24

# 封禁 IP 的某个端口访问
sudo ufw deny from 1.2.3.4 to any port 80

查看被封禁的 IP:

1
sudo ufw status numbered | grep DENY

3.9 删除规则

规则加错了?两种删除方式:

方式一:按编号删除(推荐)

1
2
3
4
5
# 1. 先查看编号
sudo ufw status numbered

# 2. 删除指定编号(比如删除第 3 条)
sudo ufw delete 3

方式二:按规则内容删除

1
2
# 删除开放 80 端口的规则
sudo ufw delete allow 80/tcp

3.10 重置防火墙

把所有规则清空,恢复默认:

1
sudo ufw reset

慎用! 这个命令会删除所有规则,把防火墙恢复到"禁用"状态。

3.11 只允许 Cloudflare 访问(进阶)

如果你的网站完全在 Cloudflare CDN 后面,可以设置只允许 Cloudflare 的 IP 访问 80/443 端口:

下载自动配置脚本:

⚠️ 安全提醒

以下步骤涉及执行第三方脚本。生产环境务必先审计代码,确认脚本内容安全后再执行。不要养成"直接执行未知脚本"的习惯。

1
2
3
4
5
6
7
8
9
10
11
# 下载脚本
wget -O ~/.cloudflare-ufw.sh https://gist.githubusercontent.com/Xm798/12560579ce11f62027ea8da1fae37456/raw/b07ac8cfe09badf02fc70e2d8bc2da68cabbda50/cloudflare-ufw.sh

# ⚠️ 执行前先检查脚本内容,确认安全!
cat ~/.cloudflare-ufw.sh

# 确认无误后,添加执行权限
chmod +x ~/.cloudflare-ufw.sh

# 执行脚本
~/.cloudflare-ufw.sh

这个脚本会:

  1. 从 Cloudflare 官方获取最新的 IP 段
  2. 添加 UFW 规则,只允许这些 IP 访问 80/443
  3. 重新加载 UFW

设置定时更新(每周一次):

1
2
# 添加 cron 任务
(crontab -l 2>/dev/null; echo "0 0 * * 1 /root/.cloudflare-ufw.sh > /dev/null 2>&1") | crontab -

Cloudflare 的 IP 段可能会变化,所以建议每周自动更新。

落地执行与验证流水线:操作步骤 按序执行以下四步流程,把定性经验转化为可自动巡检的工程防线 STEP 01 检查UFW安装状态 Ubuntu 20.04+默认预装 UFW,但先确认一下: STEP 02 设置默认策略(最重要… 默认策略决定"没有明确 规则的端口"怎么处理。 STEP 03 开放SSH端口(别把自… 这是最关键的一步!如果 你先启用了防火墙但忘了… STEP 04 开放Web服务端口 如果你要跑网站,需要开 放HTTP和HTTPS:

4、总结

4.1 完整配置示例

一个典型的 Web 服务器 UFW 配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 1. 设置默认策略
sudo ufw default deny incoming
sudo ufw default allow outgoing

# 2. 开放 SSH
sudo ufw allow 22/tcp comment 'SSH'

# 3. 开放 Web 服务
sudo ufw allow 80/tcp comment 'HTTP'
sudo ufw allow 443/tcp comment 'HTTPS'

# 4. 如果有固定 IP,限制 SSH 访问
# sudo ufw allow from 你的IP to any port 22

# 5. 启用防火墙
sudo ufw enable

# 6. 检查状态
sudo ufw status verbose

4.2 常用命令速查表

操作 命令
查看状态 sudo ufw status
查看详细状态 sudo ufw status verbose
查看编号规则 sudo ufw status numbered
开放端口 sudo ufw allow 22/tcp
按编号删除 sudo ufw delete [number]
封禁特定 IP sudo ufw deny from 1.2.3.4
启用防火墙 sudo ufw enable
禁用防火墙 sudo ufw disable
重置全部规则 sudo ufw reset
放行指定 IP 访问 sudo ufw allow from 1.2.3.4 to any port 22 proto tcp

4.3 关键点

  1. 默认策略贯彻白名单思维:ufw default deny incoming + ufw default allow outgoing
  2. 先开 SSH 再启用防火墙:别把自己锁外面
  3. 使用 comment 指令添加注释:方便多人或日后维护快速理解每条规则的业务归属
  4. 定期检查生效规则:运行 sudo ufw status numbered 核对是否有过期的临时开放端口
  5. Cloudflare CDN 可进阶:只放行 Cloudflare IP

4.4 出海开发者的防火墙哲学

  • 够用就好:UFW 覆盖 95% 场景,别折腾 iptables/nftables
  • 简单优先:一条精简的 ufw allow 远比手写数十行 iptables 规则稳健且易读
  • 定期检查:每月执行一次 sudo ufw status numbered,清理废弃的端口测试规则
  • 配置备份:在做重大网络架构调整前先备份规则库 sudo cp -r /etc/ufw /etc/ufw.bak

你的目标是快速把服务安全化,而不是成为防火墙专家。

多维实测与判断标尺矩阵:总结 操作 命令 高标尺/方案B 查看状态 sudo ufw status sudo ufw status 查看详细状态 sudo ufw status verbose sudo ufw status verbose 查看编号规则 sudo ufw status numbered sudo ufw status numbered 开放端口 sudo ufw allow 22/tcp sudo ufw allow 22/tcp

5、异常记录

Q1:启用 UFW 后连不上 SSH 了?

原因分析:

你可能在启用防火墙前没有开放 SSH 端口。

解决方案:

  1. 方法一:用服务商的 VNC/Console 救援

大部分 VPS 商都提供网页版控制台,可以免 SSH 登录。进去后:

1
2
3
4
5
# 开放 SSH 端口
sudo ufw allow 22/tcp

# 检查状态
sudo ufw status
  1. 方法二:禁用防火墙
1
sudo ufw disable

先把门打开,进去修复配置,再重新启用。

Q2:规则加了但没生效?

检查步骤:

1
2
3
4
5
6
7
8
# 1. 确认防火墙已启用
sudo ufw status | grep "Status: active"

# 2. 如果显示 inactive,启用它
sudo ufw enable

# 3. 重新加载规则
sudo ufw reload

Q3:想临时关闭防火墙测试?

1
2
3
4
5
# 临时禁用
sudo ufw disable

# 测试完记得重新启用
sudo ufw enable

Q4:误删了所有规则,SSH 还能连吗?

能! UFW 的规则修改不会打断已建立的连接。但新连接会受影响。

补救:

1
2
3
4
5
# 重新开放 SSH
sudo ufw allow 22/tcp

# 检查状态
sudo ufw status

Q5:如何查看防火墙日志?

1
2
3
4
5
# 查看 UFW 日志
sudo tail -f /var/log/ufw.log

# 查看系统日志中的防火墙相关记录
sudo grep "UFW" /var/log/syslog

日志会显示哪些 IP 被拦截了、哪些被放行了,用来排查问题很有用。

Q6:UFW 和 iptables 冲突吗?

不冲突。 UFW 实际上是 iptables 的前端(frontend),它帮你写 iptables 规则。

你可以:

  • 用 UFW 管理日常规则
  • 需要复杂规则时,直接写 iptables

但不推荐混用,容易混乱。如果 UFW 满足需求,就只用 UFW。

Q7:Docker 容器端口怎么放行?

注意! Docker 会直接修改 iptables,绕过 UFW。

如果你有 Docker 容器,UFW 可能拦截不了容器端口。

解决方案:

  1. 标准规范方案:容器端口仅绑定本地回环 -p 127.0.0.1:8080:80
1
docker run -p 127.0.0.1:8080:8080 nginx

这样容器只在本地监听,外网访问不到。

  1. UFW 方案:告诉 Docker 别动 iptables

⚠️ 风险警告

在 Docker 配置中设置 "iptables": false 会导致容器间跨 bridge 通信故障与默认网桥 DNS 失效。多容器编排时强烈建议坚持使用方案一(绑定 127.0.0.1 并由宿主机反代转发)。

编辑 /etc/docker/daemon.json:

1
2
3
{
"iptables": false
}

重启 Docker:

1
sudo systemctl restart docker

测试容器连接:

1
2
3
# 确认容器间网络仍正常
docker ps
docker network ls

然后可以用 UFW 管理规则了。

问题现场解剖:异常记录 ⚠️ 从问题出发:表面症状是如何一步步演变为生产故障或降权的? 独立开发者工具箱 · CH-11 · 核心卡点传导链 1. 方法一:用服务商的… 大部分VPS商都提供网页版控制 台,可以免SSH登录。进去后: 症结:认知偏差与配置盲区 2. 方法二:禁用防火墙 bash 需通过真实环境实测核验 传导:隐性劣化与边界失守 3. 标准规范方案:容器端口… bash 需通过真实环境实测核验 破局:量化指标与工程验证 ✅ 破局核心原则(结论先行) UFW的安全配置核心就三步:把默认策略设成「拒绝所有入站、允许所有出站」, 启用前先放行SSH(否则立即把自己锁死在门外),再开80/443,最后运行sudo…

6、推荐资源

购买 VPS

学习资源

问题整改前后解剖:推荐资源 ⚠️ 整改前:常见踩坑与失分现场 • 盲区 1:忽视「购买VPS」边界约束 • 盲区 2:缺乏「学习资源」实测核验 • 盲区 3:遗漏「环节03」兜底监控 后果:线上隐性故障频发 / 评估等级下调 ✅ 整改后:高确定性工程实践 • 动作 1:购买VPS:Vultr High Frequency VPS:全球… • 动作 2:学习资源:UFW官方文档(Ubuntu) • 动作 3:环节03:Vultr High Frequency VPS:全球节… 收益:指标可观测、配置可复现、风险可阻断

❓ FAQ(UFW 防火墙最常问)(独立开发者最常问)

Q:重启服务器后,UFW 规则还在吗?
在。规则持久化写入在 /etc/ufw/user.rules(IPv6 写入在 /etc/ufw/user6.rules),只要执行过 sudo ufw enable,开机 systemd 会自动重载。想确认开机自启状态运行:systemctl is-enabled ufw。

Q:ufw limit 是干嘛的?真能防 SSH 爆破吗?
完全可以。执行 sudo ufw limit 22/tcp 会自动向内核注册限速规则:同一来源 IP 在 30 秒内尝试新建连接超过 6 次将被直接 DROP 丢包拒绝。对于没固定 IP 访问又不想安装笨重外部中间件的开发者来说,是防护低级爆破脚本最具性价比的手段。

Q:默认 default deny incoming 会把 ping 也挡掉吗?
默认不会。UFW 在 /etc/ufw/before.rules 中默认配置了规则放行 ICMP echo-request 数据包,因此服务器在外网仍可正常 ping 通。若要开启全面禁 ping 隐身,只需在 before.rules 中将包含 -A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT 的规则行注释掉,再执行 sudo ufw reload 即可。

Q:Debian 能用 UFW 吗,还是只能 Ubuntu?
完全可以。在 Debian 上执行 sudo apt install ufw 即可开箱即用,所有语法与 Ubuntu 100% 保持一致。而在 CentOS / AlmaLinux 等 RHEL 系发行版上默认使用 firewalld,切勿同时开启两个防火墙前端工具造成规则竞争。

Q:怎么一次开放一整段端口?
指定端口范围时使用冒号连接并显式指定协议:sudo ufw allow 3000:3005/tcp。注意端口范围会被识别为单一复合规则,删除时需要按完整范围规则或对应编号整条删除。

底层机制与架构拆解:❓FAQ(UFW防火墙最常问)(独立开发者最常问) 四阶段递进分析模型 · 从前置识别到最终工程定级 S1 输入识别与场景分流 明确核心业务诉求与上下 文边界条件 S2 底层协议与规则校验 对照核心规范与真实负载 指标逐项核验 S3 瓶颈隔离与风险阻断 剔除干扰链路、单点隐患 与高危配置 S4 确定性架构标准输出 沉淀为可一键复现的工程 配置基线 💡 工程启示:任何一个前置环节失守,都会通过传导链放大为下游的系统性偏差

数据与引用

  • Fail2Ban 在 SSH 爆破测试里封禁 1291 个唯一 IP(12973 总连接):阈值"10 分钟内 5 次失败",命中率约 65%。机器学习模型准确率 92.5%,召回率 97.8%,比规则-based 更准。
    来源:DiVA - SSH Brute Force Detection (PDF)
    含义:ufw limit 结合 fail2ban 是针对单 IP 暴力尝试最有效的防御基线;而应对全球分布式海量代理池攻击时,则需借助更上层的 Cloudflare 或全封闭零信任方案。

  • AhnLab 2025 Q4 报告:P2PInfect 蠕虫 SSH 暴力尝试占 80.4%:Prometei 8.3%、XMRig 2.2%。Verizon DBIR 2025 报告 Web 应用暴力破解事件同比近 3 倍(20%→60%)。
    来源:Tech Insider - Fail2ban Setup 2026
    含义:SSH 暴力破解是常态,不是偶然事件。基础防火墙 + fail2ban 是出海开发者的最低防线。

  • UFW 是 iptables 的前端(Uncomplicated Firewall):Ubuntu 8.04 LTS 引入,目标是简化 iptables 规则管理。Debian 也可装(apt install ufw),CentOS / RHEL 默认用 firewalld。
    来源:DigitalOcean - How to Set Up a Firewall with UFW
    含义:UFW 不替代 iptables,只是把规则语法变简单;复杂场景(多 WAN、QoS)仍要直接用 iptables/nftables。

  • ufw limit 默认阈值:30 秒内同一 IP 6 次新连接:阈值写死,要自定义必须动 iptables。
    来源:UFW Manpage
    含义:UFW 自带的 limit 限速阈值足以应对日常脚本扫描;若针对业务 Web 端口实现精细化防 CC 防刷,需在 Nginx / Caddy 反向代理层或 /etc/ufw/before.rules 中编写精细的 iptables recent 模块参数。

  • Linux 5.10+ 内核自带 nftables(替代 iptables 后端):UFW 当前仍走 iptables 后端,nftables 后端在 Ubuntu 22.04+ 是默认选项。
    来源:Ubuntu nftables Wiki
    含义:跟着发行版默认走即可;UFW 用户通常不用关心后端是 iptables 还是 nftables。

  • Shadowserver 基金会每日跟踪全球数百万 SSH 凭据爆破事件:从新开 VPS 到第一波爆破,平均不到 10 分钟。
    来源:Tech Insider - Fail2ban Setup 2026
    含义:SSH 密码登录暴露在公网 = 主动找打。SSH 密钥 + fail2ban 是几乎零成本的最低防线。

💡 透明声明:本文包含 8 处推广链接(6 个独立服务,如 Vultr / Cloudflare / Tailscale 等)。每次点击我会收到一笔佣金,不影响你的购买价格,也不影响我的内容判断,工具好不好用我自己用了才知道。完整推广政策见 ittinker.com/about。

问题整改前后解剖:数据与引用 ⚠️ 整改前:常见踩坑与失分现场 • 盲区 1:忽视「Fail2Ban在SSH爆破测试…」边界约束 • 盲区 2:缺乏「AhnLab 2025 Q4报告…」实测核验 • 盲区 3:遗漏「UFW是iptables的前端(…」兜底监控 后果:线上隐性故障频发 / 评估等级下调 ✅ 整改后:高确定性工程实践 • 动作 1:Fail2Ban在SSH爆破测试里封禁1291个唯一IP… • 动作 2:AhnLab 2025 Q4报告:P2PInfect蠕虫SSH暴… • 动作 3:UFW是iptables的前端(Uncomplicated… 收益:指标可观测、配置可复现、风险可阻断

💼 推荐工具

工具 用途 为什么推荐
Cloudflare CDN + DNS 源站只放行 CF IP 段,从源头减攻击面(见「服务器安全加固清单」白名单脚本)
Vultr 源站 VPS 控制台可一键开关防火墙组,配合 UFW 双层防护
DigitalOcean 源站 VPS Cloud Firewall 图形界面 + UFW 系统层,两层防护
Hetzner 欧洲源站 欧洲机房,配 UFW + fail2ban 抗暴力破解成本最低
Bitwarden 密码管理 UFW 之外,账号层用密码管理器隔离风险
多维实测与判断标尺矩阵:💼推荐工具 工具 用途 为什么推荐 Cloudflare CDN+DNS 源站只放行CF IP段,从源头减攻击面(… Vultr 源站VPS 控制台可一键开关防火墙组,配合UFW双… DigitalOcean 源站VPS Cloud Firewall图形界面+UFW系统层… Hetzner 欧洲源站 欧洲机房,配UFW+fail2ban抗暴力破解…

下一篇预告

下一篇我们来讲 Nginx 反向代理实战,教你:

  • 用 Nginx 把多个服务放在一个域名下
  • 配置 SSL 证书(Let’s Encrypt 免费证书)
  • 负载均衡和缓存优化

本文最后更新:2026年8月

独立开发者工具箱系列,欢迎关注!