Tuesday, December 27, 2016

开撕奇文共赏

实在受不了如此虚伪还爱装13的人,决定还是写文章开撕好了,来共赏一下奇文共赏

以下先罗列事实
在2016年12月26日21:20分截图
然后,我更改主页内容,并小范围发了一个消息(于21:34)

主页更新:
因奇文共赏博文更新
原文中
因博主被DDoS于是关闭了评论
改为

因博主被DDoS,且因为删一些脑残粉的评论太烦(此为博主原文),所以曾经关闭了评论,所以你无法在那里看到16年12月24日以前任何支持SSR的评论
其实我博客Google Ad说估值20美元,老提示我让我放广告,但我不想放广告,但他那才0.24这么可怜,大家帮忙给他点击一下呗
https://t.du9l.com/2015/08/qi-wen-gong-shang


Monday, December 5, 2016

如何以最暴力的方式防止百度定位泄露真实位置

其实我很早就知道这玩意,并以以下的方式屏蔽,最近又有很多人关心,我就把我的方案公布一下

在系统的host加入如下的东西即可(即屏蔽掉这些域名)

1.0.0.1 api.map.baidu.com
1.0.0.1 ps.map.baidu.com
1.0.0.1 sv.map.baidu.com
1.0.0.1 offnavi.map.baidu.com
1.0.0.1 newvector.map.baidu.com
1.0.0.1 ulog.imap.baidu.com
1.0.0.1 newloc.map.n.shifen.com

::2 api.map.baidu.com
::2 ps.map.baidu.com
::2 sv.map.baidu.com
::2 offnavi.map.baidu.com
::2 newvector.map.baidu.com
::2 ulog.imap.baidu.com
::2 newloc.map.n.shifen.com

以上写法会让连接超时等待,如果你希望连接立即拒绝断开,那么把"1.0.0.1"改为"0.0.0.0",把"::2"改为"::"即可

如果你使用代理,那么在代理服务器及本地都最好设置一下

Friday, November 11, 2016

局域网下免设置路由全局透明代理

如果你不想光为了透明代理而单独买一个可刷OpenWRT固件的路由器, 同时你在局域网内有至少一台linux机器(可虚拟机),那以下内容可以帮助你在不需要设置路由的情况下实现透明代理(当然本质上就是把那台机器当成路由来用)。

首先你需要一台linux机器,ubuntu/debian/centos等均可,能编译ss-libev,使用iptables(于是不能centos7,我不会调教那个firewall)。你可以使用真实机器(如树莓派)或虚拟机。如果使用虚拟机,网络类型需要设置为桥接到物理网络,如果是VMware,不要对“复制物理网络连接状态”打钩。我建议使用虚拟机或性能不差的真实机器,这样网速不会受到性能上的限制。

接下来,安装操作系统、安装编译依赖包、git clone ss-libev、configure、make等这里就不说了,网上说明有很多(虽然大多数是过时了)。

编译好后,如果你clone的是ssr的libev版本,里面自带了一个ssrlink.py,可以通过此脚本快速生成一个客户端使用的配置文件,例如执行:

python ssrlink.py ssr://MTkyLjE2OC4xLjI6MTA4MDphdXRoX2FlczEyOF9tZDU6YWVzLTEyOC1jZmI6dGxzMS4yX3RpY2tldF9hdXRoOk1USXpORFUyLz9vYmZzcGFyYW09ZEdWemRDNWpiMjAmZ3JvdXA9ZEdWemRB > config.json
即可生成一个配置好了的config.json

东西都准备好了,现在开始配置。首先是开启ipv4转发,编辑/etc/sysctl.conf,解除net.ipv4.ip_forward = 1的注释,或直接添加这么一行,保存文件,并执行sysctl -p使修改立即生效。然后,设置IP为静态的,例如你的路由器地址为192.168.0.1,那么你可以设置为192.168.0.2,具体设置方法参考linux文档。设置好以后,在需要全局代理的机器上,把网关地址改为192.168.0.2,测试能不能正常上网(现在还没有通过代理),如果不能,那检查防火墙配置,或尝试重启它再测试。能正常上网后再进行后面的配置。

