You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在MacOS通过Multipass创建的Ubuntu虚拟机内无法联网怎么办?

Multipass Ubuntu虚拟机无网络连接问题的解决办法

问题现象

在MacOS上通过Multipass创建Ubuntu虚拟机后,安装snap应用失败,提示无法连接snap商店,系统日志及curl测试均显示网络连接超时:

安装命令及错误:

ubuntu@microk8s-vm2:~$ sudo snap install microk8s --classic
error: unable to contact snap store

系统日志错误详情:

Aug 23 13:26:42 microk8s-vm2 snapd[698]: taskrunner.go:271: [change 4 "Request device serial" task] failed: 
cannot retrieve request-id for making a request for a serial: 
Post https://api.snapcraft.io/api/v1/snaps/auth/request-id: net/http: 
request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

curl测试结果:

ubuntu@microk8s-vm2:/var/log$ curl google.com
curl: (28) Failed to connect to google.com port 80: Connection timed out

解决步骤

1. 切换Multipass虚拟机网络为桥接模式

Multipass默认NAT模式可能存在网络限制,切换到桥接模式可直接使用Mac的网络环境:

  • 先停止目标虚拟机:
    multipass stop microk8s-vm2
    
  • 查看Mac可用的网络接口(比如en0是Wi-Fi接口):
    multipass networks
    
  • 重新启动虚拟机并指定桥接网络:
    multipass start microk8s-vm2 --network en0
    

2. 修正虚拟机内DNS配置

DNS解析失败是常见网络问题,手动设置公共DNS:

  • 进入虚拟机shell:
    multipass shell microk8s-vm2
    
  • 临时修改DNS(重启后失效):
    echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
    
  • 永久修改DNS:
    编辑/etc/systemd/resolved.conf文件,取消DNS项注释并设置为公共DNS:
    DNS=8.8.8.8 114.114.114.114
    
    重启systemd-resolved服务:
    sudo systemctl restart systemd-resolved
    

3. 检查并重启虚拟机网络服务

如果虚拟机未获取到有效IP,重启网络服务:

sudo systemctl restart systemd-networkd

用ip addr命令确认网卡已分配IP地址,若未分配,可手动设置与Mac同网段的静态IP(需根据Mac网络参数调整):

sudo ip addr add 192.168.1.101/24 dev eth0
sudo ip route add default via 192.168.1.1 dev eth0

4. 检查Mac防火墙设置

Mac防火墙可能阻止Multipass的网络请求:

  • 打开「系统设置」→「网络」→「防火墙」,确认未阻止Multipass相关进程
  • 临时关闭防火墙测试(测试后建议重新开启):
    sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
    

5. 重置Multipass服务

若以上方法无效,重置Multipass的网络服务:

  • 停止所有虚拟机:
    multipass stop --all
    
  • 卸载并重新加载Multipass守护进程:
    sudo launchctl unload /Library/LaunchDaemons/com.canonical.multipassd.plist
    sudo launchctl load /Library/LaunchDaemons/com.canonical.multipassd.plist
    
  • 重新启动虚拟机:
    multipass start microk8s-vm2
    

内容的提问来源于stack exchange,提问作者coding99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 16:06:25