macOS 虚拟机代理设置:从网络模式到端口验证
简答:macOS 虚拟机代理设置的最短路径是:先让虚拟机使用共享或 NAT 网络,再确认宿主机代理允许局域网连接,最后在虚拟机的“系统设置→网络→当前网络→详细信息→代理”中填写宿主机在虚拟网络里的地址和代理端口。不要直接填写 127.0.0.1,因为虚拟机里的 127.0.0.1 通常指向虚拟机自身;设置后用端口连通性和网页请求分别验证。
定义:macOS 虚拟机代理设置,是让虚拟机内的 macOS 应用通过宿主机代理客户端或代理服务器访问网络的配置过程。
先试这一步:共享/NAT网络+宿主机地址+代理端口
如果宿主机 Mac 已经可以通过代理访问网络,但 macOS 虚拟机不能访问,优先按下面三步处理。这个方案适合网页、系统更新、开发工具等遵循 macOS 系统代理的应用;不代表所有应用都会自动使用代理。
- 确认虚拟机网络模式。Parallels 优先选择 Shared Networking,VMware Fusion 优先选择 NAT,UTM 优先选择 Shared Network。Host-Only 通常只用于宿主机与虚拟机互通,不能直接提供互联网访问;桥接模式则让虚拟机作为局域网中的独立设备。
- 在宿主机代理客户端中开启局域网访问。不同客户端的名称可能是“允许局域网连接”“Allow LAN”或等效选项。确认代理监听在可被虚拟机访问的地址,而不是只监听宿主机本机回环地址。
- 在虚拟机内填写宿主机地址和端口。打开“系统设置→网络→当前网络服务→详细信息→代理”,选择 HTTP、HTTPS 或 SOCKS 代理,填写宿主机在虚拟网络中的地址与端口,再保存。
macOS 官方说明显示,代理入口位于“系统设置→网络→网络服务→详细信息→代理”,可配置自动代理发现、PAC、HTTP、HTTPS 和 SOCKS 代理,并可设置绕过的主机与域名。Apple:Change proxy settings on Mac
| 现象 | 优先检查 | 成功信号 |
|---|---|---|
| 虚拟机完全不能上网 | 虚拟机网络适配器是否连接,是否误选 Host-Only | 虚拟机能打开普通网页或获得有效地址 |
| 宿主机能代理,虚拟机不能 | 代理是否允许局域网连接,地址是否仍填 127.0.0.1 | 虚拟机可连到代理端口 |
| 端口可连但网页打不开 | 代理类型、账号密码、DNS 或分流规则 | 浏览器和 curl 请求均能返回响应 |
三种虚拟化软件的网络模式怎么选
网络模式决定虚拟机能否访问宿主机、局域网和互联网,也决定你应该从哪里查宿主机地址。先不要同时修改代理、DNS 和 MTU;每次只改一个变量并记录原值。
| 软件 | 优先模式 | 适用说明 | 注意事项 |
|---|---|---|---|
| Parallels Desktop | Shared Networking | 虚拟机通过 Parallels 的虚拟路由和 DHCP 访问网络,适合一般上网与宿主机网络共享。 | Shared、Bridged、Host-Only 的入口和可用范围受软件版本及版本类型影响;切换位置通常在虚拟机运行时的 Devices→Network。 |
| VMware Fusion | NAT | 虚拟机通过宿主机地址访问外部网络,通常比桥接更少依赖局域网 DHCP。 | 桥接会让虚拟机作为局域网独立设备;如果当前网络限制额外设备或 MAC 地址,NAT 可能更容易排查。 |
| UTM | Shared Network | UTM 文档说明共享网络由宿主机操作系统转发,宿主机与客户机可互相看到,适合新建虚拟机。 | Host Only 不提供互联网访问;Bridged 属于高级模式,使用 Wi-Fi 时可能需要额外配置。 |
Parallels 官方将 Shared、Bridged 和 Host-Only 分开说明:Shared 会建立独立虚拟子网,Bridged 让虚拟机出现在与 Mac 相同的子网中,Host-Only 只保留虚拟网络内通信。Parallels:Network modes in Parallels Desktop for Mac
VMware Fusion 官方资料将 NAT、Bridged 和 Host-only 分别对应宿主机转发、物理局域网接入和隔离的私有网络。Broadcom:Understanding networking types in VMware Fusion
UTM 官方文档说明 Shared Network 会通过宿主机转发流量,Host Only 会阻断 WAN 流量,Bridged 则连接到指定的宿主机网络接口。UTM:Network settings for Apple virtualization
在 macOS 虚拟机中填写代理参数
1. 打开系统代理入口
- 启动 macOS 虚拟机并登录。
- 打开“系统设置”。
- 进入“网络”,选择当前正在使用的网络服务,例如 Wi-Fi 或有线网络。
- 点击“详细信息”,再打开“代理”。
2. 按代理类型填写
- HTTP 和 HTTPS:分别填写服务器地址和端口。若服务要求账号密码,再启用需要密码的选项。
- SOCKS:选择 SOCKS 代理,填写同一个宿主机地址和 SOCKS 端口;不要把 HTTP 端口与 SOCKS 端口混用。
- PAC:选择自动代理配置,填写 PAC 文件地址。只有在你确实拿到可访问的 PAC 地址时才使用,不要把普通订阅链接直接当作 PAC 地址。
- 绕过地址:局域网设备、虚拟机内部服务或公司内网域名可按需要加入绕过列表,但不要一开始就添加大量规则,否则不利于定位问题。
如果不知道宿主机在虚拟网络中的地址,不要凭经验填写固定网段。可在虚拟机内打开“终端”,先执行 route -n get default 查看默认路由,再执行 ifconfig 查看网卡和地址;结合 Parallels、VMware Fusion 或 UTM 的网络设置确认哪个地址代表宿主机。UTM 文档明确提供了 Host Address 等虚拟网络参数;不同软件和网络模式的地址可能不同。UTM:Network mode and host address
不要把 127.0.0.1 当作宿主机地址。在虚拟机内,它通常表示虚拟机自己。如果代理只监听宿主机回环地址,虚拟机即使填写了正确端口,也无法访问宿主机上的代理服务。
四层验证:先端口,再代理,再DNS
设置完成后,按下面顺序验证。每一步都有明确的停止条件,避免在端口尚未连通时反复修改 DNS。
- 确认宿主机正在监听。在宿主机代理客户端中查看当前监听地址和端口。若只监听 127.0.0.1,先开启局域网访问或调整监听范围;如果客户端没有该选项,则需要以该客户端文档为准。
- 从虚拟机测试端口。在 macOS 虚拟机终端运行
nc -vz 宿主机地址 代理端口。显示 succeeded 或类似成功结果,说明虚拟机到宿主机的 TCP 路径基本打通;若 connection refused,通常是端口没有监听或监听范围不对;若 timed out,优先检查网络模式、防火墙和虚拟机地址。 - 测试代理请求。HTTP 代理可使用
curl -x http://宿主机地址:端口 https://example.com;SOCKS5 可使用curl --proxy socks5h://宿主机地址:端口 https://example.com。命令中的域名仅用于测试连通性,若环境不允许访问该地址,应换成你有权访问的测试站点。 - 最后检查 DNS。如果端口能连、代理请求却提示域名解析失败,确认代理类型是否支持远程 DNS,并检查虚拟机的 DNS 设置。SOCKS5 测试时使用
socks5h可让域名解析交给代理端;这只是测试手段,不代表所有应用都会采用相同解析路径。
验证时建议记录:虚拟化软件、网络模式、虚拟机 IP、默认网关、代理类型、监听地址和端口。后续切换 NAT、桥接或共享网络时,只比较一个变量,便于回滚。
常见失败场景与最小风险排查
| 错误表现 | 原因方向 | 处理顺序 |
|---|---|---|
| 连接被拒绝 | 端口未监听、代理类型选错或宿主机只允许本机访问 | 先核对端口,再确认局域网访问开关,最后重新选择 HTTP/HTTPS 或 SOCKS。 |
| 连接超时 | Host-Only、桥接失败、防火墙或宿主机地址不在虚拟网段 | 先切回 Shared/NAT,再测试端口;不要先改 MTU。 |
| 浏览器能用,终端或开发工具不能用 | 应用没有读取 macOS 系统代理,或使用独立代理配置 | 检查该应用自己的代理设置和环境变量;不要把系统代理生效等同于所有应用生效。 |
| 只有部分网站打不开 | PAC、分流、DNS 或绕过列表造成路径不同 | 先临时减少绕过规则,再分别测试 IP、域名和代理请求。 |
| 宿主机代理正常,虚拟机网络全部异常 | 虚拟机网卡未连接或虚拟化软件网络服务异常 | 关闭虚拟机后检查网卡连接状态,切换一次 NAT/Shared 后重新启动;涉及重置网络配置前先备份并记录原设置。 |
VMware Fusion 官方排查建议先确认宿主机网络正常,再检查虚拟网络类型,并在 NAT 与 Bridged 之间切换比较结果;如果切换后只有一种模式工作,问题更可能位于网络环境或桥接条件,而不是代理参数本身。Broadcom:Troubleshooting networking and internet connection issues in VMware Fusion
一份可照做的回滚清单
- 记录当前网络服务名称、代理类型、地址、端口和绕过列表。
- 先关闭 macOS 虚拟机内的代理开关,确认普通网络是否恢复。
- 将虚拟机网络模式恢复为原来的 Shared 或 NAT,不要同时删除虚拟网卡。
- 如果仍无法联网,暂时移除代理地址和端口,重新测试虚拟机基础网络。
- 确认基础网络恢复后,再逐项加回代理类型、宿主机地址和端口。
如果你需要的是宿主机与虚拟机之间的稳定网络路径,优先选择文档明确支持宿主机互通的共享或 NAT 模式;如果需要让虚拟机作为局域网独立设备,再考虑桥接。具体版本的菜单名称、Apple Silicon 支持范围和网络接口名称,需以当前虚拟化软件页面为准。
常见问题
macOS 虚拟机代理为什么不能填 127.0.0.1?
因为虚拟机内的 127.0.0.1 通常指向虚拟机自身,不是宿主机。应根据 Parallels、VMware Fusion 或 UTM 的网络模式,填写虚拟网络中可访问宿主机的地址。
宿主机已经开了代理,macOS 虚拟机会自动使用吗?
不一定。某些共享或 NAT 网络模式可能共享宿主机的基础网络或 VPN 路径,但宿主机的 HTTP、HTTPS 或 SOCKS 代理通常仍需在虚拟机内单独配置;是否自动传递取决于虚拟化软件、代理客户端和网络模式。
应该在 macOS 虚拟机里选 HTTP 代理还是 SOCKS5?
以宿主机代理客户端实际提供的协议和端口为准。网页常见的是 HTTP/HTTPS,通用网络工具可能提供 SOCKS;协议与端口不匹配时,即使端口能连接,请求也可能失败。
代理端口测试成功,但浏览器仍然打不开怎么办?
先确认浏览器是否读取 macOS 系统代理,再检查代理类型、账号密码、PAC 和绕过列表。如果只有域名失败,继续检查 DNS;如果只有某些应用失败,则检查应用自己的代理设置。
Parallels、VMware Fusion 和 UTM 应该使用桥接模式吗?
一般不必。普通访问和宿主机代理传递可先用 Parallels Shared、VMware Fusion NAT 或 UTM Shared Network。只有在需要让虚拟机作为局域网独立设备时,才考虑桥接,并准备处理 DHCP、Wi-Fi 和局域网策略差异。
相关阅读
- 先掌握 macOS 系统代理的开启、验证与关闭
- 检查 macOS 网络扩展与相关权限
- 代理已连接但网页打不开时的分层排查
- 继续排查 DNS、MTU、丢包与线路问题
- 查看 macOS 客户端订阅导入与系统代理设置
参考资料
- Apple:Change proxy settings on Mac
- Parallels:Network modes in Parallels Desktop for Mac
- Broadcom:Understanding networking types in VMware Fusion
- Broadcom:Troubleshooting networking and internet connection issues in VMware Fusion
- UTM:Network settings for Apple virtualization
- UTM:Network mode and host address