配置 UFW 防火墙的核心作用是控制本地端口的进出权限,它无法直接优化运营商之间的路由线路。不存在所谓的“三网直连关键端口”,三网访问效果主要取决于机房上游带宽质量、BGP 线路或 CDN 加速配置。但正确放行端口是确保三网用户能访问服务的基础前提,端口未放行会导致连接被拒绝,而端口放行了不代表线路就一定快。
先说结论:UFW 只能决定是否允许数据包通过特定端口,不能改变网络线路质量。配置时应优先保障管理端口安全,再按需开放业务端口,并注意云厂商安全组联动。
- 适合:新服务器初始化安全加固或业务端口无法访问时的排查场景
- 先准备:确保拥有控制台访问权限(VNC/SSH),防止配置失误导致失联
- 验收:使用外部网络环境测试端口连通性,确认策略生效且 IPv6 兼容
核心概念与前置检查
很多用户误以为防火墙配置能改善网络速度,实际上 UFW 是 Linux 内核 netfilter 的前端工具,只负责根据规则丢弃或接受数据包。在配置 UFW 前,需注意以下两点:
- 云厂商安全组联动:云服务器通常有两层防火墙,分别是云控制台的安全组和系统内的 UFW。若安全组未放行,UFW 配置生效也无法访问。请优先检查云控制台安全组规则。
- IPv6 兼容设置:部分云服务器默认开启 IPv6,若 UFW 配置未考虑 IPv6,可能导致 IPv6 流量被误拦。
UFW 配置实操步骤
1. 检查当前状态:执行 sudo ufw status verbose,确认防火墙是否正在运行以及默认策略。
2. 配置 IPv6 支持(重要):编辑配置文件 sudo nano /etc/default/ufw,找到 IPV6 选项,确保设置为 IPV6=yes,否则 IPv6 流量可能被默认丢弃。保存退出后生效。
3. 设置默认策略:建议默认拒绝所有入站连接,减少暴露面。命令:sudo ufw default deny incoming。
4. 优先放行 SSH:在启用防火墙前,务必先执行 sudo ufw allow 22/tcp(若修改过 SSH 端口请替换对应数字),否则启用后可能无法远程连接。
5. 放行业务端口:根据实际运行的服务放行对应端口。Web 服务放行 80 和 443,数据库或游戏服务需指定协议(TCP/UDP)。
6. 启用服务:确认规则无误后,执行 sudo ufw enable,系统会提示可能导致 SSH 中断,确认即可。
常见业务端口参考
不同业务场景需放行的端口不同,以下是常见服务端口示例,请按需配置:
- Web 服务:80/tcp, 443/tcp
- SSH 管理:22/tcp(建议修改默认端口)
- MySQL 数据库:3306/tcp(建议仅允许内网或特定 IP)
- Redis 缓存:6379/tcp(建议仅允许内网或特定 IP)
- DNS 服务:53/tcp, 53/udp
- 游戏服务:根据具体游戏协议放行特定 UDP 端口,如 7777/udp
验证连通性与日志排查
1. 本地状态检查:再次运行 sudo ufw status,看到状态为 active 且列出了允许的端口即为配置成功。
2. 外部连通性测试:使用本地电脑或第三方在线端口扫描工具,尝试 telnet 或 curl 访问服务器 IP 和端口。例如 curl -I http://你的服务器 IP 或 telnet 你的服务器 IP 端口。
3. 日志观察:若连接失败,可查看 /var/log/ufw.log 是否有被阻止的记录,确认是否漏放行了端口或协议。
高风险场景与避坑指南
1. SSH 端口被锁:如果在修改 SSH 端口后未先在 UFW 放行新端口就启用防火墙,会导致无法远程登录,必须通过云厂商控制台 VNC 修复。
2. 协议混淆:某些服务需要 UDP 协议(如 DNS 或部分游戏),仅放行 TCP 会导致服务不可用,命令需明确指定 sudo ufw allow 53/udp。
3. 安全组冲突:若 UFW 已放行但外部仍无法访问,请检查云控制台安全组是否限制了该端口,两者需同时放行。
原文链接:https://www.zjcp.cc/ask/11575.html
