首页 > 服务器运维 > Linux > 在挂着VPN的虚拟机搭建代理服务
2018
06-22

在挂着VPN的虚拟机搭建代理服务

背景

公司有台机器需要用VPN访问,资源包括ssh和web页面。在物理机上开VPN能够访问该内网资源,但会影响公网的访问效率和一些资源(毕竟通过VPN绕了一圈内网再回来)。很自然想到用虚拟机挂VPN,需要访问内网资源的时候到虚拟机上去解决。尽管我使用mac,触摸板划一下就能无缝切换虚拟机窗口,但多了个操作系统环境还是有些不方便。毕竟我想在同一个浏览器和终端软件上同时切换公网/内网的tab。

解决方案

  1. VPN还是挂在虚拟机上;
  2. 同时在虚拟机上安装一个网络代理软件,将常用的SOCK和HTTP端口开了就行(SOCK还是HTTP看自己需求);
  3. 但此时物理机是访问不了虚拟机端口的,我们需要在虚拟机软件上设置端口映射(一般虚拟机都支持吧),将物理机某个端口映射到虚拟机监听的SOCK或HTTP端口;
  4. 应用:物理机浏览器:安装一个SwitchyOmega插件,很方便得对某个域名走指定的情景规则(这个情景设置代理为刚刚映射的http/sock代理);ssh添加代理配置即可(下面具体步骤贴命令)

实际操作

以我的案例描述下具体操作,我的物理机是mac。

  1. 安装虚拟机(我安装的是parallels desktop。Windows下可安装VMware或VirtualBox)。然后在虚拟机安装一个操作系统(我安装的是win7)
  2. 下载了一个CCProxy(一款据说比较优秀的代理软件),将其安装在虚拟机。默认已经设置好了端口,可以不改动。在挂着VPN的虚拟机搭建代理服务 - 第1张  | foam
  3. 关掉win的防火墙,另外如果VPN软件有特殊限制的话,需要去掉。例如我使用的思科VPN软件在挂着VPN的虚拟机搭建代理服务 - 第2张  | foam
  4. 在虚拟机软件配置端口映射。如图(parallels desktop >> 偏好设置 >> 网络),我将本地的19888端口映射到了win7虚拟机的808端口(http),将本地的19889端口映射到了win7虚拟机的1080端口(SOCK5)在挂着VPN的虚拟机搭建代理服务 - 第3张  | foam
  5. 浏览器访问内网资源,使用SwitchyOmega。对内网资源配置规则用该情景模式。在挂着VPN的虚拟机搭建代理服务 - 第4张  | foam
  6. ssh登录内网机器,配置~/.ssh/config

    然后直接ssh username@xxxx.oa.com就可以了,是不是很方便。BTW:为了避免两边子网ip冲突,我用域名替换了内网的ip,这个需要在虚拟机那边的hosts文件设置下(Windows在C:\Windows\System32\drivers\etc\hosts更改)

最后

有疑问欢迎留言~

最后编辑:
作者:foam
foam
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。

3 加上 6 ?