文章目录
- 安装Linux系统后网络不通
-
- 问题定位与处理
-
- [1. 修改虚拟机设置](#1. 修改虚拟机设置)
- [2. Ubuntu 系统内修复](#2. Ubuntu 系统内修复)
- [3. 其他问题排查](#3. 其他问题排查)
- [4. 测试](#4. 测试)
- 网络不通的原因、这样改在系统内部发生了什么
-
- 一、桥接模式不通网**根本原因**
-
- [1. 桥接模式原理](#1. 桥接模式原理)
- [2. 最常见不通网5个真实原因](#2. 最常见不通网5个真实原因)
- 二、每一步修改**作用+原理**
-
- [1. 虚拟机设置:桥接指定上网网卡](#1. 虚拟机设置:桥接指定上网网卡)
- [2. `dhclient -r && dhclient`](#2.
dhclient -r && dhclient) - [3. 修改 netplan yaml 配置](#3. 修改 netplan yaml 配置)
- [4. 重启NetworkManager](#4. 重启NetworkManager)
- 三、整套操作完整逻辑链
- 四、最简单判断你是哪种故障
- 分配的IP地址,重启后会不会变化,如何处理
- Ubuntu开启「DHCP自动获取IP」
-
- [方案1:保持 `renderer: NetworkManager`](#方案1:保持
renderer: NetworkManager) - [方案2:在Netplan里直接写 `dhcp4: true`](#方案2:在Netplan里直接写
dhcp4: true) - 两者的区别,该怎么选?
- [方案1:保持 `renderer: NetworkManager`](#方案1:保持
- 想让IP固定不变,怎么办?
- ens33虚拟网卡与路由器
-
- [一、`ens33` 是什么?是虚拟网卡吗?](#一、
ens33是什么?是虚拟网卡吗?) - [二、给你分配 IP 的路由器,就是你家真实 WiFi 的路由器吗?](#二、给你分配 IP 的路由器,就是你家真实 WiFi 的路由器吗?)
- [补充:为什么 NAT 模式就不一样?](#补充:为什么 NAT 模式就不一样?)
- [一、`ens33` 是什么?是虚拟网卡吗?](#一、
安装Linux系统后网络不通
问题定位与处理
1. 修改虚拟机设置
- 关闭虚拟机
- 虚拟机网络适配器 :
- 模式:桥接模式
- 勾选:复制物理网络连接状态
- 桥接至:在虚拟网络编辑器选择本机正在上网的网卡 (WiFi/有线网卡二选一,别自动)

解决的问题:物理层连通性
- 把虚拟网卡
ens33和宿主机真实的上网网卡(WiFi/有线),通过桥接技术连起来 - 如果这一步没做好(比如桥接选错了网卡),虚拟机的网络数据根本传不到路由器,Ubuntu 里再怎么折腾也拿不到IP
- 这一步是前提条件,必须先做
2. Ubuntu 系统内修复
解决的问题:系统层网络配置
- 让 Ubuntu 正确开启 DHCP 自动获取,拿到路由器分配的 IP、网关、DNS
- 如果这一步没做好(比如配置了静态IP、NetworkManager异常),就算桥接物理连接是通的,系统也不会主动去路由器申请IP,自然上不了网
- 这一步是必要条件,必须在物理连接正常后做
方法1:自动获取IP(最常用)
bash
# 重启网络
sudo systemctl restart NetworkManager
# 释放重新获取IP
sudo dhclient -r
sudo dhclient
方法2:关闭冲突
Ubuntu 的 netplan 配置文件,只要放在 /etc/netplan/ 目录下,文件名不影响,核心规则是:
- 文件名以数字开头(比如
00-、01-),数字决定加载顺序 - 后缀必须是
.yaml或.yml - 系统会按数字从小到大依次加载这些文件
bash
# 关闭Netplan静态冲突
sudo nano /etc/netplan/00-installer-config.yaml
清空里面内容,粘贴:
yaml
network:
ethernets:
ens33:
dhcp4: true
version: 2
保存退出 Ctrl+O 回车 Ctrl+X
应用配置:
bash
sudo netplan apply
3. 其他问题排查
- 本机开了VPN/代理 → 关掉,桥接极易冲突
- 宿主机防火墙拦截 → 临时关闭Windows防火墙
- Ubuntu网卡名不对
查看网卡名:
bash
ip a
把上面ens33改成你看到的网卡名(eth0/ens160等)
4. 测试
bash
ping www.baidu.com
网络不通的原因、这样改在系统内部发生了什么
一、桥接模式不通网根本原因
1. 桥接模式原理
桥接 = 虚拟机直接当成局域网里一台独立电脑
- 和你电脑同网段、同路由器
- 路由器DHCP给虚拟机分配内网IP
- 外网流量直接走路由器,不走宿主机转发
2. 最常见不通网5个真实原因
- 桥接选错网卡
电脑连WiFi却桥接到有线网卡,物理不通,自然没网。 - Netplan配置错乱
装系统时手动填过静态IP,DHCP自动获取被关闭,拿不到地址。 - 宿主机防火墙/360/火绒拦截
禁止虚拟机桥接网卡收发数据包。 - 虚拟网卡服务异常
VMware/VirtualBox虚拟网桥服务没启动。 - 路由器限制
开启MAC绑定、IP黑名单、设备数量限制,不给虚拟机分配IP。
二、每一步修改作用+原理
1. 虚拟机设置:桥接指定上网网卡
改了什么
桥接至 → 选中正在上网的物理网卡 (WiFi/有线)
发生了什么
虚拟机网络数据流精准对接真实上网网卡,不再乱匹配空网卡。
2. dhclient -r && dhclient
作用
-r:释放当前无效IP- 重新向路由器DHCP服务器 申请新内网IP
解决:旧IP失效、IP冲突、没拿到IP
3. 修改 netplan yaml 配置
原问题:
之前配置写了静态IP,强行固定地址,不和路由器自动匹配,自然上不了网。
写入这段:
yaml
network:
ethernets:
ens33:
dhcp4: true
version: 2
实际发生
- 关闭手动静态IP
- 开启DHCP自动获取IPv4
- 让虚拟机主动找路由器要IP、网关、DNS
- 完全和手机、电脑一样自动联网
sudo netplan apply
= 不重启电脑,立刻生效网络配置
4. 重启NetworkManager
作用:重置Ubuntu网络管理服务,清空异常网络缓存、断开错误连接。
三、整套操作完整逻辑链
故障根源
虚拟机桥接网卡匹配错误 + 系统禁用自动IP获取 → 无IP、无网关、无DNS → 无法联网
修复流程逻辑
- 虚拟机层面:打通物理通路(选对上网网卡)
- 系统层面:取消手动固定IP
- 开启自动向路由器获取网络参数
- 重置网络服务刷新状态
- 拿到正确IP→网关→DNS→正常访问外网
四、最简单判断你是哪种故障
ip a网卡没有192.168.x.x内网IP
→ 没拿到地址,用dhclient重新获取- 有内网IP,但ping不通网关
→ 桥接网卡选错/宿主机防火墙拦截 - 能ping网关,ping不通百度
→ DNS错误,改公共DNS即可
分配的IP地址,重启后会不会变化,如何处理

IP地址**不是固定的**,重启后大概率会变,原因:
- 这个IP是路由器的 DHCP服务 临时分配给你的,叫「动态IP」
- 分配规则:租约(valid_lft)有时间限制,图里你看到的
6821sec就是剩余租约时间(大概1.9小时) - 租约到期/重启后,路由器会重新给你分配IP,不一定还是101,也可能是102、103等,只要没人用就行。
它没有写入到netplan文件里,是DHCP服务器(路由器)临时分配的,只存在于当前会话中。
它的完整生成过程是这样的:
- 虚拟机桥接模式 :把
ens33网卡桥接到你宿主机的物理网卡,让虚拟机和宿主机在同一个局域网里。 - 虚拟机发出请求:Ubuntu的NetworkManager会通过DHCP协议,向路由器发送「我要IP地址」的广播请求。
- 路由器分配IP :路由器收到请求后,从它的「可用IP池」(比如
192.168.0.100~200)里,挑一个没人用的IP(比如101),连同子网掩码、网关、DNS一起发给虚拟机。 - 虚拟机接收并使用 :虚拟机把这些参数配置到
ens33网卡上,就能上网了。
这个过程完全由路由器控制,不是你系统里的文件写死的。
Ubuntu开启「DHCP自动获取IP」
方案1:保持 renderer: NetworkManager
- 原理:让Netplan把所有网卡的控制权,交给Ubuntu桌面版自带的「图形网络管理工具」(NetworkManager)。
- 它的工作方式:你在图形界面看到的「有线连接」,其实就是NetworkManager在后台帮你做这些事:
- 监听网卡状态
- 自动发起DHCP请求
- 处理IP、网关、DNS的配置
- 为什么能解决问题:你之前的网络不通,大概率是NetworkManager服务异常,或者桥接网卡没选对,导致它没法正常发起DHCP请求。重启服务+选对网卡后,它就能正常工作了。
方案2:在Netplan里直接写 dhcp4: true
bash
network:
version: 2
renderer: NetworkManager
ethernets:
ens33: # 改成你自己的网卡名,用 ip a 查看
dhcp4: true
- 原理:绕过NetworkManager,直接让Netplan自己来配置网卡,强制开启DHCP自动获取。
- 它的工作方式:Netplan直接把配置写入系统底层的网络配置文件(比如systemd-networkd),直接发起DHCP请求,不依赖NetworkManager服务。
- 为什么能解决问题:如果NetworkManager本身出了问题(比如服务崩溃、配置冲突),直接让Netplan接管,就可以跳过故障点,直接完成DHCP请求。
两者的区别,该怎么选?
| 对比项 | 方案1:NetworkManager管理 | 方案2:Netplan直接DHCP |
|---|---|---|
| 适用场景 | Ubuntu桌面版(带图形界面) | 服务器版/无图形界面的系统 |
| 配置方式 | 图形界面点一点,就能改IP、开关网络 | 只能改yaml文件,再netplan apply生效 |
| IP控制 | 可以在图形界面设置「自动/手动IP」 | 只能通过yaml文件配置 |
| 维护难度 | 新手友好,有问题重启服务就行 | 更底层,出问题需要查配置文件 |
想让IP固定不变,怎么办?
方法1:路由器端设置「静态IP绑定」(不碰系统)
- 登录你的路由器后台,找到「DHCP静态绑定/IP与MAC绑定」
- 把你虚拟机
ens33的MAC地址(比如 00:0c:29:cc:b0:f3),和你想要的IP(比如192.168.0.111)绑定 - 这样路由器每次都会给这个MAC地址分配同一个IP,永远不会变。
方法2:在Ubuntu里设置静态IP(修改配置)
编辑你现在的 01-network-manager-all.yaml,改成:
yaml
network:
version: 2
renderer: NetworkManager
ethernets:
ens33:
addresses:
- 192.168.0.101/24
gateway4: 192.168.0.1 # 你的路由器网关,ip route 可以查到
nameservers:
addresses: [192.168.0.1, 8.8.8.8]
然后执行 sudo netplan apply 生效,这样IP就固定了。
ens33虚拟网卡与路由器
一、ens33 是什么?是虚拟网卡吗?
是的,ens33 就是虚拟机里的「虚拟网卡」,它是这么来的:
- 它是 VMware 为你的 Ubuntu 虚拟机虚拟出来的一块网卡,就像你给电脑插了一张虚拟的"有线网卡"。
- 在桥接模式下,VMware 会把这块
ens33虚拟网卡,直接桥接到你宿主机真实的 WiFi/有线网卡上。 - 对 Ubuntu 来说,它看到的就是一张叫
ens33的"物理网卡",根本意识不到这是虚拟出来的。
你可以把它理解成:
VMware 给 Ubuntu 做了一根虚拟网线,一头插在虚拟机的
ens33上,另一头直接插到了你家里路由器的网口上(通过宿主机的真实网卡中转)。
二、给你分配 IP 的路由器,就是你家真实 WiFi 的路由器吗?
没错,就是你家真实的 WiFi 路由器。
整个流程是这样的:
- 你的宿主机(Windows 电脑)连到了家里的 WiFi 路由器,拿到了
192.168.0.x网段的 IP。 - VMware 桥接模式下,把虚拟机的
ens33网卡,直接"接"到了同一个路由器的局域网里。 - 路由器的 DHCP 服务 发现了虚拟机这个新设备,就从它的地址池里,给虚拟机分配了
192.168.0.101这个 IP。 - 所以你的虚拟机和你的手机、电脑,现在都在同一个局域网里,IP 都是同一个网段的。
举个更形象的例子:
你家路由器就像一个小区,宿主机是你家,虚拟机是你邻居家。桥接模式下,虚拟机直接住进了这个小区里,和你用同一个物业(路由器)、同一个门牌号规则(IP 地址)。
补充:为什么 NAT 模式就不一样?
顺便帮你区分一下,避免搞混:
- 桥接模式:虚拟机 = 小区里的独立住户,路由器直接给它分配公网IP。
- NAT 模式:虚拟机 = 住在你家里的客人,它的所有网络请求都要通过你家(宿主机)转发,路由器只看到你家这一个设备。
你现在桥接模式下,虚拟机和宿主机是平级的,都直接和路由器通信。
如果你想验证一下,可以在 Ubuntu 里执行:
bash
ip route
你会看到默认网关是 192.168.0.1,这就是你家路由器的真实管理地址,和你手机/电脑上看到的网关是同一个。