Monday, November 7, 2016

关于breakwa11的印象精选

在11月1日我发了一个调查,现已收到超过500条回应,以下总结一部分我自己觉得比较有代表性的印象(敏感信息已过滤,如发表人的联系方式)

"妹子做我女票"

"~~肌肉猛男一位~~"

"腐女一枚,学霸一位,吃货一个"

"女装大屌萌妹(>ω<)"

"逗比"

"技术宅,自我中心,成长环境好,有点娇生惯养,喜欢钻研自己入迷的东西,应该还比较漂亮,有点责任感,没有bf……其他想起来有机会再说吧。 另外就是感谢ssr的开发!"

"有 jj 吗"

"印象:还不错;评价:贡献很大;想说:感谢你所做的一切,如果历史是公平的,如果我们现在的普世价值观在后世任被认可,我相信你会受到后人的感谢与尊重的。"

"这个有大唧唧的女孩子为啥还没有被喝茶呢"

"印象还好吧,简单看过之前的争议事件,未了解前后情况,所以不好发表意见。不过能持续维护SSR,是很值得肯定的。
所以不用太在意别人的意见,做自己喜欢的就好,当然不含坏事。"


"之前完全没有听说过( •̀ ω •́ )y因为毕竟 SS 也都是网上随便搜一个脚本就安装了,但是速度实在太慢,后面实在受不了,才又找各种优化方法,才知道了 SSR ,折腾一下,感觉蛮好,速度也不错,以前速度永久了变慢换个机房 IP 就变好了,所以说加了混淆啥的还不错,但是具体的一些纠纷啥的也是后来才有看到,what?以前在 V2EX 居然木有看到,∑( 口 || ,so ,不管怎样,支持下了,继续努力把!!!PS:最新粉色版的 SSR 在我的 Android 手机上耗电量总是排在前几名,是有什么问题嘛??系统版本是 5.1.1 ,Flyme  PPS:听说开发者是一个妹子>.< "

"Breakwa11感觉很神秘,有点小脾气,不是很客观的一个人。但还是很感谢他(她)为我们带来这么好的软件,希望他(她)一直隐身下去直到民主那一天的到来。 THX!Breakwa11!"

"①辛苦写出SSR的天才少女 ②坚称SSR是私人用软件并采取各种方法减少SSR公开度的顽固开发者 ③不求报酬但求匿名的网络幽灵"

"没什么特别印象啦,就觉得很厉害,但是我现在用着原版ss感觉速度和稳定性比ssr强,另外就是希望ssr专心做好fq就好,免流这种千万别沾了,毕竟不被政府盯上是最好的,最后祝ssr越做越好,易用性真的比原版强太多"

"求照片"

"破娃你是D罩杯嘛?"

"上帝一般的存在!!!!非常的感谢破娃给我们带来了更安全更快速的上网方式,希望破娃可以将SSR做的越来越好,希望SSR万古长存!!!!!!我没有太多的编程基础,也没法贡献自己的力量,所以我只能说,发自内心的感谢!"

Thursday, November 3, 2016

ShadowsocksR协议的选择

其实这个要说的少得多,总之就一句话,能用auth_aes128_md5或auth_aes128_sha1的,就直接用这两个,最好不要开启兼容,其它的协议都不建议。但如果要解释的话,这个说来话长,需要一点点说明其它的协议的特性。以下简略说明一下各协议的问题。

首先我们来看原版协议(origin),原版协议有着最少的数据冗余,在没有限制的情况下,必然是原版协议速度最快,这是毫无疑问的。其它的协议的兼容,全是为了兼容原版协议。那既然原版理论上最快为什么不直接用?因为它没有数据完整性校验,无法确认数据是否被篡改,容易被攻击,它也没有做数据包的长度混淆,可以通过数据包长度统计分析检测出来(例如此专利中所说的方案)。当然如果你所在的地区直接使用没有感觉有什么问题,那直接使用就可以了,没有必要考虑后面的。

