- Published on
把偷窥你电脑的公司VPN扔到虚拟机里
通过socks代理访问虚拟机里的vpn网络
场景
企业内网环境通常都需要使用vpn进行访问,要么使用像Cisco这样的公司提供的vpn软件,要么企业可能要求使用其自研的vpn程序。 但是企业自研的vpn程序有可能会在后台监听你的操作,扫描你的磁盘,如果只是单纯的公司办公电脑,也就罢了。但是也有很多喜欢使用个人电脑的朋友面对这个问题就很不舒服了。这种情况下可以考虑把VPN安装到电脑的虚拟机里,然后把虚拟机作为代理服务器使用。
另一种场景就是,如果因为一些场景的需要,需要一个保持长期在线的内网vpn。但是不可能把自己的办公电脑长期开着,这时候可以在云服务器或者自己家里的小型服务器里运行vpn。不过这个事情非常的不推荐,把公司内网vpn暴露在公网环境,可能引发很严重的公司网络安全问题。后果有可能很严重,安全问题不可忽视。
方法
思路
方法核心很简单,就是在自己的办公电脑里运行虚拟机操作系统,然后在虚拟机系统里安装socks代理服务,最后宿主机通过socks代理访问网络。socks代理可以选择使用glider,具体配置见下文。宿主机访问代理有两种办法,如果只是网页访问需求,使用Proxy SwitchyOmega浏览器扩展,如果需要代理系统网络,可以考虑安装Shadowsocks、ClashX、Trojan等知名代理软件。
安装虚拟机与公司VPN
本人使用的mac电脑,因此用的Parallels Desktop(以下简称PD) 这个app,mac上非常好用的虚拟机软件。然后把公司的vpn安装到虚拟机里,因为这个虚拟机单纯的用于网络代理,我们尽可能降低其性能消耗,所以我选择了运行Debian操作系统(前提是你需要安装的VPN软件支持这个操作系统),在PD里,点击新建虚拟机时可以直接下载Debian的操作系统,并且把系统的性能限制到了1核CPU和1GB内存。

在虚拟机里运行Glider代理
debian系统安装启动后,安装公司的VPN软件即可,此步骤不再详述。然后就是安装Socks代理软件了,这里我选择了Glider,相比其他的代理工具,使用非常简单。
glider的官方文档:glider - Github
从https://github.com/nadoo/glider/releases 地址下载glider的程序,笔者用apple m2芯片,所以选择的glider_0.16.3_linux_arm64这个安装包 解压后包内有:glider的二进制文件,config目录包含了一堆示例配置,systemd目录则是用于配置自启动的。
快速使用
# 在1080端口同时开启http和socks5代理
# -verbose 开启日志
glider -listen :1080 -verbose
配置系统自启动
#进入程序目录
cd glider_0.16.3_linux_arm64
# 将glider二进制执行文件复制到bin目录下
cp glider /usr/bin/
#将systemd目录下的service文件复制到系统的对应目录下,这个是linux的service服务使用的文件
cp systemd/glider@.service /etc/systemd/system/
#将配置文件
mkdir /etc/glider/
# 创建配置文件
touch /etc/glider/glider.conf
# 修改配置文件,具体配置见下文
sudo nano /etc/glider/glider.conf
# 将服务设置为自动启动
sudo systemctl enable glider@glider
# 启动服务
sudo systemctl start glider@glider
# 查看服务状态
sudo systemctl status glider@glider
# 查看1080端口情况
ss -tln|grep ":1080"
/etc/glider/glider.conf文件的内容
#是否打印日志,如果想打印就设置为True
verbose=False
# 监听的端口
listen=:1080
通过代理服务访问公司内网
这一步就看你的内网访问需求了,是只需要访问网页,还是有些app或者终端命令也需要走代理,如果只访问网页只需要安装代理浏览器插件即可,如果是需要代理系统网络,则需要使用代理软件了。
浏览器访问网页走代理
这是笔者使用的方法,我只希望当访问公司内网用到的几个特定网站时使用公司内网,其他的情况下依然走正常的网络。所以笔者使用了Proxy SwitchyOmega这个浏览器插件。 安装插件后,新建一个情景模式,配置socks代理


然后为了只让内网网页走代理,再创建一个自动切换代理的配置。保存配置后,点击插件图标,将代理代理模式切换到你创建的自动切换配置即可。


终端走代理
如果想要在命令行终端中使用代理,只需要运行以下命令即可
#配置代理
export https_proxy=http://10.0.0.8:1080 http_proxy=http://10.0.0.8:1080 all_proxy=socks5://10.0.0.8:1080
#执行对应的命令
#curl http://company.server.com/
系统网络代理
这里推荐几个代理软件:shadowsocks、clashx、Trojan。具体的使用方法本篇文章不再详述,如果大家有需要,我单独写一篇文章来讲。
