VMware虚拟机走主机代理

说明

很多时候我们在主机上完成了代理的配置,为了我们在虚拟机上能够方便的进行研究,我们想让虚拟机也走代理。
原理大概是让虚拟机和主机处于同一个局域网中,将虚拟机中的流量转发到主机上,这时主机的代理软
件监听到局域网内的请求,就会把流量再转发到代理服务器中,实现科学地上网。(解释的可能不严谨
为了这一目标,我们需要在主机和虚拟机上进行一系列的配置,作者虚拟机中的系统是ubuntu,主机中的系统是win10。

ubuntu设置

首先我们要配置好虚拟机中的代理,让虚拟机把流量转发出来。在ubuntu的网络设置中可以打开下面的界面。
VMware虚拟机走主机代理

  1. 这里的ip地址填的是局域网地址,在windows的cmd下使用ipconfig获得,如下图所示
    VMware虚拟机走主机代理

  2. 端口号根据使用代理软件的不同而不同,某飞机默认为1080,某新兴代理软件默认为10808,这个可以在代理软件中找到,注意不是代理服务器的端口,而是本地监听端口

  3. 注意只填最后一项socks host,不要填前面的https代理。这个要看代理软件本地监听端口使用的协议是什么,我了解的几个代理软件使用的协议都是socks,大家自己查找一下。

Windows设置

  1. 在代理软件中打开允许来自局域网的连接,这样代理软件才会去监听本地端口的流量请求。
  2. 在VMware中将网络设置为桥接模式,如下图:
    VMware虚拟机走主机代理

如果不出意外的话到这里就可以使用浏览器google了。

虚拟机终端走代理

但是我们在终端运行的命令是不会通过我们刚刚配置好的代理的,ubuntu终端默认不支持socks协议,如果想让终端命令也走代理(加快git clone速度,进行rosdep init等),我们需要使用到proxychains工具,这里作者并没有遇到什么坑,在网络上随便找了一个教程,查*解决了一个报错就可以正常使用了,所以就不记录了(其实是自己忘了)。