温馨提示×

ubuntu虚拟机为何无法上网

小樊
40
2026-10-21 20:18:24
栏目: 云计算

Ubuntu 虚拟机无法上网是比较常见的问题,原因通常和网络模式、虚拟化软件配置、Ubuntu 自身网络设置有关。下面按“最常见 → 较少见”的顺序帮你排查。


一、先确认你用的虚拟化软件

不同软件问题点不同:

  • VMware
  • VirtualBox
  • KVM / QEMU
  • 云服务器(不是本地虚拟机)

二、最常见原因:网络模式选错

1️⃣ NAT 模式(推荐,最省事)

  • 虚拟机通过宿主机上网
  • 一般 默认就能上网
  • 如果 NAT 都不能上,通常是:
    • 宿主没网
    • 虚拟网卡被禁

✅ 检查:

  • VMware:虚拟机设置 → 网络适配器 → NAT
  • VirtualBox:设置 → 网络 → 连接方式:NAT

2️⃣ 桥接模式(Bridge)

  • 虚拟机和宿主机在同一局域网
  • 需要:
    • 宿主机连的是真实网络(不是校园网/公司限制)
    • 路由器允许新设备

❌ 常见问题:

  • 公司/校园网禁止未知 MAC
  • DHCP 没分到 IP

3️⃣ 仅主机(Host-only)

⚠️ 默认不能上外网

  • 只能和宿主机通信

三、在 Ubuntu 里快速排查(重要)

1️⃣ 看有没有 IP

ip a
  • 有 192.168.x.x / 10.x.x.x → 有内网 IP
  • 只有 127.0.0.1 → 没拿到 IP

2️⃣ 测试网络

ping 8.8.8.8
  • 通 → 网络正常
  • 不通 → 网络层问题
ping www.baidu.com
  • 不通但 IP 通 → DNS 问题

四、常见问题与解决办法

✅ 情况 1:没 IP(DHCP 失败)

sudo dhclient eth0
# 或
sudo netplan apply

如果是 Netplan(18.04+):

sudo nano /etc/netplan/*.yaml

示例:

network:
  version: 2
  ethernets:
    eth0:
      dhcp4: true

✅ 情况 2:DNS 错误

cat /etc/resolv.conf

应有:

nameserver 8.8.8.8

临时修复:

sudo echo "nameserver 8.8.8.8" > /etc/resolv.conf

✅ 情况 3:虚拟网卡被关

VMware

  • 宿主机:
    • VMware NAT Service 是否运行
    • VMnet8 网卡是否启用

VirtualBox

VBoxManage list hostonlyifs

✅ 情况 4:Ubuntu 开了防火墙

sudo ufw status

可临时关:

sudo ufw disable

五、最快自查清单 ✅

  1. 宿主机能上网吗?
  2. 虚拟机网络模式是 NAT 吗?
  3. Ubuntu 有 IP 吗?
  4. 能 ping IP 吗?
  5. 能 ping 域名吗?

如果你愿意,可以告诉我:

  • 用的 虚拟机软件
  • ip a 和 ping 的结果
  • Ubuntu 版本

我可以直接帮你“对症修”。

0 踩