虚拟机安装Ubuntu后,联网的核心是选对网络模式,共享文件夹的核心是安装增强工具并正确挂载,这两件事都不需要太高门槛,照着步骤做就能搞定。
虚拟机Ubuntu上不了网怎么办:先分清你用的是哪张”网卡”
很多朋友刚装完Ubuntu,打开浏览器发现打不开网页,第一反应是系统坏了或者网络配置有问题,其实大多数情况下,问题出在虚拟机软件默认给你的那张”虚拟网卡”上。
虚拟机里的Ubuntu并不直接使用你电脑的物理网卡,而是通过虚拟化软件模拟出一张虚拟网卡,常见的有三种模式:NAT模式、桥接模式和仅主机模式,NAT模式是默认选项,也是最适合新手的方案。
NAT模式基本不用管,重点看验证方法
如果你用的是VMware或VirtualBox,默认就是NAT模式,在这个模式下,虚拟机和宿主机共享一个IP出口,Ubuntu会自动通过DHCP获取到类似168.x.x的内网地址。
验证方法很简单:
- 打开终端,输入
ip addr,查看eth0或ens33这个网卡有没有一个inet地址。 - 如果有地址,再输入
ping www.baidu.com,能通就说明联网正常。 - 如果ping不通,先ping一下网关,比如
ping 192.168.1.1(具体看你的网段),网关能通而外网不通,多半是DNS没配对。
NAT模式下最常见的坑是DNS解析失败,表现是浏览器打不开网页,但ping IP地址能通,解决办法是编辑/etc/resolv.conf文件,把DNS改成8.8.8或114.114.114,然后保存重启网络服务即可。
桥接模式需要手动配置:Ubuntu桥接模式设置静态IP的完整路径
桥接模式适合需要局域网内其他设备直接访问虚拟机Ubuntu的场景,比如你在做服务器测试或嵌入式开发,这个模式下,虚拟机就像局域网里的一台独立电脑,需要自己配置IP、掩码和网关。
在VMware里切换到桥接模式以后,进入Ubuntu系统,按下面的路径操作:
- 点击桌面右上角的网络图标(桌面版)或者编辑
/etc/netplan/目录下的yaml文件(Server版和较新的桌面版)。 - 在配置文件里禁用DHCP(
dhcp4: false),手动填写addresses(IP地址)、routes(网关)和nameservers(DNS服务器)。 - 保存后执行
sudo netplan apply让配置生效。
如果你不知道自己的局域网网段,在宿主机(Windows或Mac)上打开终端输入ipconfig(Windows)或ifconfig(Mac),把虚拟机IP设成同一个网段、最后一个数字改掉就行,需要注意的是,桥接模式下虚拟机必须有独立IP,不能和宿主机冲突,否则会互相抢地址,导致断网。
桌面版和Server版的区别:网络管理工具不一样
Ubuntu有两个大版本:桌面版和服务器版,两者的网络配置方式有很大差别。
- 桌面版默认用NetworkManager管网卡,界面操作即可,改完即生效。
- Server版和精简版用的是
netplan,配置文件改完必须netplan apply才能生效。 - 如果你安装的是较新的Ubuntu版本(比如22.04 LTS及以上),连桌面版也开始用netplan接管网络了。
判断方法很简单:打开终端输入ls /etc/netplan/,如果里面有.yaml文件,说明你的系统走的就是netplan这条路,在这里改配置比图形界面更稳定,也更容易排查问题。
常见网络故障排查三招
联网失败别急着重装系统,按顺序做这三件事:
- 检查虚拟机的网络连接状态:在VMware或VirtualBox的虚拟机设置里,找到”网络适配器”,确认”已连接”和”启动时连接”两个复选框都打上了勾。
- 检查宿主机防火墙:Windows自带的防火墙和第三方安全软件,偶尔会拦截虚拟机的流量,可以临时关闭后测试,确认是防火墙问题再把虚拟机加入白名单。
- 重启虚拟网络服务:VMware的NAT服务有时候会卡死,在Windows服务列表里找到”VMware NAT Service”和”VMware DHCP Service”,右键重启一下再试。
VMware Ubuntu共享文件夹设置:装好增强工具的完整路径
共享文件夹是把宿主机的一个目录直接挂载到虚拟机Ubuntu里,双方读写同一个文件夹,比U盘和FTP方便得多,这个功能默认不开启,需要装一个叫增强工具(VMware Tools或open-vm-tools)的软件包。
桌面版安装open-vm-tools-desktop
VMware已经不再推荐手动下载VMware Tools镜像包了,直接让Ubuntu从软件源里装open-vm-tools即可,桌面版用户执行:
sudo apt update sudo apt install open-vm-tools-desktop -y
装完以后必须重启虚拟机,共享文件夹功能的驱动才会加载,这一步很多人漏掉,结果后面怎么设置都不生效,白折腾半天。
Server版只需要基础版本
如果你装的是Ubuntu Server版,不需要图形界面的增强功能,装一个精简版就够了:
sudo apt install open-vm-tools -y
安装完成后,同样要重启一次,让内核模块正确加载。
启用共享文件夹功能的菜单路径
装好增强工具后,在VMware窗口的菜单栏打开:
- 打开”虚拟机” → “设置”(或”虚拟机设置”)→ 切换到”选项”标签页。
- 在左侧找到”共享文件夹”,选择”总是启用”。
- 点击”添加”按钮,选择宿主机上要共享的物理目录,比如Windows上的
D:share。 - 给这个共享起个名字,建议用纯英文,比如
share,避免中文路径在终端里输入时出问题。 - 点击向导窗口下方的”下一步”和”完成”即可。
挂载到/mnt/hgfs的验证方法
设置完以后,共享文件夹不是自动出现在桌面上的,需要手动挂载,在虚拟机Ubuntu的终端里输入:
sudo mkdir -p /mnt/hgfs sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid=1000
然后输入ls /mnt/hgfs,能看到你添加的共享文件夹名字,就说明挂载成功了,这里的
.host:/是固定写法,代表宿主机上所有通过VMware共享的目录的总入口。
为了不用每次开机都手动挂载一次,可以把这行命令写入/etc/fstab文件,系统启动时自动挂载,在fstab的末尾添加一行:
.host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other,defaults 0 0
保存并重启后,共享文件夹就会自动出现在/mnt/hgfs里。
Ubuntu用什么共享文件夹工具更省心:对比Samba和SSH
如果你的VMware增强工具一直装不上,或者不想用VMware自带的共享功能,还有两条路可以走:Samba和SSH文件传输,这两种方案各有优劣,适用场景完全不同。
Samba适合局域网内多设备互访
Samba是Linux和Windows之间共享文件的经典方案,把Ubuntu里的某个目录通过Samba协议暴露给局域网,Windows的”网络”页面里就能直接看到并访问,不需要每次都打开虚拟机窗口。
配置步骤简要概括:
sudo apt install samba -y安装Samba服务。- 编辑
/etc/samba/smb.conf,在末尾添加一个共享段落,指定路径和访问权限。 - 用
smbpasswd -a 用户名设置Samba访问密码。 - 重启服务
sudo systemctl restart smbd。
Samba的优点是跨平台能力强,Windows、Mac、Linux和手机都能访问,而且不需要在虚拟机里额外装驱动,缺点是配置稍微繁琐,权限管理和防火墙设置容易出错。
SSH适合临时传文件和命令行操作
如果你只是偶尔传个文件,SSH其实是最高效的方案,在Ubuntu里启用SSH服务:
sudo apt install openssh-server -y sudo systemctl enable ssh
然后在宿主机上用scp命令或WinSCP、FileZilla之类的工具连上去,直接拖拽文件,这种方式不需要配置任何共享协议,也不受VMware工具版本限制,作为备选稳得很。
三种方案怎么选
| 方案 | 部署难度 | 适用场景 | 是否依赖VMware工具 |
|---|---|---|---|
| VMware共享文件夹 | 简单,一条命令 | 临时传文件,日常开发 | 是,必须装增强工具 |
| Samba | 中等,需改配置 | 局域网内多设备长期互访 | 否 |
| SSH | 最简单的命令行方案 | 偶尔传文件,远程管理 | 否 |
行业共识认为,日常使用首选VMware自带共享功能,部署成本最低;如果你要做多人协作或跨设备访问,Samba的扩展性更好,SSH则是在任何情况下都能兜底的方案。
为什么你的共享文件夹设置后看不到内容
有时候明明按步骤添加了共享文件夹,/mnt/hgfs下面却空空如也,或者能看到目录但里面是空的,这种情况通常有三个原因。
增强工具没装或版本过旧
排查方向:在终端里输入vmware-toolbox-cmd -v,看能否返回版本号,如果提示命令不存在,或者返回的是老版本,说明增强工具没装好或需要更新,运行
sudo apt upgrade open-vm-tools-desktop -y即可。
挂载命令执行时权限不足
vmhgfs-fuse挂载时如果没加-o allow_other参数,当前用户可能没有读权限,看到的目录内容就是空的,解决方法是重新挂载并加上uid=1000参数,把权限给到你的普通用户。
虚拟机设置里的共享路径包含中文或空格
VMware对中文路径的支持一直不太好,共享文件夹名或路径里包含中文,经常出现”设置了但看不到”的情况,把共享目录移到纯英文路径,比如D:share,大概率能解决。
NAT和桥接模式哪个好:两种联网方式怎么选
这个问题很多新手会纠结。NAT模式够用且安全,桥接模式功能更全但配置成本高。
- 如果你只是用虚拟机来学习Linux、写代码、跑测试环境,NAT模式完全够用,它让虚拟机可以上网,但外部设备访问不到虚拟机,安全性更好。
- 如果你要用虚拟机搭一个网站或服务,让别人也能访问到,就必须用桥接模式,让虚拟机拥有局域网内的独立IP。
- 如果你的工作环境里路由器开启了”AP隔离”或”访客网络”,桥接模式可能无法从局域网获取到有效IP,这种情况反而用NAT更稳定。
据业内专家指出,绝大多数个人用户在安装Ubuntu后,NAT模式就足够日常使用了,没必要为了”看起来更专业”去折腾桥接,避免虚拟机Ubuntu上不了网这种尴尬局面反复出现。
Q&A:虚拟机Ubuntu联网与共享文件夹常见问题
Ubuntu桥接模式设置静态IP后断网怎么办?
多半是配置文件中routes(路由)或nameservers(DNS)写错了,检查netplan配置文件里的网关地址是否和宿主机一致,DNS建议同时填8.8.8(Google公共DNS)和114.114.114(国内公共DNS),然后执行sudo netplan apply,如果还是断网,把dhcp4: false改回true,确认DHCP能拿到IP后,再逐项替换成静态配置。
虚拟机Ubuntu共享文件夹挂载后重启失效怎么解决?
重启后挂载失效是因为你只在当前会话执行了挂载命令,没有写入开机自启,在/etc/fstab里添加那行挂载记录时,注意确保最后两个字段为0 0,并确认这行的位置在系统其他文件系统挂载项之后,不要让网络挂载排在本地磁盘之前,保存后执行sudo mount -a,能成功就说明下次重启也会自动挂载。
VMware克隆出来的Ubuntu虚拟机网络异常如何处理?
克隆的虚拟机复制了原系统的网卡MAC和网络配置,而新虚拟机的网卡硬件根本对不上,所以网络接口通常会变成ens33以外的名字,甚至直接变成eth1,编辑/etc/netplan/下的yaml文件,把网卡名称改成ethernets:下实际显示的结构,并删除旧的MAC绑定,执行sudo netplan apply,重启网络服务后,Ubuntu会重新生成网卡配置,联网即恢复正常。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/730404.html




