使用Chisel来突破公司代理服务器的封锁

环境很简单,内网的机器不能直接上外网,必须通过代理服务器。代理服务器设置了各种规则,封了外网的各种邮箱,等等。为了突破封锁,试验了各种方法,最终发现比较好的方法,记录如下。

首先尝试XXXAgent, XXXProxy

因为代理服务器可以访问Google,自然而然想到了这个,因为他们都是基于GAE的。但是部分网站的证书总是有些问题。当然大部分网站是没有问题的。

接着尝试了Chisel,发现这个比较理想

Chisel的和上面的XXXAgent的区别是,XXXAgent是基于代理服务器的软件。而Chisel是一个TCP-Over-Http的软件,可以在本地生成一个Socks5的代理,也就不需要处理各种https证书的问题了。

Chisel的网站是https://github.com/jpillora/chisel

配置远程服务器

首先要有个VPS,这个VPS能够正常访问各种网站
下载安装包,运行

./chisel_linux_amd64 server -v -p 1080 --socks5
别忘了打开防火墙的1080端口

配置本地服务器

同样下载,运行

C:\tools>chisel client -v --proxy https://user:[email protected]:8080 removeserver:1080 socks

命令的含义是启动一个chisel的客户端,连接到远程服务器的1080端口,同时打开本地的Socks端口,使用代理服务器192.168.88.100:8080

但是这样我遇到一个问题,代理服务器封了我的远程vps的http访问。不死心的尝试了下,发现代理服务器对https网开了一面,https是可以的(远程服务器配置了Let's Encrypt的免费https证书)
于是,借助nginx,把/c的请求重定向到本地1080端口:

location /c {
proxy_pass http://127.0.0.1:1080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 43200000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
}

重新运行client

C:\tools>chisel client -v --proxy https://user:[email protected]:8080 https://removeserver/c socks

然后打开浏览器,配置代理的选项为localhost:1080的Socks5端口,OK了!

你可能感兴趣的:(使用Chisel来突破公司代理服务器的封锁)