ufw 简明教程:Ubuntu 服务器防火墙入门
发布时间:2026-08-30 14:43       
更新时间:2026-08-31 07:15
ufw 的好懂之处在于把"默认策略"摆在明面上:进站默认全拒,你放行谁,谁才进得来。Ubuntu 服务器拿它做防火墙,几条短命令就够用。
第一步:启用前先放行 SSH
启用防火墙最经典的事故就是把自己踢下线,所以顺序不能反:
ufw allow 22/tcp
按服务名写也行:ufw allow OpenSSH。SSH 改过端口的机器,这里要写实际端口。还想加一层保险,用 ufw limit 22/tcp 代替 allow:同一个 IP 三十秒内连满六次就被暂时拒绝,对付爆破很管用。然后 ufw enable 启用,期间保持当前会话不断开,新开一个窗口验证还能登录。
第二步:按需放行业务端口
ufw allow 80/tcp
ufw allow 443/tcp
一段端口用冒号写法:ufw allow 8080:8090/tcp,UDP 就把 /tcp 换成 /udp。限定来源网段的写法是 ufw allow from 10.0.0.0/24 to any port 3306 proto tcp,比全开放行克制得多。enable 之后,默认策略自动生效,日常只需维护放行清单。
第三步:看状态
ufw status verbose 显示默认策略与规则;加 numbered 带上编号,删除时用得上。
删除与撤销
按编号删:先 ufw status numbered,再 ufw delete 2;
按内容删:ufw delete allow 8080/tcp,写法与添加时完全一致即可。
规则乱了,ufw reset 一次性清空重来,默认策略也会还原。
日志与排查
被拦的流量去哪看?ufw logging on 开启日志后,内核丢弃的包会出现在 /var/log/ufw.log。应用连不上的排查顺序:先 ufw status 确认端口在放行列表,再用 ss -tlnp 确认服务真的在监听,两头都对才轮到怀疑防火墙。
两个易错点
一是忘了放行 SSH 就 enable,教训都在第一步里;二是规则同时对 IPv4 和 IPv6 生效,排查时别只看一半。每次改端口或上线新服务后,顺手 status 一遍,确认规则真的在列表里。
边界也交代清楚:ufw 适合单机的规则管理,几百条规则、多机统一策略的场景,就该换更完整的方案了。云上的 Ubuntu 机器另有一点要记:ufw 之外仍有平台安全组一道门,排连通性时两边配置要一起对照。