前言
以前曾有一段日子旅居深圳,对GFW的理解和使用各种工具翻墙算是有点经验,
虽然多年前已回到墙外,但偶尔也须要进入匪区,故此还是保持了解各种工具,
就曾经搭建过或使用过的说说
目前还有效的工具
1) shadowsocks
这个还是现在最热门的工具,暂时来说没听到大面积阵亡
优点
多平台,服务器可部署到由路由器到任何系统,版本众多,轻盈的shadowsocks-libev
可在64M/0 vswap的Linux VPS运行,而不会跑不动。客户端也是多平台,路由器,
计算机到移动装置,几乎涵盖所有系统,可以说是install once, Fuck GFW everywhere
缺点
因为只使用预定密钥作为客户端和服务器的唯一辨别身份方式,有可能会遇上中间人
攻击,客户端连上是伪造的目标服务器,在服务器方面的缺点更明显,因为只用预定
密钥,于是错误的密码或加密方式服务器照样响应客户端的请求,只是不连接到目标
网站,有无聊者用字典穷举密码,而不是拒绝联机,日志上就出现很多ERROR,我的最
高万多个错误,共二百多个来自CN的IP试着联机,shadowsocks-libev可以开启一次性
认证,但很多客户端不支持,例如iOS的Surge,A.Big.T都没有,变成无法使用这一方式
,如果写个脚本纪录日志的错误次数,达到某一数目调动iptables封锁,又会误伤填错
密码的用户,或者是分配到被封的IP而连不上服务器。
多用户无法简易控制用户访问的端口,一个人或三数好友使用时问题不大,但用户有
一定数目时,如果有不良用户通过代理hack其他服务器的sshd,或者滥发邮件,端口扫
描等等行为,有可能是收到VPS供货商投诉或封权才知道,要防止可能要设置复杂的
iptables规则作限制,另外限制连接数也要用上iptables,例如要限制14701端口的连
接数,你得输入,例如32个
iptables -A INPUT -p tcp –syn –dport 14701 \
-m connlimit –connlimit-above 32 -j REJECT –reject-with tcp-reset
这是shadowsocks-libev官网的举例,由于shadowsocks一端口一用户方式,
如果有20个端口要输入20次或写脚本自动化,相当麻烦,也不是一般用
户处理得了。
结论
还是推荐为首选搭建的工具,原因还是那个,轻盈,有效,多平台,不论低端VPS到
高端VPS都可部署,应对无聊人士穷举密码方式是设置16位以上字符长度的密码,不
要理会就成,用命令随机产生比较难以破解的密码,例如:
head -c 512 /dev/urandom | md5sum | base64 | cut -c3-18
每一端口配上不同密码
2) HTTPS/SSL 代理
这个方式存在很久,暂时仍然有效
优点
通常以stunnel作为加密隧道,后端可自由配搭不同的代理,只要支持CONNECT方式
的都行,我就搭建过配合squid3,3proxy和tinyproxy,这些后端已很成熟,能控制用户访
问的端口,或是服务器接受的连接数,也可设置用户认证方式,计算机上无须使用客户
端,现在大多数browser支持HTTPS代理,在一些限制严格的公司内,如不能下载安装
软件,控制用户访问的网站,端口,可以购买商业用的SSL证书,设置用户认证,把
代理设置在443端口,公司不能封这端口,只须在browser设置代理就能突破公司封锁,
而且网管不知你去了那里。
这个方式也是多平台,路由器刷了第三方韧体,例如Asuswrt-Merlin,又能扩展entware
环境,就可搭建服务器在路由器,使用的资源也不多,也可以设置stunnel为客户端连
接服务器。移动设备也有支持,ios的Surge和A.Big.T都有支援http with tls ,安卓也有
tls-tunnel等app,只是不太好用。
缺点
部署麻烦,如果使用IP + 自签名证书,须要自己gen,同时要把证书导入browser或系统
,非常麻烦,而且据说GFW能分辨证书,会按照类型封杀服务器,据说现在还包括免费
的有效证书,例如Letsencrypt ,通常商业不会用这些,不能混迹其中,危险性便
增加了。
另外有说SSL握手特征明显,GFW容易察觉,shadowsocks的作者clowwindy
就不建议使用SSL翻墙, 按我看原文 。
个人浅见以数据安全和防止中间人攻击就高于shadowsocks,对于穷举密码的无聊人仕
直接拒绝连接,有效得多,而且有网友使用还没见到大量被封。
搭建成本高昂,为了比较难被封锁,除了VPS的费用,还要购买域名和证书,这无疑比
较其他方式使费较多,使用域名连接一旦遇到DNS污染,还得修改hosts文件把域名指向
IP抵御,如果封的是服务器IP,全部投资报销。
结论
我还是推荐搭建作为辅助工具,原因是少数用户使用我搭建的SSL代理至今还没有连接
不上的报告,这些有用Letsencrypt证书或自签名证书,如果条件许可,请购买商业用的
SSL证书配合域名搭建,可以混迹其中使GFW不会乱封,openvpn之所以失效就是特征
明显,公司不会以这个协议的VPN作为数据安全信道,于是便大面积失效。使用这类
SSL代理最好是三两好友算了,我经常怀疑GFW会根据加密连接数目主动检测是否翻墙
,为了长久翻墙,不要超过三个用户,最好自己私用。
另外前端可改为较新的nghttp2 点我 点我 据说速度惊人,但我未搭建过。
3) Cisco IPSec VPN
目前算是很流行的VPN,暂时有效
优点
以StrongSwan搭建服务器,多平台,由路由器到各种*nix系统都可搭建,客户端也是
涵括各种系统,移动系统2大主流还原生支持,使用共享密钥配合用户认证,连客户
端都不用安装,而且稳定性高,兼容性好,使用方便加设置容易,数据安全性高。这
个VPN协议为商业公司使用的方案之一,混迹其中可使GFW不敢乱封,当然在共匪开
大会时会有严重干扰。
缺点
全局代理,不能分流,访问匪区网站时等如绕了地球一圈,多用户的时候难以防范不
良用户,例如作为BT代理,hack其他服务器等等,如要限制有可能要设置复杂的规则
,限制用户访问的端口和下载的文件。
搭建麻烦,单是那一堆iptables规则足够麻烦,使用固定端口,点我看官方论坛讨论
这被封锁机会大增,现在是GFW无法检测关键词,而且是商业上公司常用VPN,才
得以不死,据说GFW的IT狗已着手研究检测IPSec VPN协议,以求检测到流量特征和
关键词。
小弟第一次搭建时看了多篇中英文教学,搞了两天才搭好,后来发现有人写了一键
安装脚本,第二个服务器干脆用人家的脚本好了,免头痛 点我取得脚本
结论
一般我会在服务器搭建2种工具,shadowsocks-libev是主力,如果是用穷鬼级NAT VPS
,就配上自签名证书+IP的SSL代理,因为搭建不了IPSec,端口不能改,独立IP的正常
VPS,则选择IPSec VPN 作为第二工具,以ss-libev和IPSec配搭,使用资源不多,一枚
openvz 128M/128 vswap 的vps已经足够有余,在iOS下会随时遇到奇怪的shadowsocks
客户端问题,这时较稳定的IPSec便会派上用场,对于使用iPhone的朋友,分享给他们
使用,客户端不须要付款,不必下载,对于女性朋友,0技术更是恩物,只要截一张
设置的图,她们就会使用。故此我是推荐搭建的选择方案之一。
4) Cisco AnyConnect VPN
在iOS装置上,未有shadowsocks客户端出现前,几乎是ifans的标配工具,目前还是有
效,未闻有大面积阵亡案例。
优点
以ocserv搭建,非常稳定,无论客户端还是服务器,可以分流,在iDevice下载了 Cisco
Anyconnect 客户端,可以使用证书连接,也可以用户认证连接,或是两者相加,不同
于IPSec,端口可以自定,可用域名+有效SSL证书搭建,商业上公司常用VPN协议,据
说是Cisco力推的VPN协议,混迹其中,GFW不敢乱封,我自己搭建了一枚,用域名加
Letsencrypt证书,以用户认证登录连接,端口设在443,客户端也是多平台,由路由器
的vpnc客户端到任何主流系统都能使用
缺点
搭建困难,须有一定技术,这也是花了我不少时间搭建的货色(技术不好的原因),幸
好有好人写好了一键安装脚本,如果不想头痛 点我免头痛 ,第一次搭建时我自己手动
搭建,重灌系统后使用上面脚本搭建,并自行配上letsencrypt免费证书取代自签名
证书。速度不是特别出众,感觉上部署在同一服务器上的shadowsocks比它还快速。
结论
这也是推荐的辅助工具,在一个服务器上除shadowsocks外可考虑部署,可因应不同情
况使用,在一枚openvz vps 128M/128M vswap 运行它与shadowsocks,
在debian 7 x86下绰绰有余,耗用资源不多
5) gfw.press大杀器
最新出品的工具,号称除白名单外,再也不能破解的协议,开发者是推特赵国劣绅石
斑鱼大爷 @chinashiyu ,其官网是http://gfw.press ,这是他的github代码仓库
优点
确实非常稳定,我搭建了一枚在cloudatcost,顺便测试自己的脚本,有5位推友帮忙
测试,多天正常使用,直到服务器挂了前都没有受到任何干扰,有测试用户连续
使用10小时没有断线一次。
附上推友@FWT_T_O_O的源码分析,后端自由配搭,相当灵活。
缺点
以Java编写的程序,对VPS有一定要求,少于512M/512M vswap的openvz vps最好
不要尝试,跑不动的机会极高。文档不足不利第三方开发和搭建,
除计算机系统客户端外,移动系统只有安卓客户端,iOS用户暂时无缘。
部署并不十分困难,由于它只是一条类似stunnel的加密隧道,搭建的麻烦在于
后端代理,如果是debian base 用户,或者可以试试小弟编写的简陋脚本安装
结论
如果shadowsocks失效的话,小弟首选转战这个,再配搭HTTPS/SSL代理或
IPSec VPN在计算机上和iDevice使用,有较强劲VPS的朋友,
甚么虚拟方式的VPS也可以试试搭建,如果有高手志愿者以Python/C/C++等等
较少资源改写,相信会火起来。
6) V2Ray
这也是较新的工具,也是新一代配上混淆流量,躲避GFW流量特征检测,并且兼容
shadowsocks协议的工具,部署它可除可使用V2Ray外,也可使用shadowsocks而无须
另外安装 手册在这里 v2ray project官方github代码仓库
优点
这个我部署了一个在低阶VPS上,后来因使用不常使用,且低阶VPS跑起来吃力,就
把它删除了,搭建非常简单,在Linux VPS上以root执行以下命令就完事了
bash <(curl -L -s http://ift.tt/1PkwI8B)
配置文件类似shadowsocks,如果有搭建ss服务器的朋友,很容易就会配置服务器文件,
算是无痛转移,这个在搭建后测试期间相当稳定,也没有受到任何干扰或失灵。
缺点
和gfw.press一样,对于VPS要求较高,由于以golang编写,官方建议一人使用VPS最少
128M RAM,更多用户如此类推,2 vcore的VPS较能发挥速度优势,客户端暂时只有电
脑系统,在移动装置只能使用兼容的shadowsocks
结论
同样,如果shadowsocks失效,这也是我会转战的目标,配搭其他的工具,在计算机和移
动装置使用,计算机上主力使用,移动装置使用IPSec,AnyConnect或HTTPS/SSL代理,如
果网友的VPS够强劲,建议搭建一枚,即可使用v2ray和shadowsocks两件工具,
计算机和移动装置都可使用
7) lightsword
以nodejs编写的代理,客户端支持计算机和iOS,iOS客户端售8元港币,
官方github代码仓库
优点
小弟在一枚256/512 vswap openvz vps搭建过,并购买了iOS客户端测试,抱歉,完全
没有发现有任何优势,大概是shadowsock的nodejs改写版本,客户端并不兼容SS
缺点
以nodejs编写的程序,和Java一样,RAM Eater ,低阶VPS相当不利,功能上没有
出彩的特点,用于混淆流量的加密只支持aes-128/192/256-cfb , 而没有较轻量的
chacha20和rc4-md5, 安卓没有客户端,iOS客户端售价便宜,
本来是针对当时ios的ss客户端Surge,后者达到天价的$99美元,但随着
shadowrocket,A.Big.T只售8元港币,这个优势也没有了,ios客户端到我删除之前,
就只支持全局代理。
服务器方面,以python shadowsock连系统70个连接只用3X RAM左右,但lightsword在
同一VPS相同条件下,已经使用80M以上内存,而且还不断增加,其实以前也是有
shadowsocks nodejs版本,后来clowwindy停止开发,原因 ,nodejs官方解释
服务器没有UDP转发,没有一次性认证,没有轻巧的加密方式,官方文文件不全,配置
描述文件在我删除服务器前没看见,我是把命令行参数写到脚本使用,唯一是搭建不
难,官方有一键安装脚本,自行搭建只要安装了nodejs,以npm即可安装。
结论
在没有大改变之前,不建议搭建或使用。
8) shadowsocks-R
号称根据shadowsocks弱点加以「改良」的版本,支持计算机客户端和部份移动装置,
这是官方github代码仓库
优点
没有使用或搭建,说不出来
缺点
移动装置客户端支持不多,其他同上
结论
本人不会作出推荐或者不推荐的个人建议,作为用家未来也不会部署服务器或使用,
如果网友有兴趣,自行往官网看手册文档,这里给出shadowsocks和shadowsocks-R的
网络事件和安装脚本
关于ShadowsocksR和Shadowsocks的安全性
ShadowSocks协议的弱点分析和改进 #38
对GPL协议的违反 #28
ShadowsocksR一键安装脚本
最后,这里并没涵盖所有工具,这些意见非常主观,而小弟也非IT人,只是普通用家
的个人体会,错误和偏见是绝对的,不须要用来参考,当作是笑话阅读最好,然后给
出「哦」一个字就可以了。
via 细节的力量 http://ift.tt/1TDFToa
No comments:
Post a Comment