温馨提示×

Ubuntu防火墙开启后无法连接网络怎么办

小樊
42
2025-12-10 18:16:00
栏目: 智能运维

Ubuntu防火墙开启后无法连接网络的排查与修复

一、快速定位问题

  • 确认防火墙状态与默认策略:执行sudo ufw status verbose。若看到Default: deny (incoming), allow (outgoing),说明默认只允许本机主动出站,未放行的入站连接会被拒绝(常见现象是能上网但端口连不上)。若你之前执行过sudo ufw default denydeny (routed),可能影响转发与路由。
  • 做一次最小化连通性自检:
    • 查看地址与路由:ip aip route(确认有有效IP与默认网关)。
    • 分层测试:先 ping 默认网关(如192.168.1.1),再 ping 外网 IP(如8.8.8.8),最后测试域名(如ping google.com)。能 ping IP 但域名失败,多为 DNS 问题。
  • 检查 DNS:cat /etc/resolv.conf,若缺少 DNS,可临时写入nameserver 8.8.8.8nameserver 8.8.4.4再测。
  • 判断是否为防火墙阻断:执行sudo ufw disable临时关闭防火墙验证;若恢复,说明是规则问题,需按下方步骤放行必要流量。

二、按场景修复

  • 场景A 能上网但端口连不上(如 SSH、Web)
    • 放行对应端口与协议(示例):sudo ufw allow 22/tcpsudo ufw allow 80/tcpsudo ufw allow 443/tcp;若需 UDP 则改为**/udp**。
    • 指定来源网段更稳妥:sudo ufw allow from 192.168.1.0/24 to any port 22
    • 查看与确认:sudo ufw status numbered,必要时sudo ufw reload使规则生效。
  • 场景B 完全无网络(连外网都不通)
    • 检查默认策略是否为deny (outgoing)(少见但可能):执行sudo ufw default allow outgoing恢复出站默认放行,再sudo ufw reload
    • 若你使用 netplan(常见路径:/etc/netplan/*.yaml),在应用防火墙规则后执行sudo netplan apply确保网络栈与规则一致。
  • 场景C 虚拟机环境(VMware/VirtualBox)
    • 优先使用NAT模式(可自动获取 IP),确认虚拟机网络适配器已启用;若需与宿主机同网段再用桥接
    • 虚拟机里同样用sudo ufw status检查防火墙;必要时在宿主机与虚拟机两侧分别排查防火墙规则。

三、常用命令速查

  • 防火墙状态与规则
    • 查看:sudo ufw status verbosesudo ufw status numbered
    • 启停与重载:sudo ufw enablesudo ufw disablesudo ufw reload
    • 放行示例:sudo ufw allow 22/tcpsudo ufw allow from 192.168.1.100 to any port 8080
  • 底层规则查看(当 ufw 不够细时)
    • sudo iptables -L -n -vsudo iptables -S
  • 网络与连通性
    • 地址/路由:ip aip route
    • 连通性:ping 网关IPping 8.8.8.8ping 域名
  • DNS 快速修复
    • 写入:echo “nameserver 8.8.8.8” | sudo tee /etc/resolv.conf(临时)
  • netplan 应用
    • sudo netplan apply(修改网络或防火墙后建议执行一次)

四、安全加固建议

  • 保持默认策略为deny (incoming), allow (outgoing),仅对必需端口与来源放行(如仅开放22/80/443给指定网段)。
  • 避免使用过于宽松的规则(例如sudo ufw default allow),这会显著降低安全性。
  • 规则变更后用sudo ufw status numbered核对,必要时sudo ufw reload;对关键业务可先规划规则顺序与来源限制。

0