说明

很多时候我们在主机上完成了代理的配置,为了我们在虚拟机上能够方便的进行研究,我们想让虚拟机也走代理。

原理大概是让虚拟机和主机处于同一个局域网中,将虚拟机中的流量转发到主机上,这时主机的代理软件监听到局域网内的请求,就会把流量再转发到代理服务器中,实现科学地上网。(解释的可能不严谨

为了这一目标,我们需要在主机和虚拟机上进行一系列的配置,作者虚拟机中的系统是ubuntu,主机中的系统是win10。

ubuntu设置

首先我们要配置好虚拟机中的代理,让虚拟机把流量转发出来。在ubuntu的网络设置中可以打开下面的界面。
在这里插入图片描述

  1. 这里的ip地址填的是局域网地址,在windows的cmd下使用ipconfig获得,如下图所示
    在这里插入图片描述

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

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

Windows设置

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

如果不出意外的话到这里就可以使用浏览器google了。(2020/9/12更新:在一些特殊的网络环境下,也可能需要选择NAT模式,比如需要认证的校园网。不管选择什么模式,我们最终只要保证两点:1.不开启代理的情况下,虚拟机可以上网。2.虚拟机和主机位于同一个局域网内。)

虚拟机终端走代理

但是我们在终端运行的命令是不会通过我们刚刚配置好的代理的,ubuntu终端默认不支持socks协议,如果想让终端命令也走代理(加快git clone速度,进行rosdep init等),我们需要使用到proxychains工具。

首先输入sudo apt-get install proxychains安装proxychains工具,然后我们需要对/etc/proxychains.conf进行修改,将自己的代理ip地址和端口添加到ProxyList下。例如socks5 192.xxx.xxx.xxx 10808

最后需要使用find /usr/lib/ -name libproxychains.so.3 -print命令输出路径,再将/usr/bin/proxychains下的export LD_PRELOAD=libproxychains.so.3改为export LD_PRELOAD=刚刚获得的路径我们就可以愉快地使用proxychains工具了。想要走代理时只需要在命令前加上proxychains即可。

 

 

via。https://blog.csdn.net/weixin_45467056/article/details/105956782

最后修改:2021 年 07 月 04 日 12 : 34 AM