目录
🌼前言
🌼解释
🚩操作
1)VMware -- 虚拟网络编辑器
2)VMware -- 网络适配器
3)主机 IP 地址
4)v2rayN 代理端口
5)VMware -- 网络代理(Network proxy)
🎂结果
🌼拓展
🌼前言
起因
刚做完 TinyWebServer 这个项目,在 VMware-Ubuntu 下了 vscode 重写一次源码接口,写完跑通后,打算上传到 Github,于是有了这篇文章
版本
Windows:Windows 10 家庭中文版,64 位操作系统, 基于 x64 的处理器
VMware:VMware® Workstation 17 Pro,17.0.0 build-20800274
Ubuntu:Ubuntu 16.04.7 LTS
v2rayN:v2rayN - V6.23
🌼解释
网络地址转换
1)NAT 即 网络地址转换,可以将私有网络的 IP 地址映射到公有网络的 IP 地址上,以实现多个设备共享同一个公共 IP 地址来访问互联网。
2)而 VMware 共享本地代理这个过程,就用到了 NAT
3)首先,VMware-Ubuntu是一个虚拟机,在私有网络运行。主机通过 NAT 将虚拟机的 IP 地址映射到自己的公共 IP 上,再通过 V2rayN 访问其他网站
4)当 Ubuntu 通过虚拟网络发出请求时,它的请求会被 NAT 转换成主机的公共 IP,并通过主机的 V2rayN 转发到互联网上。
5)这样,Ubuntu 就能借助主机的代理访问其他网站,而外部网络只能看到主机的 IP,并不知道具体是哪个虚拟机在通信。
VMware
路由器是连接不同设备的桥梁(硬件),而 VMware 具有 “虚拟网络” 的功能,我们可以借助这个功能,虚拟出一个 “路由器” ,只需将主机和虚拟机连接在同一个 “路由器” 下,就可以实现双向通信,这就是虚拟机可以使用主机代理的原因
🚩操作
1)VMware -- 虚拟网络编辑器
首先,默认你的虚拟机是配置过的,选择 VMnet8 下面 3 个框勾选上
我们可以将这个 NAT 类型的虚拟网,看成一个虚拟的路由器,于是只需要同时将主机和虚拟机连接在这个“路由器”下,就可以实现双向通信了
(“将主机虚拟适配器连接到此网络”✔ -- 主机就能连接到这个“路由器”)
2)VMware -- 网络适配器
在虚拟机运行的时候,这个地方,右键 -- 设置 -- 网络适配器,点击“自定义”,修改为
VMnet8(NAT模式),然后确认
到此为止,主机和虚拟机,已经连接在同一个 “虚拟路由器” 下,接下来,只需要知道主机在该 “虚拟路由器” 下的 IP 地址和代理端口,即可完成代理的配置。
3)主机 IP 地址
3,4步为第 5 步 网络代理做准备
Ctrl + Alt + Del 打开任务管理器 -- 性能,找到VMnet8,这个 IPv4 地址就是主机在 “虚拟路由器” 下的 IP 地址
4)v2rayN 代理端口
设置 -- 参数设置 -- 允许来自局域网连接
底部看到的,局域网对应的协议(socks/http)和端口号(10808/10809),
就是主机在该 “虚拟路由器” 下的代理端口
5)VMware -- 网络代理(Network proxy)
打开 Ubuntu,找到设置
找到网络
点击网络代理(Network proxy),Method 改为手动(Manual),
输入 3,4 步的 IP 和 端口完成配置
🎂结果
或
此时主机 v2rayN 出现了来自虚拟机的访问记录,配置成功
🌼拓展
1)
Ubuntu 设置中的代理设置,其本质是添加环境变量 http_proxy,https_proxy,ALL_PROXY 等。
只有能够主动检测并读取这些环境变量的软件,才能自动使用代理,比如 git 的 http 协议模式,wget,curl,pip 等。
某些软件包的代理可能需要额外进行手动配置,比如 git 的 ssh 模式和 git 协议模式
虚拟机 “网络适配器” 的 NAT 模式,默认也是指向 VMnet8 的,不过为了清晰起见,上面还是使用 “自定义” 指向 VMnet8
2)
其实不单止 Ubuntu 里上传项目到 Github,需要虚拟机共享主机代理
只要是需要 Linux 环境的情况,都会用到
比如,有些程序 Windows 跑不了,只能在 mac 或 Linux 跑,那么就需要在 VMware 上安装 Ubuntu
或者,有些项目,Windows 下无法 git clone
或者有些文件命名不被 Windows 支持
或者层级嵌套太深.....
3)
那么什么是 “代理” 呢,它是中转站,用来中转你上网的数据流量。
通常包含 2 部分:代理软件 && 代理服务器
步骤:
- 浏览器发送数据到软件
- 软件把你的数据发送到服务器
- 服务器发送数据到目标网站
4)
什么是“监听端口”呢
代理软件要正常工作,需要开启一个“监听端口”。
浏览器通过这个端口和代理软件建立连接。
只有建立了连接,浏览器才能把数据发送到代理软件上。
端口是一个数字,1 ~ 65535