VMware虚拟机共享主机v2rayN

目录

🌼前言

🌼解释

🚩操作

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_proxyhttps_proxyALL_PROXY 等。

只有能够主动检测并读取这些环境变量的软件,才能自动使用代理,比如 git 的 http 协议模式,wgetcurlpip 等。

某些软件包的代理可能需要额外进行手动配置,比如 git 的 ssh 模式和 git 协议模式

虚拟机 “网络适配器” 的 NAT 模式,默认也是指向 VMnet8 的,不过为了清晰起见,上面还是使用 “自定义” 指向 VMnet8

2)

其实不单止 Ubuntu 里上传项目到 Github,需要虚拟机共享主机代理

只要是需要 Linux 环境的情况,都会用到

比如,有些程序 Windows 跑不了,只能在 mac 或 Linux 跑,那么就需要在 VMware 上安装 Ubuntu

或者,有些项目,Windows 下无法 git clone

或者有些文件命名不被 Windows 支持

或者层级嵌套太深.....

3)

那么什么是 “代理” 呢,它是中转站,用来中转你上网的数据流量。

通常包含 2 部分:代理软件 && 代理服务器

步骤:

  • 浏览器发送数据到软件
  • 软件把你的数据发送到服务器
  • 服务器发送数据到目标网站

4)

什么是“监听端口”呢

代理软件要正常工作,需要开启一个“监听端口”。

浏览器通过这个端口和代理软件建立连接。

只有建立了连接,浏览器才能把数据发送到代理软件上。

端口是一个数字,1 ~ 65535

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/783353.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

红黑树介绍及插入操作的实现

🎉个人名片: 🐼作者简介:一名乐于分享在学习道路上收获的大二在校生 🙈个人主页🎉:GOTXX 🐼个人WeChat:ILXOXVJE 🐼本文由GOTXX原创,首发CSDN&…

轻松集成所有大模型——一站式大模型应用开发框架Promptulate

💖 作者简介:大家好,我是Zeeland,大模型创业、LangChain Top Contributor、算法工程师、Promptulate founder、Python开发者。📝 CSDN主页:Zeeland🔥📣 我的博客:Zeeland…

windows平台虚拟机安装

windows平台虚拟机安装 1. 安装VMwareWorkstationPro 1.1 软件下载 官网下载 官网 百度网盘下载 版本 VMwareWorkstationPro16 链接:https://pan.baidu.com/s/1LidMxoM9e4a4CANixyRoyg?pwd1157 提取码:1157 1.2 软件安装 软件安装注意事项 软件…

代码学习第32天---动态规划

随想录日记part32 t i m e : time: time: 2024.03.30 主要内容:今天开始要学习动态规划的相关知识了,今天的内容主要涉及两个方面: 不同路径 ; 不同路径 II。 62.不同路径 63. 不同路径 II 动态…

接口和抽象类的区别【大白话Java面试题】

接口和抽象类的区别 大白话回答 1、接口是行为的抽象,是一种行为的规范,接口是like a 的关系;抽象是对类的抽象,是一种模板设计,抽象类是is a 的关系。 2、接口没有构造方法,而抽象类有构造方法&#xff0…

爬虫框架Scrapy从创建到使用

scrapy框架安装命令 1.需要安装python 链接: link 2.scrapy安装命令 python -m pip install Scrapy3. 创建爬虫项目 scrapy startproject 项目名称4.创建爬虫文件 scrapy genspider 爬虫名 域名5.爬虫运行 scrapy crawl 爬虫名scrapy 项目目录介绍 PaC #项目文件名称P…

Canvas实现圆点动画

示例效果图&#xff1a; 话不多说直接上代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><t…

Unity类银河恶魔城学习记录11-10 p112 Items drop源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili ItemObject_Trigger.cs using System.Collections; using System.Collecti…

P28—P31:变量

P28-变量的定义 什么是变量&#xff1f; 从本质上来说&#xff0c;变量就是一块内存空间&#xff0c;而这块内存空间有数据类型、名字、字面值。变量包含三部分&#xff1a;数据类型、名字、字面值&#xff08;数据&#xff09;变量是内存中存储的基本单元。 数据类型的作用&a…

Linux 查看磁盘信息:df与du命令详解

