UFW配置必须严格遵循“先放行SSH、再设默认拒绝、最后启用”的顺序,否则远程连接将中断;需用sudo ufw status verbose查看策略,sudo ufw allow 22/tcp明确放行SSH,sudo ufw default deny incoming设置入站默认拒绝,启用后用sudo ufw status numbered验证规则。

UFW 不是“开了就能用”的工具,关键在顺序和细节。先放行 SSH,再设默认拒绝,最后启用,三步缺一不可;否则远程连接会立刻中断,只能靠控制台或云平台 VNC 恢复。
第一步:确认状态,别急着 enable
运行 sudo ufw status,如果显示 Status: inactive,说明防火墙根本没在工作,所有端口天然放行——此时切勿直接 sudo ufw enable。真正该做的是先查清当前有没有其他防火墙干扰:
– 运行 sudo iptables -L 和 sudo nft list ruleset,若有输出,需先停用对应服务(如 sudo systemctl stop iptables);
– 再用 sudo ufw status verbose 查看默认策略、已加载规则和日志开关,这是排查问题的首选命令。
第二步:安全放行核心服务
远程管理依赖 SSH,必须优先保障:
– 若用标准 22 端口:sudo ufw allow 22/tcp(比 sudo ufw allow ssh 更可靠,不依赖配置文件);
– 若改过端口(如 2222),必须写明协议:sudo ufw allow 2222/tcp,只写 2222 会同时开 TCP/UDP,增加风险;
– Web 服务推荐用端口号写法:sudo ufw allow 80/tcp 和 sudo ufw allow 443/tcp,避免 http/https 别名因配置缺失失效;
– 数据库等敏感服务,只允本地访问:sudo ufw allow from 127.0.0.1 to any port 3306。
第三步:设置默认策略并启用
默认策略决定“没有明确规则时怎么处理”:
– sudo ufw default deny incoming:所有入站流量默认拒绝(必须在放行 SSH 后执行);
– sudo ufw default allow outgoing:出站流量默认放行,不影响服务器主动请求;
– 执行 sudo ufw enable 启用后,终端会提示 Firewall is active and enabled on system startup;
– 启用后立即验证:sudo ufw status numbered,确保 SSH 规则排在第一位且状态为 ALLOW IN。
第四步:删规则别靠猜,编号才是准绳
UFW 把 allow 80 和 allow 80/tcp 当作两条独立规则,用 sudo ufw delete allow 80 可能删错:
– 先运行 sudo ufw status numbered,获取带编号的完整列表;
– 再按编号删除,例如删第 3 条:sudo ufw delete 3;
– 若已锁机无法远程,只能进控制台执行 sudo ufw reset 清空重来。