接着来看原版的OTA协议,这个协议增加了从客户端到服务端单向的完整性校验,于是服务端到客户端的方向还是存在同样的问题,且它也没有做数据包的长度混淆,一样可以通过数据包长度统计分析检测出来。另外此协议并非能抵抗CCA(Chosen ciphertext attack),依然可以通过CCA来确定这是不是OTA协议(通过服务端行为攻击,具体方法这里不说)。

Friday, October 28, 2016

ShadowsocksR混淆的选择

最初我设计这个混淆的时候并没有想到如今产生了如此多的黑科技用法,只是想着伪装为看起来像正常的流量,减少被注意到的可能性而已。

对于大多数人来说,混淆并不是必须使用的,不使用混淆其实都能正常使用,而且在这当中有近一半人所在的地区的网络,直接使用原版的SS能获得更好的速度。那么什么时候你应该使用混淆呢?第一类是遇到QoS情况的,使用混淆能提速的人,第二类是所在网络有严格限制,仅能使用80/443端口,不认识的协议根本不能用的(如学校、公司、政府办公网络),第三类是对自己的隐私有要求的,希望在运营商的连接记录里留下看起来正常的访问记录,第四类是试图绕过学校或运营商的计费系统的人,第五类其它黑科技用途保密。以上第四类并不在本文的讨论范围,这属于漏洞利用的非法用途。下文仅针对前三类进行展开。

Wednesday, September 21, 2016

Shadowsocks各分支的安全性

这里要说的安全性并不是指密码学上的那种,而是在防探测,防流量识别并阻断上的安全性(也许算隐匿性?),所以主要针对的就是服务端。现在服务端的版本主要有以下这几个分支:shadowsocks-libev,shadowsocksR-python,shadowsocks-python,shadowsocks-go,libQtShadowsocks。而其它的分支用的人太少,所以我也没有去研究代码。

在说这个问题之前,首先要提及一点:TCP是流协议,你需要假设它可能在任何地方被拆分开,后面内容过一会儿才收到。服务端在设计的时候应该遵守以上这点来设计协议或设计其行为。

目前主要在使用的协议,一个是原始协议,另一个是OTA协议,现在分别说说这两协议在各分支上的实现。以下内容为截止到20160921时的各分支的实现情况,若将来各分支修正了,那么以修正后的情况为准,下文仅以此作为示例说明。

Saturday, September 3, 2016

日常小事20160903

今天某TG群里遇到人问把google的80端口用自己的VPS转发,能不能实现访问google,答案是显然的,因为http明文会被拦截,他又解释说他这么做是因为公司防火墙把socks5代理拦截了,没法用。我提醒他可以伪装为http访问(仅说了这一句话),他说他不会,很快就有另一人回答用anyconnect就好了,anyconnect是公司80 443神器。我心想,确实啊,anyconnect挺好用的,速度又快,而且配置起来也是挺简单的,然后我就没回复了,我继续折腾我的东西去了。

Thursday, July 21, 2016

让linode复活

调查过一下,发现有不少人遇到linode的VPS,尤其是日本的,在使用SS时经常性被临时封锁5-30分钟不等,期间不光原端口无法连接,任意端口都会连接超时失败。

不过使用SSR时,可使用混淆解决这个问题

首先,服务端把SSR端口开于80,混淆使用http_simple,协议使用auth_sha1_v2

服务端需要修改config.json(或userconfig.json) 文件中的
"redirect": "bing.com", (这一步是关键,同时最好更新一下服务端,之前的版本这里支持得不够好)
这样,服务端便配置完成,重新运行服务端即可

客户端,开启http_simple混淆和auth_sha1_v2协议,同时设置混淆参数为【bing.com】

我测试了一天,并没有再遇到被封锁的情况,大家可以测试一下(也许可以应用到更大的范围)

原理: 伪装为访问bing.com的请求,而浏览器直接打开时即会重定向到bing.com(看到bing的出错信息),当然如果替换其它的http站点也是可以的(不能使用https站点),这样做的目的是欺骗主动探测(它会探测这个端口是不是真的在运行http协议)

