cover

前言

来到魔都,入住的小窝里前房客留下了一根12M的电信,2015年上海电信真是搞了一个大新闻,国际线路拥堵,人为地恶化国际网络质量,对于我们这些需要大量访问国际网络的开发者来说,真是痛不欲生,具体表现就是:

  • 大量丢包,Ping我Linode东京服务器丢包40%,Ping Github丢包60%。
  • 直连速度惨不忍睹,wget直连只有10K-50K左右的速度。

full-img

准备

1.首先你得有一个Shadowsocks帐号,可以自己在服务器上搭建,也可以购买,这里不提供,不出售,不回答从哪购买之类的问题。
2.懂得SSH操作命令。

full-img

1.开启极路由开发者模式

安装Shadowsocks插件需要开启开发者权限。请参考官方的《开发者模式功能开放公告》,有十分详细的教程。

2.SSH登录极路由

ssh root@192.168.199.1 -p 1022 #使用root帐号连接路由,端口为1022,密码为后台登陆密码。  

3.便捷脚本安装

#!/bin/sh
cd /tmp && wget http://cdn.is26.com/file/hiwifi/shadow.sh && sh shadow.sh && rm shadow.sh`

full-img

这段脚本是通过《极路由安装ss插件》一文所提供的脚本修改的(该作者服务器有点不稳定),把脚本和插件安装包都放在了又拍云CDN上,相比之下更加更稳,另外我增加了中文提示,加了点情怀,ノ( ´ ▽ ` )ノ。

注:担忧安全问题的同学请自行看shadow.sh脚本和解压ss.tar.gz看源码

4.开启极路由SS

full-img

接下来,重新登录极路由的后台的高级设置,会发现shadowsocks加速的选项,在表单中填写SS帐号密码和加密方式,选择智能模式,保存,只要提示运行中 已加速就表示已经成功连上SS了。

1.特别注意:请关闭极路由的自动更新功能,要不每次路由器升级后,会删除SS插件。
2.若shadowsocks选项显示的是:{ "msg": "请求的接口不存在.", "code": 560 },请重启路由器。

这个时候,连接极路由的所有设备,理论上都可以无痛翻墙了。

full-img

无图无真相,没有连VPN,没有弄pac弄代理,直接连WIFI就可以翻墙咯。

相比在电脑上运行SS客户端、设置pac,在路由器上直接设置SS相比更加便捷,且支持Twiiter、Facebook等iOS客户端。

5.在线脚本

针对常见的被墙网站,有著名的autoproxy-gfwlist的项目,可以自己写一个脚本从这个list抓取最新的黑名单更新到自己的路由表中。

秉着方便的原则,可以直接使用shell脚本转换。我写了一个脚本自动出来最后的结果,可以直接访问http://this.is26.com/download/gfw.txt

6.一键更新路由表

本来我尝试重新修改一下源码,把转码好的域名策略dnslist直接打包到包里,结果不知道哪里的问题始终无法正常压缩。

更新一段脚本,执行就可以自动更新极路由中的路由表到最新的gfwlist,当然,你也可以参考上面的第5条自己手动更新。

cd /etc/gw-redsocks/gw-shadowsocks && wget http://this.is26.com/download/gfw.txt && cat gfw.txt >> gw-shadowsocks.dnslist && /etc/init.d/dnsmasq restart

重启一下SS,路由表就是最新的了。

怎么更爽点

这个时候,你会发现自己终于可以访问Google、推特、脸书、Ins一票不存在的网站了,可是,速度怎么这么慢呢。

过去这几年,基本上把翻墙的所有方法和方案都折腾了一遍,作为一个有姿势知识,有文化、有理想、有逼格的四有青年,仔细思考一下,发现大概可能是这么几个原因。 在翻墙的通讯连接方式上,有这么几个连接方式:

Client < ISP> 海外SS Server

这是最普通的一种方式,你的鸡鸡机机Client <宽带线路机房> 海外的Shadowsocks服务器,大部分时候,只要直接海外机器稳定,一般都能正常连接。可是一旦ISP到海外服务器的线路受到干扰(比如上海电信这种人为干扰的情况),那么哪怕你是100M的光纤,你海外的服务器再牛逼,可是中间运营商到 SS Server的速度只有50Kb,调包50%,你翻墙的速度上线也只有50Kb的速度,还时不时掉线。

那么针对这种问题,该怎么解决呢?也许我跟方校长上辈子结下了什么孽缘,以前因为写方校长的一篇文章小火一阵,还被南方周末采访过 ╮(╯_╰)╭ 《回记者信:关于方滨兴的一些看法》

首先放参考教程链接

Client < ISP> 国内 Server < BGP>海外 SS Server

这是一种比较稳妥和常见的优化方案,为了解决上面直连方案 ISP到海外服务器的短板问题,可以通过在国内设置跳板机的方式,增强连接稳定性和速度。

对于中转的方法,我提供几个关键字,大家只需谷歌一下,就能知道大概思路

  • Shadowsocks Relay 官方提供的一套跳板方案
  • Haproxy 转发,目前我在国内阿里云设置了Haproxy转发,还可以做负载均衡(个人用户其实倒没什么必要),相比上海电信直连海外SS server,通过阿里云Haproxy,虽然Ping值高了30-40ms,可是能够解决丢包的问题,稳定性大增。

可是通过国内跳板也不是万能的,也存在几个问题:

一个是机房线路问题,一般而言,大型的国内机房,Client连接都还行,比如说我阿里云是青岛最低配置(按流量计费100M带宽上限: 1G/0.8元),从Client直连ping值大概在30ms,Wget资源速度可以到4-6M/S,可是青岛阿里云Ping Linode东京则需要80-100ms的延时,Wget速度只有100KB-1M/S不稳定;而Ping DigitalOcean 旧金山机房有150ms的延时,Wget速度则可以轻松达到2M/s。更换到阿里云杭州机房,Ping Linode东京约60-80ms延时,Wget速度轻松达到2M+/S。由此可以看出,阿里云青岛和杭州,到达日本和美国西海岸不同服务器所走国际光纤线路速度和稳定性也是存在差异的。

二是带宽和流量,国内服务器价格昂贵(阿里云从最开始的80多降价到基础30多,可谓良心,已经用了好几年了ノ( ´ ▽ ` )ノ ),带宽优先,大多都是小水管1Mb、2Mb的出口带宽,作为跳板存在速度短板,目前国内提供流量收费的云服务有阿里云和青云,阿里云1G/0.8元,一个月跑个30G流量下来,也得额外20多块钱。

