虚拟机里的Linux系统连接WiFi,核心思路是让虚拟机直接使用宿主的无线网卡,再通过系统自带的网络管理工具完成配置,整个过程不需要额外硬件,也不需要改路由。
很多人在这一步卡住,不是因为命令记不住,而是没搞清楚虚拟机的网络模式,下面直接从适配器设置开始,一步步说清楚。
虚拟机Linux连接WiFi前的准备:网络适配器必须选对
桥接模式还是NAT模式:先分清这两个选项
VMware和VirtualBox默认给虚拟机提供NAT模式,这种模式下虚拟机通过宿主机共享网络,能上网但拿不到局域网独立IP,宿主机WiFi的信号状态在虚拟机里是“隐藏”的。想让Linux虚拟机直接搜到WiFi并连接,必须把网络适配器切换为桥接模式。
桥接模式下,虚拟机的网卡会直接绑定宿主机的无线网卡,相当于在同一个局域网里多了一台独立设备,此时Linux系统里的网络管理器才能扫描到周边的无线网络。
以VMware为例的切换步骤
- 关闭虚拟机,打开“虚拟机设置”。
- 选择“网络适配器”,右侧勾选“桥接模式”。
- 点击“配置适配器”,确保物理无线网卡(如Intel Wi-Fi 6 AX200)被勾选,不要选“自动”。
- 启动虚拟机,登录Linux系统。
VirtualBox的操作类似:选择虚拟机 → 设置 → 网络 → 连接方式改为“桥接网卡”,名称选择宿主机的无线网卡即可,如果宿主机用的是USB无线网卡,注意USB设备需要单独透传,这里先不展开,后面细说。
Linux虚拟机里的WiFi连接方法:图形界面和命令行两条路
桌面环境下:通过网络设置面板连接
多数Linux发行版(Ubuntu、Fedora、Linux Mint)默认安装NetworkManager,托盘区会有WiFi图标。切换桥接模式并重启虚拟机后,点击右上角网络图标,应该能看到附近的无线网络列表。
具体操作路径:
- 点击网络图标,选择“WiFi”或“无线网络”。
- 打开WiFi开关(有些版本是独立的切换按钮)。
- 从扫描出的列表中选择自己的WiFi,弹出密码框后输入密码。
- 连接成功后,图标变为已连接状态,可以打开浏览器验证。
如果托盘区图标不显示,打开“设置” → “网络” → “无线”,同样可以完成操作,Debian系服务器版没有桌面环境,就得用命令行。
命令行下:用nmcli快速连接WiFi
服务器版Linux或者精简桌面环境不带图形录制工具,但NetworkManager的命令行工具nmcli是标配,连接WiFi的过程非常直接,分三步。
第一步,查看无线网卡是否被识别和启用。
nmcli radio wifi
输出enabled表示WiFi开关已打开,如果显示disabled,执行:
nmcli radio wifi on
第二步,扫描并连接指定WiFi。
先用nmcli dev wifi list扫描周围网络,找到自己的SSID,然后执行:
nmcli dev wifi connect "你的WiFi名称" password "你的密码"
这一步会直接完成连接,并在NetworkManager中保存配置,如果WiFi名称有空格或特殊字符,双引号必须保留。
第三步,验证IP获取情况。
ip addr show
看到无线网卡(通常是wlan0或wlx开头)绑定了192.168.x.x或172.x.x.x地址,说明已经成功从路由器获得IP,再用ping -c 4 223.5.5.5测试外网连通性。
手动配置静态IP的场景
公司网络或校园网可能要求固定IP,修改配置文件前,先查路由网关地址:
ip route | grep default
然后编辑网卡配置文件(Ubuntu系是netplan,CentOS/RHEL系是ifcfg文件),把DHCP改为manual,填入IP、掩码、网关和DNS,这套步骤和物理机配置完全一致,不多赘述。
虚拟机Linux连不上WiFi?按顺序排查这四个位置
宿主机无线网卡没有透传成功
桥接模式下虚拟机依然看不到WiFi列表,多数原因是VMware的桥接配置里没有勾选物理网卡,或者勾选了“自动”导致系统选错了卡,回到虚拟网络编辑器中,把桥接模式绑定的适配器明确指定为当前正在上网的那块无线网卡。
如果宿主机用的是无线网卡,而虚拟机的桥接模式默认绑定了有线网卡(以太网),也会导致扫描不到WiFi,改绑定时记得区分设备名称。
NetworkManager服务没在运行
有些精简版Linux默认不启动NetworkManager,或者被systemd-networkd替代。
systemctl status NetworkManager
如果服务处于dead状态,执行:
systemctl start NetworkManager
systemctl enable NetworkManager
开启后,nmcli dev wifi list应该能输出网络列表。
无线网卡被NetworkManager接管后状态异常
检查无线网卡是否被识别为受管状态:
nmcli device status
如果设备显示“unmanaged”,说明配置文件里设置了
NM_CONTROLLED=no,需要改成yes并重启NetworkManager服务,这个坑在CentOS 7/8上特别常见。
无线网卡硬件开关被物理关闭
笔记本的无线网卡可能被硬件开关或Fn组合键关闭,在虚拟机里看不到这个开关,但可以通过rfkill命令查看:
rfkill list
如果Wireless LAN对应条目显示Soft blocked: yes,执行:
rfkill unblock wifi
这条命令解除软件屏蔽,再重新扫描WiFi。
桌面环境和发行版差异:不同Linux版本的操作细节
Ubuntu / Debian 系注意事项
Ubuntu桌面版自带NetworkManager图形界面,桥接模式下基本一次成功。需要留意的是,Ubuntu 18.04之后用netplan管理网络,如果改了/etc/network/interfaces,可能会和NetworkManager冲突,导致WiFi图标消失。 检查/etc/netplan目录下的yaml文件,确保没有被注释的“renderer: NetworkManager”配置被错误改为“renderer: networkd”。
CentOS / RHEL 系注意事项
CentOS默认用NetworkManager,但最小化安装没有GUI,只能命令行操作,连接WiFi前,先确认无线网卡固件已安装:
ls /lib/firmware | grep iwl
多数Intel无线网卡的固件包含在iwlwifi包中,只要安装系统时选了“硬件支持”组件就能用,如果固件缺失,nmcli dev wifi list会提示设备不存在,安装对应固件包(如linux-firmware)即可解决。
虚拟机WiFi上网速度慢或频繁掉线:可能是这些原因
桥接模式下,虚拟机直接竞争宿主的无线带宽,信号强度不佳时掉线是常见现象,先检查虚拟机是否离路由器太远,或者宿主机的无线网卡节能模式是否开启。
iwconfig
如果输出中Tx-Power显示较低,可以尝试:
iwconfig wlan0 txpower 20
临时调高发射功率,但注意,这取决于无线网卡硬件上限,不是所有网卡都支持。
VMware的桥接模式默认会过滤某些网络协议,导致部分网页加载缓慢,可以在VMware虚拟网络编辑器中,取消“启用网络过滤”选项,或者改用“复制物理网络连接状态”,更稳妥的做法是给虚拟机设置一个和宿主机同网段的静态IP,避免每次重启都重新DHCP获取,减少掉线概率。
没有无线网卡怎么办?USB WiFi网卡的透传方法
台式机或服务器宿主没有无线网卡,想给虚拟机配WiFi,可以用USB无线网卡,但需要把USB设备直接透传给虚拟机。
VMware中的USB透传步骤
- 插入USB无线网卡,等待宿主机识别。
- VMware菜单栏选择“虚拟机” → “可移动设备” → 找到无线网卡名称 → 点击“连接”。
- 虚拟机里执行
lsusb,确认出现该无线网卡设备。 - 随后按正常步骤开启WiFi扫描连接。
注意,透传期间宿主机无法使用该网卡,两者互相抢占,想长期使用,建议让虚拟机独占。
VirtualBox中的USB透传额外设置
VirtualBox需要先安装扩展包(Oracle VM VirtualBox Extension Pack),然后在虚拟机设置 → USB中启用USB 3.0控制器,再添加设备筛选器,如果没有安装扩展包,USB无线网卡不会被识别。
无线网卡芯片组兼容性:买卡前先确认
Linux对无线网卡的驱动支持差异较大。Intel芯片组的卡支持最完善,其次是部分Realtek和Atheros芯片,如果你打算给虚拟机配USB无线网卡,优先选芯片组为Intel AX系列或Realtek RTL8812AU的型号,这类卡在Linux下有开源或官方驱动,插入后dmesg | tail能看到固件加载信息。
驱动缺失时,系统日志会有类似“firmware failed”的报错,这时需要查阅芯片型号对应的驱动安装包,这一步对普通用户来说门槛较高,建议直接换一个Linux原生支持的网卡。
Q&A:关于虚拟机Linux连WiFi的常见疑问
虚拟机Linux里能直接ping通宿主机WiFi下其他设备吗?
可以,前提是虚拟机网络模式切换为桥接模式,并且Linux的防火墙规则允许ICMP协议,默认情况下,桥接模式的虚拟机和其他设备在同一广播域,互相ping通,NAT模式下无法实现,因为虚拟机位于虚拟子网中,外界访问不到。
为什么虚拟机Linux搜索不到5G频段WiFi?
多数Linux无线网卡默认同时扫描2.4G和5G频段,但部分USB无线网卡驱动对5G频段支持不完善,或者宿主机无线网卡在桥接模式下未启用5G信道,可以在虚拟机里禁用网络管理器的“自动选择频段”选项,手动把国家代码设置为CN,因为部分网卡出厂默认的可用信道限制会导致5G频段扫描不到。
重新安装Linux后WiFi配置丢失怎么办?
NetworkManager的配置保存在/etc/NetworkManager/system-connections目录下,重装系统前备份这个目录,恢复后拷贝回去,再执行nmcli connection reload即可,如果用netplan,备份/etc/netplan下的yaml文件更直接。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/759287.html