Monday, March 7, 2016

关于暂时停止更新ShadowsocksR

首先,这和喝茶没有任何关系,不然就不是“暂时”

我开发SSR仅为一时之兴趣,从2015年5月至今已有10个月,共发布C#版本至少56个,其中3.7.4.2版未发布。当时开发的动机是感觉原版本不够好用,而后来还发现原协议的各种问题,于是做出插件机制。

而之所以选择暂时停止更新,有好几个原因,其中一个原因是暂时失去更新的动力,因为我对其它东西感兴趣了,作为半个围棋爱好者,看了1月29日的新闻后,对3月9日那四个小时特别的期待(我猜测结果是AI 1:4 李),并且我又再次兴趣转移到人工智能上面,也许之后会弄点什么好玩的给大家玩玩。另外,我发现其实现在的GFW完全有能力封杀SS原版协议,但却只在少数地区这么做,不知道出于什么原因。而SSR现在由于多了协议和混淆选项,配置相对更麻烦,用户数少得多,并且因为混淆更难被封杀也容易骗过QOS,即使不维护也应该能使用到房价跌到谷底,直到爆发全国大范围断网为止。所以接下来的维护重点,也就在其它平台上折腾了,而我没有那些平台环境,也不想折腾。

还有一些别的原因,比如Google搜索ShadowsocksR第一页就能看到批评的博客文章,不过我对其错误之处没有兴趣反驳,又比如很多人反感SSR,再比如很多人讨厌SSR更新频率高,再再比如我不是软件专业,写的代码又差又缺乏基础知识,反正即使我不再写,也会有水平比我高的人继续写软件,根本就不缺我一个,最好是我滚得远远的,别动其它人的代码就对了,反正本来SSR的定位就是我写给自己用的小玩具,自己够用就好了。

至于“暂时”是多久?比如我写SSR本身就是暂时的。什么时候再继续?我不知道,也许什么时候我感觉不好用的时候。

从2015年每逢大事前后一个月左右上国外网络超卡,到现在感觉不到什么影响,我也感觉到我应该花时间在别的东西上,包括争取出国留学。最近因时间都花在别的东西上了,twitter上并没有说多少话,以后会慢慢继续聊天的,主要都是聊天为主,twitter的time line上不解答SSR的任何问题。有兴趣聊天什么的可以@breakwa11

Sunday, February 14, 2016

2016年2月上半月主要事件

1日 北京众泽妇女法律咨询服务中心歇業
1日 香港1908書社結業
1日 世界卫生组织(WHO)召开紧急会议后宣布,将兹卡病毒列为全球紧急公共卫生事件
2日 非限購城市購樓首付下調到2成至2.5成
3日 腾讯援引作家赵瑜的文章,揭露大陆著名中长跑队“马家军”滥用兴奋剂导致运动员严重伤残的事件
4日 “共产党员”公众号将连续3天发出总计30万元的口令红包
4日 包括美国在内的12个环太平洋国家的贸易部长周四(4日)在新西兰的奥克兰举行跨太平洋伙伴关系协定(TPP,Trans-Pacific Partnership)。
5日 新華社發布天津港大爆炸调查结果,三條稿件中,在2月6日凌晨1点半左右突然撤掉了一条稿《检察机关严肃查办天津港“8·12”特别重大火灾爆炸事故25名职务犯罪嫌疑人》
6日 南台湾高雄发生6.4级大地震
7日 朝鲜于当地时间9点30分发射火箭,声称光明星4号卫星成功进入预定轨道
7日 当天春晚被认为是新闻联播的剧场版
9日 香港旺角8日晚鱼蛋事件于凌晨两点升级为冲突,警察鸣枪两枪
10日 Donald Trump wins New Hampshire primary
10日 中共教育部党组关于教育系统深入开展爱国主义教育的实施意见
11日 LIGO公布引力波发现

如有补充请留言

