vmware虚拟机(ubuntu)通过主机代理实现翻墙(shadowsocks)在中配置宿主机SSR连接外网和局域网

主机翻墙共享给虚拟机

下面简单记载以免备忘

环境说明:
主机win10 + 虚拟机ubunut16.04 + 主机shadowsocks

win10 主机相关操作设置
1: 按下 Win + R 快捷键,输入 cmd ,然后在下令行中输入 ipconfig ,回车,找出本机在局域网中的 IP 地点(此处为无线网):

cmd.png
2: 设置 shadowsocks 目标是可以让虚拟机或其他局域网内装备进行链接本主机

如下图

12319355-0a6f014534e93d9c.png

大概根据差别的shadowsocks 会有差别的操作, 我的设置如下

虚拟机Ubunut设置如下:
1: 桌面右上角选择 Settings --> System Settings --> Network --> Network Proxy :在 Method 一栏中我们选中 Manual ,表现我们自己进行手动设置。然后在下面天上我们本机的 IP 地点和端口号( Shadowsocks 为 1080 ),保存即可。

12319355-62cb85349d288425.png

2:设置Ubuntu网络连接方法

12319355-d8bc86abcd4ddc3f.png 3: 设置browser 12319355-3064de14a19179e4.png 4:正常来说browser已经可以翻墙 12319355-f7b206aedeb49464.png

1. 条件描述

主机是Windows10 1909,使用以太网接口上网,代理软件是Shadowsocks要么ShadowsocksR,ShadowsocksR用得最多。

虚拟机(使用VMware® Workstation 15 Pro 15.1.0 build-13591040)为Ubuntu 16.04

需求

  • 在虚拟机中使用browser、git操作等tcp/udp可以或许全部通过宿主机的代理软件( 绕过当地网络监管
  • 在虚拟机中调试程序时可以或许访问和宿主机同局域网ip的服务器

做法

实在很easy,只要能让虚拟机的网络请求全部通过宿主机的代理,并在代理中对局域网ip选择直接连接即可

2. 详细设置

2020.10.15:设置中有点小问题,请看一下 第三节-后续

在VMware中,右键虚拟机选择“设置”要么点击“编辑虚拟机设置”,在弹框中选择网络适配器->网络连接,选择NAT模式要么在自定义中选择“VMnet8(NAT)模式”,随后在宿主机的“网络和Internet”中选择“变动适配器选项”,右键VMware Network Adapter VMnet8选择属性,双击项目中的ipv4,作如下设定:

假如对底子的网络知识比较理解的话,ip地点可以填写别的,那么在下列其他设置时也要作相应的变革,由于比较简单就不多记载了。

随后在VMware中打开虚拟网络编辑器进行设置:

固然,使用当地DHCP服务将ip分派给虚拟机那个选项可以不要,由于设置了静态地点。

随后进入虚拟机,打开Network,编辑Wired的options:

然后将Network proxy中手动设置全局代理:

这里的10899的端口与宿主机上ssr的设置要一样:

这样的话,在ubuntu中既可以随意访问谷歌,又能访问宿主机地点局域网的服务器。

假如不开启ubuntu的全局代理前,可以ping局域网服务器和没被墙的网站,开启之后就ping不了了,对vmnet8的网卡抓了下包简单看了看,我推测是由于ssr不支持到icmp这一层,有时机换vpn试试。

3. 后续

2020.9.29

偶然(频率较高)打开虚拟机后发现网络不通,类似的错误有

  • fatal: unable to access 'https://github.com/ohmyzsh/ohmyzsh.git/': Failed to connect to 192.168.52.1 port 10899: Connection refused
  • The proxy server is refusing connections error

打开宿主机上的ssr日记发现没看到请求到代理,于是在宿主机打开Wireshark对VMnet8网卡抓包,一打开捕捉虚拟机内browser立刻就能访问网络了

挺诡异的,临时没太多时间排查,先迁就

2020.10.15

在VMware论坛上提问,得到了一些提示和答复,可见: A weird phenomenon about use VMnet8(NAT) with static IP

大概缘故的话,推测是由于Wireshark把网卡改变成了稠浊模式。

将虚拟网络编辑器和虚拟机中的网关修改成 192.168.52.1且同等(也就是好比都设成192.168.52.2),基本就啥问题都没有了,既能ping内外网,也能通过宿主机的ssr上Google。

2020.12.7

不知道设置上另有哪些缺陷,发现就算根据10月15日更新的那样设置,也会出现重启虚拟机之后无法通过SSR访问的问题,暂时的解决方法依然是:打开宿主机上的Wireshark,对VMnet8网卡进行抓包,使其变成稠浊模式,这样虚拟机内的网络就能访问了。

2020.12.22

恰好由于其他问题,把VM的虚拟网络适配器都删掉了,通过控制面板修复了之后,应该都恢复了初始状态。子网IP是 192.168.10.0,网关ip是192.168.10.2,网络适配器的ip临时是192.168.10.1,故而在虚拟机中将代理地点设为192.168.10.1,而网关为192.168.10.2。现在正常,继续保持察看。

说明

许多时间我们在主机上完成了代理的设置,为了我们在虚拟机上可以或许方便的进行研究,我们想让虚拟机也走代理。

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

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

ubuntu设置

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

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

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

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

Windows设置

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

假如不出意外的话到这里就可以使用browsergoogle了。(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 即可。

本文网址: https://www.4008140202.com/pp/202135185955_6688_2847301858/home

推荐阅读

tags

最新发布