cover

题记

前面已经介绍过自动更新Google Hosts傻瓜化科学上网,这种方式使用起来基本感觉不到它的存在,就能google,fb等,但是某些不在hosts里面的网站,或者youtube播放(DNS污染严重,只能浏览不能播放视频)显然是不行的,这时候还得靠自由门,蓝灯等科学上网工具实现,但是据身边的朋友说不是很稳定,所以分享一下我一直在用的Shadowsocks科学上网方式!

Shadowsocks介绍


long long ago…

在很久很久以前,我们访问各种网站都是简单而直接的,用户的请求通过互联网发送到服务提供方,服务提供方直接将信息反馈给用户

when evil comes

然后有一天,GFW 就出现了,他像一个收过路费的强盗一样夹在了在用户和服务之间,每当用户需要获取信息,都经过了 GFW,GFW将它不喜欢的内容统统过滤掉,于是客户当触发 GFW 的过滤规则的时候,就会收到 Connection Reset 这样的响应内容,而无法接收到正常的内容

ssh tunnel

聪明的人们想到了利用境外服务器代理的方法来绕过 GFW 的过滤,其中包含了各种HTTP代理服务、Socks服务、VPN服务… 其中以 ssh tunnel 的方法比较有代表性

1) 首先用户和境外服务器基于 ssh 建立起一条加密的通道 2-3) 用户通过建立起的隧道进行代理,通过 ssh server 向真实的服务发起请求 4-5) 服务通过 ssh server,再通过创建好的隧道返回给用户

由于 ssh 本身就是基于 RSA 加密技术,所以 GFW 无法从数据传输的过程中的加密数据内容进行关键词分析,避免了被重置链接的问题,但由于创建隧道和数据传输的过程中,ssh 本身的特征是明显的,所以 GFW 一度通过分析连接的特征进行干扰,导致 ssh 存在被定向进行干扰的问题

shadowsocks

于是 clowwindy 同学分享并开源了他的解决方案

简单理解的话,shadowsocks 是将原来 ssh 创建的 Socks5 协议拆开成 server 端和 client 端,所以下面这个原理图基本上和利用 ssh tunnel 大致类似

1、6) 客户端发出的请求基于 Socks5 协议跟 ss-local 端进行通讯,由于这个 ss-local 一般是本机或路由器或局域网的其他机器,不经过 GFW,所以解决了上面被 GFW 通过特征分析进行干扰的问题 2、5) ss-local 和 ss-server 两端通过多种可选的加密方法进行通讯,经过 GFW 的时候是常规的TCP包,没有明显的特征码而且 GFW 也无法对通讯数据进行解密 3、4) ss-server 将收到的加密数据进行解密,还原原来的请求,再发送到用户需要访问的服务,获取响应原路返回

Shadowsocks客户端配置

ss-client目前是全平台支持的,由于作者去年被郭嘉请去喝茶,已停止更新并删除了所有源代码,所以后续的版本都是由其他人维护的,不放心可认准原作者的最后一个版本下载,我会标注在下面,这里先感谢下原作者!
全平台下载:

使用方法,下面对应windows平台,其他平台使用方式类似:

  • 下载上面对应的文件,解压到任意目录,运行其中的SHADOWSOCKS.EXE
  • 首次运行,会弹出编辑服务器窗口,按图示填写您的SHADOWSOCKS服务器地址,端口,密码和加密方式,点确定
  • 按提示右键程序图标,弹出菜单,勾选“启用系统代理”
    至此就可以随意畅游网络了,至于PAC和全局模式是什么意思?PAC模式会下载一个 pac.txt规则文件,访问里面的网站不通过服务器,一般都是国内网站,全局模式就是所有网站都通过服务器

免费帐号

响应国家号召,请大家科学上网

I Well Come Back

支付宝扫码打赏 微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏

扫描二维码,分享此文章

杨少凡's Picture
杨少凡

殿堂级渣洼工程师,现居重庆,目前就职于人和集团电商部。

Chongqing「重庆」 http://shaofan.org