一、df 1.简介 df 是 disk free的缩写&#xff0c;从UNIX和类UNIX操作系统的早期开始&#xff0c;它就是UNIX和类UNIX操作系统的一部分。它被设计为一种工具&#xff0c;用于监视系统上已使用和可用的磁盘空间数量。 df 命令主要用于需要检查文件系统上已使用和可用的磁盘空…

第十三届蓝桥杯JavaA组省赛真题 - GCD

解题思路&#xff1a; 找规律 最大的最小公因数就是两数的差值 5 7 gcd2 1 3 gcd2 1 4 gcd3 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scan new Scanner(System.in);long a scan.nextLong();long b scan.ne…

查找--二分查找(Binary Search)

二分查找属于静态查找表&#xff0c;当以有序表表示静态查找表时&#xff0c;查找函数可用折半查找来实现。 查找过程&#xff1a;先确定待查记录所在的范围&#xff08;区间&#xff09;&#xff0c;然后逐步缩小范围直到找到或找不到该记录为止。 以处于区间中间位置记录的…

每日一题 --- 替换数字[卡码][Go]

替换数字 题目&#xff1a;54. 替换数字&#xff08;第八期模拟笔试&#xff09; (kamacoder.com) 题目描述 给定一个字符串 s&#xff0c;它包含小写字母和数字字符&#xff0c;请编写一个函数&#xff0c;将字符串中的字母字符保持不变&#xff0c;而将每个数字字符替换为…

Linux appimage如何正确打开

在之前的文章中&#xff0c;提到使用appimage软件非常方便。 但是首次使用会遇到这样的问题&#xff1a; 1. 双击打不开 2. 在终端打开提示&#xff1a; /home/roy/software/appimage/Obsidian-1.5.11.AppImage dlopen(): error loading libfuse.so.2 AppImages require …

【Pandas】(5)eval和query

使用 eval() 进行高效计算 eval() 函数在 Pandas 中是一种高效率的字符串表达式求值器,允许对 DataFrame 进行快速计算。这个功能基于 Numexpr 库,能够加速某些特定类型的操作,尤其是在处理大型 DataFrame 时。 基本使用 eval() 允许你使用字符串表达式来执行算术运算、比…

Python下载bing每日壁纸并实现win11 壁纸自动切换

前言: 爬虫哪家强,当然是python 我是属于啥语言都用,都懂点,不精通,实际工作中能能够顶上就可以。去年写的抓取bing每日的壁纸&#xff0c;保存到本地&#xff0c;并上传到阿里云oss&#xff0c;如果只是本地壁纸切换&#xff0c;存下来就行&#xff0c;一直想做个壁纸站点&…

内存可见性

内存可见性 一:内存可见性1.2: 二:解决内存可见性问题2.1 volatile关键字2.2:synchronized关键字解决内存可见性问题 一:内存可见性 public class Demo1 {public static int count 0;public static void main(String[] args) throws InterruptedException {Thread t1new Thre…

vuees6新语法

vue的学习网站&#xff1a; https://www.runoob.com/vue2/vue-tutorial.html1.Vue的介绍 学习目标 说出什么是Vue能够说出Vue的好处能够说出Vue的特点 内容讲解 【1】Vue介绍 1.vue属于一个前端框架&#xff0c;底层使用原生js编写的。主要用来进行前端和后台服务器之间的…

CubeIDE 下如何将版本号和日期关联。

1. 使用__DATE__ 和__TIME__获取编译日期和时间。 2. 将__DATE__ 和__TIME__转换成UINT 3. 将转换后的数赋值给版本号。 4. 设置工程保证每次都会重新编译对应文件。 对应函数如下&#xff1a; uint8_t VER_MAIN; uint8_t VER_SUB; uint8_t VER_MIN; #include <stdlib.…

我为什么愿意当韭菜

这几年&#xff0c;为了提升自己&#xff0c;我给无数的我认为优秀的人和课付过费。但我从来不认为自己有被割过韭菜。 如果非要说是韭菜&#xff0c;那我认为这个社会每个人都是韭菜&#xff0c;就看是甘愿被割&#xff0c;还是不甘愿。没办法&#xff0c;只有被割才能获得自己…