Saturday, January 30, 2016

2016年1月主要事件

1日 二胎政策以及新反恐法開始實行
5日 股市熔斷機制開啟,4天後緊急停止
6日 百度賣帖吧(血友病吧)
7日 快播案開庭
7日 离岸人民幣暴跌,與在岸人民幣價差近千點
9日 攜程假機票
15日 周子瑜道歉
16日 台灣大選
16日 國外信息安全專家體驗防火長城
18日 桂民海央視認罪
20日 帝吧遠徵Facebook
23日 ShadowsocksR RSS主頁被騰訊認證
26日 A股再次暴跌,連續三天,国内媒體一致指向索羅斯做空亞洲貨幣
26日 共青團微博【小粉紅是誰】刪貼
27日 圍棋AI AlphaGo首次以互先規則下擊敗人類職業棋手,3月9日將挑戰韓國李世石九段
29日 日本央行負利率

如有补充请留言

PS.在本文章发布后仅仅9分钟隔壁chinagfw居然发了一篇性质一样的文章,好吧,我只是想吐槽一下这么“巧合”

Sunday, January 17, 2016

关于Shadowsocks协议中加密的特征

经过一段时间在Twitter上玩,发现有一些信息或内容比较合适写下并记录下来,以便于以后搜索,以及方便讨论(感觉直接发github issue不大好)。而Twitter更像是发了以后过几天便会忘记的平台,所以打算博客重新开坑(前一文章都一年多前了)。不过由于时间原因,文章不会写很长。

这次想说说Shadowsocks协议中的加密。有的人说,他用rc4-md5的话,过一段时间就被屏蔽,而aes-256-cfb就好好的,所以rc4-md5被破解了。我对GFW是否能短时间解密rc4是持怀疑态度的,我自己还没有遇到过这种情况。如果你确实担心这个问题,同时又希望加解密速度能比较快,那么用aes-128-cfb或chacha20就足够了,如果还出现被屏蔽的情况,那么很可能是被特征识别,例如你主要使用的客户端不是C#版的话,特别是android/路由器这些设备,是存在被识别的可能性的。

如果你发现被屏蔽,或者速度变慢了,换个加密方式(IP地址不变)速度又升上去了的话,那么就是已经被特征识别了。而之所以换个加密方式又能用,是因为加密后数据包长度变了,特征变了,所以又好了,当出现这种情况的时候,估计你的服务器就得过一段时间换一个加密和端口了,或者尽量使用socks5或http方式的代理,减少使用路由和android连接的次数,最好直接使用C#版客户端(原版或SSR版均可),这个版本实现时对首个数据包有特殊处理,减少了首包特征。

所以如果你遇到被屏蔽的情况,一共有三种可能性:服务器被封端口(仅你的IP);服务器被封IP(仅你的IP);服务器被全面封IP;你的IP被封(这种情况无解)。
建议先尝试一下更换服务器端口看能不能连上,如果能,说明仅仅被封锁了端口,如果不能,再试试重启路由以获得一个新的IP(如果有分配一个动态公网IP的话)再连接,如果能,那么就是服务器对于你原来的地址被封IP,否则就是可能被全面封IP(可能性很小)。确认了封锁类型后,更换端口或等待解封。强烈建议你修改加密方式,因为原加密方式很可能被特征识别了,再使用很可能继续封锁的(至于之后用多久又可能会被封锁的问题,那等到被封锁了再换吧www,实在受不了的话也可以尝试更换协议或加混淆)。如果你看视频不多,那么可以尝试让tor走ss的代理,然后浏览器走tor,tor在连接成功后建立的连接数较少,会把多个连接的数据包混合在同一个TCP连接里发送,可减少被用于识别的样本数,同时获得匿名性。

这里解释一下你的IP被封这种情况。之前有位网友吐槽,他被封锁了,所有的工具到头来没有一个能用的,连teamviewer远程桌面都用不了,后来他发现只要流量一大,所连接的远程IP直接被网管丢到黑名单,还没到墙就已经被封了,这种是无解的。