公司禁端口环境下上网

来源:互联网 发布:苹果手机数据找回 编辑:程序博客网 时间:2024/04/30 18:01

经常会遇到公司封禁端口,上网需要通过http代理才能出去的情况。而这个http代理如果不能支持科学上网,那我们就悲剧了。

这种情况一般有好几个办法。

最常见的也最简单的,自己在外外面找台服务器,搭一个ss的服务端,并且将服务端的端口制定为公司不封禁的端口,再在本机通过ss客户端连接就能出去了。

而我自己有购买的ss账号,不想浪费这个账号,另一方面,在外网有台可以自己控制的VPS,这种情况下,思路就稍微复杂些了。想法就是将VPS当做ss客户端,通过内网打通隧道来连接这个ss客户端,然后通过ss客户端连接到已经购买好的ss服务端,从而正常上网。

简单描述下玩法:

1. ss的安装说明 

https://shadowsocks.com/download.html

a.准备配置文件(主要从购买的ss账号处获得,其中端口21指的是ss客户端的端口,此端口必须是公司防火墙不禁止的端口)
{
    "server":"xxx.xxx.xxx.xxx",
    "server_port":xxxx,
    "local_port":21,
        "password":"XXXXXXXX",
        "timeout":600,
        "method":"aes-256-cfb"
}
b.启动sslocal -c ss.config.json -d start
c.测试:curl --socks5-hostname 127.0.0.1:21 http://www.google.com

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.google.com

简单描述下此处原理,浏览器首先通过switchproxy的sock5代理,将请求转发localhost:9080,localhost:9080通过ssh的本地端口转发,将请求通过ssh隧道转发到了外部服务器的21端口,而外部服务器的21端口刚好是ss客户端在监听,于是ss客户端将请求再转到ss服务器端,从而成功上网。

4. ssh会在网络不好的情况下断连,可以使用autossh,具体查阅资料,总言之,做成全自动的。

5. windows下如需使用此方法,可以参考plink

0 0
原创粉丝点击