在甲骨文 Ubuntu 实例上配置 UFW 防火墙,必须先放行 SSH 端口(默认 22)再启用防火墙,否则会导致无法远程连接。适用场景为需要操作系统层面过滤入站流量的实例,风险边界在于误操作可能阻断管理通道。
先说结论:配置 UFW 的核心是防止锁定 SSH 连接,建议在启用防火墙前明确放行管理端口。
- 先判断:确认当前 SSH 端口号及甲骨文控制台安全列表规则
- 优先做:执行允许 SSH 命令后再开启 UFW 服务
- 再验证:通过状态查询和外部连通性测试确认规则生效
命令速用版
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enable
sudo ufw status verbose为什么会这样
UFW 是 Ubuntu 默认的防火墙配置工具,底层基于 iptables 或 nftables 管理网络规则。甲骨文云实例同时具备云平台层面的安全列表(Security Lists)和操作系统层面的防火墙,两者均会拦截流量。
分步处理
第一步:检查默认策略
设置默认拒绝入站流量,确保未明确允许的端口无法访问。
sudo ufw default deny incoming第二步:放行 SSH 端口
在启用防火墙前必须执行此操作,默认 SSH 端口为 22,若修改过端口请替换对应数字。
sudo ufw allow 22/tcp第三步:启用防火墙
系统会提示可能中断 SSH 连接,确认已执行第二步后输入 y 确认。
sudo ufw enable怎么验证是否生效
使用 status 命令查看规则列表,确认 22/tcp 状态为 ALLOW。
sudo ufw status verbose检查监听端口,确认服务正常运行。
ss -tuln | grep 22常见坑
1. 甲骨文控制台安全列表未放行:即使 UFW 允许,若云平台安全列表未开放 22 端口,外部仍无法连接。
2. IPv6 配置问题:部分实例默认启用 IPv6,若需限制需单独配置 ufw IPv6 规则。
3. 重置后未重新允许 SSH:执行 ufw reset 后会清空规则,再次 enable 前必须重新 allow 22。
常见问题
UFW 启用后无法 SSH 连接怎么办?
通过甲骨文控制台 VNC 登录实例,检查 ufw status 确认是否允许 22 端口,或暂时禁用防火墙排查。
如何查看 UFW 拦截日志?
默认日志位于 /var/log/ufw.log,可使用 cat 或 tail 命令查看具体拦截记录。
UFW 和甲骨文安全列表优先级哪个高?
两者是串联关系,流量需同时通过云平台安全列表和操作系统防火墙才能到达服务,任一拦截均会导致不通。
参考来源
Ubuntu Official Documentation - Security firewall
URL: https://ubuntu.com/server/docs/security-firewall
Oracle Cloud Infrastructure Documentation - Security Lists
URL: https://docs.oracle.com/en-us/iaas/Content/Network/Concepts/securitylists.htm