经常会遇到公司封禁端口,上网需要通过http代理才能出去的情况。而这个http代理如果不能支持上网,那我们就悲剧了。
这种情况一般有好几个办法。
最常见的也最简单的,自己找台服务器,搭一个2s服务端,并且将服务端的端口制定为公司不封禁的端口,再在本机通过2s客户端连接就能出去了。
而我自己有购买的2s账号,不想浪费这个账号,另一方面,在外网有台可以自己控制的VPS,这种情况下,思路就稍微复杂些了。想法就是将VPS当做2s客户端,通过内网打通隧道来连接这个2s客户端,然后通过2s客户端连接到已经购买好的2s服务端,从而正常上网。
简单描述下玩法:
1. 2s的安装说明
a.准备配置文件(主要从购买的2s账号处获得,其中端口21指的是2s客户端的端口,此端口必须是公司防火墙不禁止的端口)
2. 公司内通过ssh做本地端口转发,参考如下命令(前提是本地已经提前配置好了证书)
ssh -CPfN user@xxx.xxx.xxx.xxx -L 9080:localhost:21 -o ServerAliveInterval=30 -o ServerAliveCountMax=10
3. 通过switchproxy设置sock5代理,代理地址是localhost:9080,测试www.bing.com
简单描述下此处原理,浏览器首先通过switchproxy的sock5代理,将请求转发localhost:9080,localhost:9080通过ssh的本地端口转发,将请求通过ssh隧道转发到了外部服务器的21端口,而外部服务器的21端口刚好是2s客户端在监听,于是2s客户端将请求再转到2s服务器端,从而成功上网。
4. ssh会在网络不好的情况下断连,可以使用autossh,具体查阅资料,总言之,做成全自动的。
5. windows下如需使用此方法,可以参考plink或者使用神器MyEnTunnel,参考配置如下: