在 Linux 开发环境中,我们经常面临下载依赖包慢(如 apt install, pip, git clone)的问题。与其在虚拟机里单独安装配置一个 Clash,不如直接复用宿主机(Windows/Mac)上已经配置好的代理环境。
这样做有两个巨大的优势:
- 省资源:虚拟机不需要运行额外的代理后台。
- 易维护:只需要维护宿主机的订阅和规则,虚拟机自动继承。
本文将手把手教你如何配置 VMware 中的 Ubuntu,使其通过宿主机的代理进行网络访问。
前置条件
- 宿主机:Windows 或 macOS,已安装并运行 Clash (Clash Verge / Clash for Windows)。
- 虚拟机:VMware Workstation,运行 Ubuntu。
- 网络模式:建议使用 NAT 模式(VMware 默认设置),这种方式网络拓扑最简单。
第一步:配置宿主机 Clash
我们需要开启 Clash 的局域网共享功能,允许虚拟机连接。
- 打开宿主机的 Clash 软件。
- 进入 设置 (Settings) 界面。
- 找到 Allow LAN (允许局域网连接),将其开关打开。
- 记录下 Port (端口号),通常为
7890(HTTP/Socks) 或7897。
第二步:获取宿主机 IP 地址
这是最关键的一步。在 NAT 模式下,虚拟机通过虚拟网卡与宿主机通信。
- 在 Windows 上按下
Win + R,输入cmd并回车。 - 在黑框中输入
ipconfig。 - 寻找 “以太网适配器 VMware Network Adapter VMnet8”(这是 NAT 模式专用的虚拟网卡)。
- 记录下它的 IPv4 地址(通常是
192.168.x.1,例如192.168.137.1)。
> 注意:请务必使用 VMnet8 的 IP,而不是你物理网卡(Wi-Fi)的 IP,这样连接最稳定,不受物理网络切换影响。
第三步:配置 Ubuntu 系统级代理(解决浏览器上网)
这一步可以让 Ubuntu 的图形界面应用(如 Firefox、Chrome)走代理。
- 打开 Ubuntu Settings (设置) -> Network (网络)。
- 点击 Network Proxy (网络代理) 右侧的齿轮图标。
- 选择 Manual (手动)。
- 在 HTTP、HTTPS、Socks 主机栏中,填入 第二步获取的宿主机 IP。
- 在端口栏中,填入 第一步记录的端口(如
7890)。 - 关闭窗口即可生效。此时打开浏览器访问 Google 应该已经通了。
第四步:配置终端代理(解决 curl/wget 下载慢)
图形界面的设置通常不会影响终端(Terminal)。如果你需要通过命令行下载文件,需要单独设置环境变量。
1. 临时生效(当前窗口)
在终端执行:
# 请将 IP 和端口替换为你实际的值export http_proxy="http://192.168.137.1:7890"export https_proxy="http://192.168.137.1:7890"
2. 永久生效
如果你希望每次打开终端自动生效,将上述命令写入配置文件:
# 将配置追加到 .bashrc 文件末尾echo 'export http_proxy="http://192.168.137.1:7890"' >> ~/.bashrcecho 'export https_proxy="http://192.168.137.1:7890"' >> ~/.bashrc# 使配置立即生效source ~/.bashrc
第五步:配置 apt 代理(解决 sudo apt install 慢)
这是一个常见的坑点:即使你配置了环境变量,使用 sudo 命令时,代理往往会失效(因为 root 用户不继承普通用户的环境变量)。我们需要专门为 apt 设置配置文件。
- 编辑 apt 配置文件:
sudo nano /etc/apt/apt.conf.d/proxy.conf
- 输入以下内容(注意末尾的分号):
Acquire::http::Proxy "http://192.168.137.1:7890/";Acquire::https::Proxy "http://192.168.137.1:7890/";
- 按
Ctrl + O保存,Enter确认,Ctrl + X退出。
现在尝试运行 sudo apt update,速度应该会飞快。
进阶:配置 Git 代理(解决 GitHub 代码拉取慢)
开发者最常用的 git clone 也需要单独配置:
# 设置 http 代理git config --global http.proxy http://192.168.137.1:7890# 设置 https 代理git config --global https.proxy http://192.168.137.1:7890
如果以后想取消 Git 代理:
git config --global --unset http.proxygit config --global --unset https.proxy
常见问题排查
Q: 配置后 Ubuntu 无法上网,Ping 不通宿主机 IP? A: 这通常是 Windows 防火墙的问题。
- 解决方法:打开 Windows Defender 防火墙设置,检查“入站规则”,确保没有阻止 VMware 相关的连接。或者为了测试,暂时关闭防火墙。
Q: 宿主机的 IP 变了怎么办?
A: VMnet8 的 IP 通常是固定的,但在某些网络重置后可能会变。如果发现突然连不上,请重新在 Windows 运行 ipconfig 确认 IP 地址。
