Featured image of post 『Blog』VMware 虚拟机流量代理

『Blog』VMware 虚拟机流量代理

介绍如何在 Windows 上接管 Ubuntu 20.04 LTS 虚拟机的全局流量

前言

本系列博客以 VMware Workstation 16 pro 为例,分享在 Windows11 上启动 Ubuntu 20.04 LTS 虚拟机进行 Python3 项目开发的最佳实践。本章节内容涉及网络连接中较为关键的环节 —— 流量代理。

推荐阅读:

『Blog』Python 应用开发最佳实践@环境搭建篇

注意事项

  1. 本文首发于 2022-05,如果你是若干年后到访的读者,请注意甄别文章中可能过时的内容,如有其他问题可在评论区提出;
  2. 本文不面向零基础的小白读者,不会涉及软件下载安装等细枝末节的内容,不再赘述相关解决方案中涉及到的主流软件的使用细节。

虚拟机设置

在 VMware 「虚拟机设置」中修改「网络适配器(网络连接)」,选择「桥接模式」但不复制物理网络连接状态。这是接管虚拟机代理流量最简单的方式,后文会详细介绍一些基于桥接模式的主流的流量代理解决方案。

局域网代理方案

v2rayN

介绍使用 v2rayN 接管虚拟机全局流量的方法。操作前请确保虚拟机网络已被设为「桥接模式」。

注意:使用的演示版本为 v5.16;在这个版本中,v2rayN 区分了本地代理以及局域网代理所用的监听的端口。

  1. 启动主机系统代理

    在 v2rayN 中主机上开启「自动配置系统代理」,用你喜欢的方式确认系统代理的运行状态。

  2. 启动局域网代理

    在 v2rayN 中依次点击「设置」「参数设置」在「Core:基础设置」中开启 允许来自局域网的连接

  3. 查看无线局域网适配器 WLAN

    在主机命令行窗口输入 ipconfig,找到其中的无线局域网适配器 WLAN 的 IPv4 地址。如果你是有线连接上网,寻找「以太网适配器」的 IPv4 地址即可(可能会打印很多选项,找有默认网关的那一条)。

image-20220507122059354
  1. 查看 v2rayN 的局域网代理端口

    通常在软件视图的最下方的边框处可见,找到 HTTP 以及 SOCKS 的局域网代理端口。若你使用的是更早的版本,默认情况下的代理端口是 http:10809 socks:10808,而在 v5.16 或更高版本中,软件区分了系统代理和局域网代理,此时的局域网代理端口默认是 http:10811 socks:10810,如下图所示。

image-20220507120921780
  1. 配置虚拟机网络代理

    打开 Ubuntu 的网络设置,将「网络代理」切换为手动模式,将我们刚才搜集到的(http 以及 socks)路由参数填入即可。下图为参考的填写格式,这与你的网络情况一定不一样,仅供参考。

    image-20220507122654416
  2. 检查虚拟机网络连接

    查看能否正常访问Youtube。此外,你还可以 显示查询自己的IP地址 (ip111.cn)

    使用系统自带的 Firefox 浏览器访问 Youtube 的结果如下图所示:

image-20220507123156186

Clash for Windows

介绍使用 Clash for Windows 接管虚拟机全局流量的方法,其他「类 Clash」产品均可举一反三。操作前请确保虚拟机网络已被设为「桥接模式」。

注意:以下使用的演示版本为 Clash for Windows v0.19.17Clash Core 2022.04.17 Premium(10538),所有设置均保持“出厂状态” 。

  1. 启动主机系统代理

    在 Clash for Windows 中启动「System Proxy」,用你喜欢的方式确认系统代理的运行状态。

  2. 启动局域网代理

    在 Clash for Windows 中启动「Allow LAN」,并将鼠标移动到「Allow LAN」的位置上,悬停,可以看到窗口弹出了一则提示信息,如下图所示。你需要记下这个 WLAN IPv4 以及 Port

image-20220507231335305
  1. 配置虚拟机网络代理

    打开 Ubuntu 的网络设置,将「网络代理」切换为手动模式,将我们刚才搜集到的路由参数填入即可。下图为参考的填写格式,仅供参考。

image-20220507233025258
  1. 检查虚拟机网络连接

    查看能否正常访问一些热门站点。此外,你还可以 显示查询自己的IP地址 (ip111.cn)

    使用 Firefox 访问 Google Scholar 检索关键词 Neurocompositional computing 的结果如下图所示:

    image-20220507233450859

错误排查

浏览器使用系统代理

如果上文所述的局域网代理方案无法达到预期,你可能需要进一步调整 Firefox 浏览器代理。

打开浏览器的「Settings」并依次访问「General」「Network Settings」。在弹出的「Connection Settings」中将代理选项切换至「use system proxy settings」也即使用系统代理,点击「OK」保存配置。新建标签页检查网络连接。

(当然,如果你是用的是其他浏览器产品,你不应该在 Firefox 里面配置浏览器代理……

image-20220507124058496

虚拟机网络代理设置

若你在调整 Firefox 浏览器代理为「系统代理」后仍无法正常访问外网,很有可能是你的 IPv4 地址或局域网代理端口填写错误,也有可能是你的软件没有开启「允许局域网连接」的选项,控制变量逐一排查即可。

局域网动态 IPv4

如果你出现「昨天都可以上网今天怎么就不行了」的情况,请检查你的 WLAN IPv4 是否有变化。

通常情况下国内家用终端物联网设备的局域网 IPv4 地址 是动态分发的,如果你的物联网设备(如笔记本)从之前的 WIFI 热点(如卧室)中断出重连到其他的 WIFI 热点下(如星巴克),局域网 IPv4 地址 很可能发生变化。此时按照流程重新检查一下变更后的地址,手动修改虚拟机的网络代理既可。

You will to enjoy grander sight / By climing to a greater height.