讲解 Ubuntu UFW 默认策略、按来源放行、规则删除、SSH 防失联和安全组双层排查。
Ubuntu 的 UFW 是对 netfilter 规则的简化管理工具。云服务器通常还受云平台安全组控制:安全组负责平台网络层,UFW 负责操作系统层。外部连接必须同时通过两层规则,配置时应先保住当前 SSH 管理通道。
最安全顺序:先保留当前 SSH 会话,在云安全组确认你的管理 IP 已放行,再在 Ubuntu 中先添加 SSH 规则,最后才启用 UFW。UFW 本身不收费也不删除数据,但错误规则会让服务器失联。不要用“允许所有端口”验证生产机,也不要在新终端成功前关闭旧会话。

启用前确认实际端口
sudo ss -lntup
sudo ufw status verbose
sudo ufw show added不要猜测 SSH 一定使用 22。若使用自定义端口,必须先放行并保留现有会话,直到新会话验证成功。
基础配置顺序
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow from 203.0.113.10 to any port 22 proto tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status numbered示例 IP 必须替换成真实可信管理来源。管理员地址变化频繁时,可使用 VPN、堡垒机或云平台实例连接能力逐步收窄。
限制管理和内部端口来源
sudo ufw allow from 10.0.0.0/8 to any port 3306 proto tcp
sudo ufw allow from 198.51.100.0/24 to any port 9100 proto tcp数据库、Redis、管理后台和监控端口通常不应向所有公网来源开放。
删除与回退
sudo ufw status numbered
sudo ufw delete 3
sudo ufw delete allow 8080/tcp规则编号在删除后会变化,连续删除前要重新查看。紧急停用后仍应定位来源、端口、IPv6 或规则顺序问题。
端口仍无法访问的排查顺序
- 确认应用监听地址,127.0.0.1 只允许本机访问。
- 检查安全组、子网 ACL 和公网路径。
- 检查 UFW 的 IPv4 与 IPv6 规则。
- 从真实客户端测试 TCP 连接。
- 检查应用与系统日志,区分网络拒绝和应用错误。
规则设计
| 服务 | 建议来源 |
|---|---|
| SSH | 固定管理 IP 或 VPN |
| HTTP/HTTPS | 公网或 CDN 回源网段 |
| 数据库 | 应用私网 |
| 监控 | 监控节点私网 |
边界条件
UFW 不是 Web 应用防火墙,也不能替代身份认证和漏洞修复。Docker 可能直接管理底层规则,容器端口需要单独验证。
先只读查看现状
以下命令查看规则和实际监听,不修改系统:
sudo ufw status verbose ; sudo ss -lntup若 SSH 实际不是 22 端口,后续规则必须用真实端口。云安全组、UFW 和应用监听三层都要允许,任何一层拒绝都会不通。
按顺序配置
sudo ufw default deny incoming ; sudo ufw default allow outgoing ; sudo ufw allow from YOUR_ADMIN_IP to any port 22 proto tcp ; sudo ufw allow 80/tcp ; sudo ufw allow 443/tcp ; sudo ufw enable替换管理 IP 和 SSH 端口。启用前再次核对当前连接来源;动态 IP 用户应准备云控制台登录或受控 VPN,而不是长期开放全网 SSH。
不通时怎么判断
- 超时且 UFW 无日志:先查云安全组、路由和公网地址。
- 连接拒绝:查服务是否监听对应地址和端口。
- IPv4 正常、IPv6 不通:检查 UFW IPv6、云 IPv6 路由和安全组。
- 删错规则:用
sudo ufw status numbered取得编号后精确删除,不整体清空。
验收与回退
从第二终端建立新 SSH 会话,再从外部测试 80/443,确认未授权端口失败。检查 UFW 日志与云安全组不矛盾。失败时用保留会话删除新规则或临时 sudo ufw disable,恢复旧配置后重做;若已失联,使用云控制台终端修复,不重装系统。
云安全组与UFW不要维护两套矛盾口径
云安全组负责包进入实例前的边界,UFW 是操作系统内规则。建议用变更记录说明每个业务端口的用途、来源和负责人,两层都按最小范围配置。删除服务后先验证端口不再监听,再收回两层规则。只删 UFW 而留下全网安全组,或只改安全组而忘记 IPv6 规则,都会形成难以发现的风险。