虽说自己搭建跳板大多时候可以满足主要需求了,可是一旦遇到线路拥堵、机房抽风,看个Youtube卡成哔也是很有可能的。那么,问题来了。

商业解决方案

上面说到了国内跳板机方案的思路和存在的问题,那么针对所说的问题,依次解决是不是就可以爽翻天呢?

挑一个拥有好的国际线路的机房(CN2什么的);带宽随随便便给你个100M,不怕满足不了你,就怕你小水管太细吃不消;费用嘛,当然是免费!!!才怪呢。

免费是最贵的东西。

时间宝贵,不帮懒人,不少人都知道曲径、红杏之类的翻墙方案,无非就是 Client <好的ISP> <很多好的ISP> 好的海外Server,国内部署优质机房集群,高带宽,能支撑大量用户,能根据用户的网络情况,自动选择优化线路,自动更新路由表分流国内外网站,分流不同国家不同网站不同线路。

在这里要介绍一下微林,推荐一下我的朋友@代码家 写的《提速 Shadowsocks》,微林就是针对我们的第二种方案的问题做的一套优化:CN2线路机房、流量还算便宜balabla。

点击这里我的邀请码注册,你和我都可以免费获得1GB的流量(够你测试一下,体验一下速度)。

虽说我已经有一台国内服务器,可是亲自测试下来(多个地方、线路测试),通过微林翻墙的速度的确要快很多,用阿里云Haproxy到Linode东京偶尔还是会存在看Youtube 720P卡顿,而大多时候,微林都可以十分流畅看1080P高清,此外,微林1G/1元和阿里云1G/0.8元的价格,也差不了太多,半个月下来,我用了大概15G流量(看了不少Youtbe视频)。

总结

现在,回到家连上WIFI,不用连VPN,不用设置乱七八糟客户端,刷Twiiter,刷Ins,刷Facebook,邮件收发完全正常,想谷歌时就谷歌,想看Youtube的时候就看,使用一些国外资讯阅读APP的频率也高了,加上不错的网速,倒也是自由,幸福感秒生。

天朝人民真不容易,上一周,突然发现自己三年前在V2EX发的帖子《探讨贴:mini主机当软路由配合autovpn翻墙的可行性?》,三年了,这外网环境越来越恶劣,墙越来越高,我还在折腾这破翻墙方案,一声叹息。

更新Update:

  • 2015.10.24:更新了快捷更新路由表的脚本。
  • 2015.09.21:家里的电信网络到期了,申请了上海移动20M(东方有线)的宽带,用阿里云青岛中转日本Linode,锐速优化了Linode线路,写了一个脚本自动更新路由器里的路由表,平时看Youtube都自动给我1080P。
  • 2016.02.03:又重新购买了一个香港的服务器,专供爬墙用,极路由开启全局模式+移动宽带,网件r6300V2刷SS开启白名单模式+100M电信宽带,现在家里完全无痛了,各种爽快。

打赏

2016年博客改版试用了新的主题Yasuko,增加了「打赏」接口,如果你觉得我的文章对你有帮助,欢迎点击下面的「赏」按钮,扫码打赏,多谢你的支持。

支付宝扫码打赏 微信打赏

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

扫描二维码,分享此文章

罗磊's Picture
罗磊

前端工程师,深圳人,广州暨南大學,现居上海,就职于阅文集团(腾讯文学)UED,原猎豹移动(北京)用户体验部,写原创博客八年,简书推荐作者,骑行过318国道,跑过几场马拉松,晒妻狂魔,跟着妹纸全世界乱逛。

Shanghai「上海」 https://luolei.org