Shadowsocks 原作者 clowwindy 的周年纪念

著名开源翻墙软件 Shadowsocks 作者 clowwindy 由于 2015 年 8 月 20 日被请去喝茶,已经于 2015 年 8 月 22 日删除了 GitHub 的代码库,致敬原作者。

(来源 https://blessing.studio/about-clowwindy-archive/)
有幸从事件初露端弥的时候就得知消息,这里整理了一下事件的时间轴。希望这点资料能帮助到别人。另外,为了不影响首页阅览体验,本博客已经将其他关于 shadowsocks 的新闻放入 Chamber,不再在首页上显示。可以点 这里 访问 Chamber 分类目录。以后更新都会在这篇文章中更新,首发与 2015.8.22,以后此文章将会随着更新而修改发布日期。

8.20

@clowwindy 就 @breakwa11 关于 shadowsocks-rss 开源协议问题发言

https://prinzeugen.net/about-shadowsocks-r/

8.20

根据 @clowwindy 的发言可以确定的具体喝茶时间

Two days ago the police came to me and wanted me to stop working on this. Today they asked me to delete all the code from GitHub. I have no choice but to obey.

I hope one day I’ll live in a country where I have freedom to write any code I like without fearing.

I believe you guys will make great stuff with Network Extensions.

Cheers!
https://github.com/shadowsocks/shadowsocks-iOS/issues/124 (web archive)

8.20 晚

访问 V2EX shadowsocks 节点跳转到首页

https://prinzeugen.net/disappearance-of-v2ex-shadowsocks-node/

根据 @livid 在 这里 32 楼的发言来看,shadowsocks 节点并非被移除而是对注册时间少于 1000 天的用户隐藏了

8.20 晚

@clowwindy 把他所维护的几个 shadowsocks 实现的代码仓库内的 Issue 面板全部关闭,所有帮助信息全部删除,所有的描述都改成了 Something happened。另外,他还清空了该组织的 membership,或者将所有成员全部转入隐私状态,不对外公开。

https://typeblog.net/life/2015/08/21/long-live-shadowsocks.html

8.21

传出 @clowwindy 被请去喝茶的消息

https://prinzeugen.net/pray-for-clowwindy/

他在 shadowsocks-windows 的 #305 issue 下回复道

I was invited for some tea yesterday. I won’t be able to continue developing this project.
同时开启了 twitter 的隐私保护,除先前关注者外无法查看动态

8.21 晚

@clowwindy 发布了 thanks. 后的推文,证明人没事

https://prinzeugen.net/thanks-clowwindy/

8.21 晚

shadowsocksR 作者 @breakwa11 表示会继续开发新版本,@clowwindy 对其致谢

https://prinzeugen.net/the-author-of-shadowsocks-rss-will-keep-developing-new-version/

8.22

@clowwindy 删除所有 github 上的 shadowsocks 仓库,之前在 twitter 上发布了删除的相关动态。

https://prinzeugen.net/clowwindy-has-removed-all-repository-of-shadowsocks-on-github/

同时 @clowwindy 明确表示不会继续开发 shadowsocks 项目

8.24

@breakwa11 发布 ShadowsocksR C# v3.4.0

https://prinzeugen.net/shadowsocksr-new-release/

8.25

@breakwa11 发布 SSR 更新计划

https://github.com/breakwa11/shadowsocks-rss/issues/35

其他关于 shadowsocks-R 以及 goAgent 的新闻窝就不贴了。


从实际情况上来看,Shadowsocks 没有办法离开去中心化的服务器。要么自己花钱买 VPS,要么用有人分享的账号,要么用有人提供的付费服务,他们各有所长,适合不同的人。所以作为开发者,保持中立,不偏袒其中任何一方,顺其自然发展下去是最好的吧。

很多人要么一窝蜂的支持,要么一窝蜂的反对,还要把它给封禁掉,大概这种心理鲁迅先生也曾批判过。我还记得当年极路由在 V2EX 被冤枉的时候,也是一边倒的说极路由窃取隐私。如果你们真的那么讨厌商业,那你们应该首先把你们的苹果设备给摔了,因为它就是商业社会巅峰造极的产物。我反对不喜欢一个东西就要拿出简单粗暴的制裁手段,正是这种习性成就了 GFW。

维护这个项目到现在大概总共回复过几千个问题,开始慢慢想清楚了一件事,为什么会存在 GFW。从这些提问可以看出,大部分人的自理能力都很差,只是等着别人帮他。特别是那些从 App Store 下载了 App 用着公共服务器的人,经常发来一封只有四个字的邮件:“不能用了?” 我觉得这是一个社会常识,花一分钟写的问题,不能期待一个毫无交情的陌生人花一个小时耐心地问你版本和操作步骤,模拟出你的环境来帮你分析解决。Windows 版加上 GFWList 功能以来,我反复呼吁给 GFWList 提交规则,但是一个月过去了竟然一个提交都没有。如果没有人做一点什么,它自己是不会更新的啊,没有人会义务地帮你打理这些。最近 net-speeder 又开始流行,害人害己。我觉得,政府无限的权力,都是大部分人自己放弃的。假货坑爹,让政府审核。孩子管不好,让政府关网吧。有人在微博骂我,让政府去删。房价太高,让政府去限购。我们的文化实在太独特,创造出了家长式威权政府,GFW 正是在这种背景下产生的,一个社会矛盾的终极调和器,最终生活不能自理的你每天做的每一件事情都要给政府审查一遍,以免伤害到其他同样生活不能自理的人。这是一个零和游戏,越和这样的用户打交道,越对未来持悲观态度,觉得 GFW 可能永远也不会消失,而墙内的这个局域网看起来还似乎生机勃勃的自成一体,真是让人绝望。


看你们吵的这么激烈,再澄清一下吧。

1. 当时几个版本内置的公共服务器流量爆了,打算把公共服务器给 @showfom 运营,并帮 @showfom 架设了服务。但没想到实际情况变成了用名气来进行宣传,也没想到这个服务会被用户当成 “官方”,所以为了避免这种误解,加上精力也不够,还是取消了合作,没有收一分钱。在 Twitter 发过澄清,没在 V2EX 发是一个疏忽。至于在代码里加红字警告? Are you kidding? 一个开源项目,代码本身应该是中立的,是不应该有立场的。

2. 为了避免今后出现类似的情况,在这里做一个声明:Shadowsocks 是一个由很多人参与的开源项目,它只是一个程序,一套算法。这些人是以自由的形式凭自己的兴趣参与这个项目的,不存在 “Shadowsocks 团队”,只存在贡献者。哪天现在的这些人不维护这些代码了,也会有其他人继续维护下去。至于 Shadowsocks 的使用,只要不违反开源授权,不会干涉。

3. 公共服务器还是免费,只是做了限速以免流量用超。OS X 版的公共服务器速度慢到不能用的时候直接关掉了。和 GFW 捉迷藏换 IP 的游戏,虽然已经半自动化,但一点也不好玩,你们明白 fqrouter 为什么要关了吧。

4. 从实际情况上来看,Shadowsocks 没有办法离开去中心化的服务器。要么自己花钱买 VPS,要么用有人分享的账号,要么用有人提供的付费服务,他们各有所长,适合不同的人。所以作为开发者,保持中立,不偏袒其中任何一方,顺其自然发展下去是最好的吧。

很多人要么一窝蜂的支持,要么一窝蜂的反对,还要把它给封禁掉,大概这种心理鲁迅先生也曾批判过。我还记得当年极路由在 V2EX 被冤枉的时候,也是一边倒的说极路由窃取隐私。如果你们真的那么讨厌商业,那你们应该首先把你们的苹果设备给摔了,因为它就是商业社会巅峰造极的产物。我反对不喜欢一个东西就要拿出简单粗暴的制裁手段,正是这种习性成就了 GFW。

维护这个项目到现在大概总共回复过几千个问题,开始慢慢想清楚了一件事,为什么会存在 GFW。从这些提问可以看出,大部分人的自理能力都很差,只是等着别人帮他。特别是那些从 App Store 下载了 App 用着公共服务器的人,经常发来一封只有四个字的邮件:“不能用了?” 我觉得这是一个社会常识,花一分钟写的问题,不能期待一个毫无交情的陌生人花一个小时耐心地问你版本和操作步骤,模拟出你的环境来帮你分析解决。Windows 版加上 GFWList 功能以来,我反复呼吁给 GFWList 提交规则,但是一个月过去了竟然一个提交都没有。如果没有人做一点什么,它自己是不会更新的啊,没有人会义务地帮你打理这些。最近 net-speeder 又开始流行,害人害己。我觉得,政府无限的权力,都是大部分人自己放弃的。假货坑爹,让政府审核。孩子管不好,让政府关网吧。有人在微博骂我,让政府去删。房价太高,让政府去限购。我们的文化实在太独特,创造出了家长式威权政府,GFW 正是在这种背景下产生的,一个社会矛盾的终极调和器,最终生活不能自理的你每天做的每一件事情都要给政府审查一遍,以免伤害到其他同样生活不能自理的人。这是一个零和游戏,越和这样的用户打交道,越对未来持悲观态度,觉得 GFW 可能永远也不会消失,而墙内的这个局域网看起来还似乎生机勃勃的自成一体,真是让人绝望。

 

顺便回答几个其它的问题吧。

1. 为什么项目的文档和网站是英文的?开源项目用英文来维护本来就是一个约定俗成的做法。网络审查和屏蔽不是一个国家的事情,而是一个世界性的问题。这些项目有很多其它国家的用户,也有一些国外的大牛作出过宝贵的贡献。

2. 参与的人只是凭兴趣做自己喜欢的事情,如果你的 issue 不像是一种思考和贡献,而更像是咨询客服,那被关掉了不要觉得惊讶。


那是自然的咯。这边加了什么功能,它马上扒过去合并了。它那边加了什么却不会贡献出来给其他人用,久而久之,不就是它那边功能更多了吗。

一直以来我什么都没说是因为我对他还有点希望,所以得给他一点面子不是。一开始我还只是纳闷他为什么不发 pull request,过了一段时间我才明白,这个世界上也有这一类的人。不尊重 GPL 就算了,把作者名字换成自己的,还在主页上加上官方的字样。为什么我们这边反而不说官方呢?因为我希望这个项目是没有官方的,人人都是贡献者。想不到这个社会人人都围着官转,人人都巴不得当官 。

既然他没有尊重别人劳动成果的意愿,那他那些不开源的理由想必也只是借口。说因为加了一些试验性功能会不兼容所以暂不开源。他弄了一个混淆 TCP 协议头功能,在界面上标注提升安全性,吸引用户打开,然后安装他自己的不兼容服务端。然而我分析了一下之后发现这个功能的设计就是想当然,用得多了以后反而会增加特征。如果你真有什么试验性功能,不是更应该开放出来让所有人帮你分析么,大家一起讨论么?在加密算法领域,只有经过足够多人和机构的审视的算法,才能视作是安全的,闭门造出来的怎么能用。。

当然啦,大部分用户才不会管这些,他们不会分析你是不是真的安全,也不会做道德判断,只要他们觉得好用就行。所以可以看到,这种环境下开源其实并没有什么优势,只不过为一些人抄袭提供了便利。这种环境下最后留下来的都是这些人。

我一直想象的那种大家一起来维护一个项目的景象始终没有出现,也没有出现的迹象。维护这个项目的过程中,遇到 @chenshaoju 这样主动分享的同学并不多。很多来汇报问题的人是以一种小白求大大解决问题,解决完就走人的方式来的,然而既不愿提供足够的信息,也不愿写一些自己尝试的过程供后人参考。互帮互助的气氛就是搞不起来。对比下国外的社区差好远。

最适合这个民族的其实是一群小白围着大大转,大大通过小白的夸奖获得自我满足,然后小白的吃喝拉撒都包给大大解决的模式。通过这个项目我感觉我已经彻底认识到这个民族的前面为什么会有一堵墙了。没有墙哪来的大大。所以到处都是什么附件回帖可见,等级多少用户组可见,一个论坛一个大大供小白跪舔,不需要政府造墙,网民也会自发造墙。这尼玛连做个翻墙软件都要造墙,真是令人叹为观止。这是一个造了几千年墙的保守的农耕民族,缺乏对别人的基本尊重,不愿意分享,喜欢遮遮掩掩,喜欢小圈子抱团,大概这些传统是改不掉了吧。

现在维护这些项目已经越来越让我感到无趣。我还是努力工作,好好养家,早日肉翻吧。


感谢作者 clowwindy 与 breakwa11 的奉献,并祝福两位作者现在一切安好。


顺便转载一下 clowwindy 作者推荐的资料

1. HTTP: The Definitive Guide
2. TCP/IP Illustrated
3. Stanford 的 Cryptography http://online.stanford.edu/course/cryptography

点赞