周末清晨,我正躺在床上舒服的睡着懒觉,突然一阵电话铃声直接将我吵醒,一看,WTF,竟然是领导打来的:小张啊,公司项目有些紧急问题要处理,你赶紧远程协助下......
此时我心中一万头草泥马飘过,这连个周末都不能好好休息下吗??
在不同网络下远程电脑,最常用的方式就是使用向日葵或者teamviewer,这种方式通过远程操控公司电脑达到远程办公的目的,但是这种办公体验很不好,延时很大,要是遇到网络不好的情况,直接就给你卡成ppt,传个文件也非常的麻烦。
对于我这种程序员,远程办公无非就是要使用公司内网。要是随时随地可以接入公司内网,我们就可以直接使用自己家里的电脑连数据库,拉代码,跑项目了,这样岂不快哉。既然两台电脑已经都可以通过互联网进行通信了,就必定有途径可以直接在家访问到公司内部网络,下面我就教你如何在家接入公司局域网。
一、准备工具
1、Shadowsocks
你会好奇我竟然把翻墙工具搬到这了??是的你没看错,但我不是教你如何翻墙,而是通过类似的手段代理公司局域网
下载地址:https://github.com/shadowsocks/shadowsocks-windows/releases/download/4.4.0.0/Shadowsocks-4.4.0.185.zip
2、libQtShadowsocks:
Shadowsocks windows服务端
下载地址:
https://github.com/shadowsocks/libQtShadowsocks/releases/download/v2.0.2/shadowsocks-libqss-v2.0.2-win64.7z
3、sakurafrp
内网穿透、端口反向代理工具。此工具的好处在于可以免费提供公网ip,如果你有自己的云服务器,用xshell或putty等ssh工具做反向代理都可。
(需要注册账号)官网:https://www.natfrp.com/ 工具直接进官网下载
4、Proxifier
shadowsocks代理属于socks5代理,通俗的理解,socks5只是局部代理,使用Proxifier把shadowsocks代理转全局代理
下载地址:
https://www.proxifier.com/download/ProxifierSetup.exe
二、原理介绍
看图,有点复杂,懒得介绍了。
三、部署教程
电脑A:你在公司办公的电脑
电脑B:家里的电脑
1、电脑A安装libQtShadowsocks
解压shadowsocks-libqss-v2.0.2-win64.7z后,文件夹内创建配置文件config.json、启动脚本shadowsocks-server.bat
(1)编辑config.json
server_port为服务器端口,也是后续需要映射到公网的端口,可以自行设置,我这里设置成2222
{
"server":"0.0.0.0",
"server_port":2222,
"local_address":"127.0.0.1",
"local_port":1080,
"password":"123",
"timeout":600,
"method":"aes-256-gcm",
"http_proxy": false,
"auth": false
}
(2)编辑shadowsocks-server.bat
@echo off
shadowsocks-libqss.exe -c config.json -S
(3)启动服务
双击shadowsocks-server.bat,shadowsocks服务端启动完成
此时我们还需要将2222端口映射到公网,才可以远程访问,继续往下看
2、电脑A安装SakuraFrp 启动器
(1)注册账号
https://www.natfrp.com/ 到官网注册一个账号,可以创建5条免费隧道(不得不说非常的良心)
(2)创建隧道
选择tcp,输入刚才创建shadowsocks服务器端口
(3)下载 SakuraFrp 启动器
(4)启用隧道
安装后登录,可以看的你创建的隧道
点击按钮启动,此时,已经将电脑A的shadowsocks服务器端口:127.0.0.1:2222 映射为 cn-cd-dx-1.natfrp.cloud:48115
3、电脑B安装shadowsocks
现在回到我们本地的电脑,安装shadowsocks
(1)添加服务器
输入映射后的ip和端口,密码和加密方式对应libQtShadowsocks的配置config.json
4、电脑B安装Proxifier
建立Shadowsocks连接后,并不是所有应用层的请求都会走代理,我们通过Proxifier转成全局代理
(1)配置代理服务
(2)配置代理规则
创建一条代理规则,Target hosts输入你要代理的ip范围,比如我公司的局域网IP都是192.168.72开头的,所以我这里填192.168.72.*
将Default规则,改成Direct直连,因为我们只需要代理192.168.72.*这个ip的请求,其他的网络请求没必要也走公司的网络
至此,已经完成了代理远程的局域网到本地。