科学上网之路

2000年之前,说是互联网的伊甸园也不过分。早期上网的文化人居多,给自己起网名多走“风清扬”“轻舞飞扬”风格——我会告诉你当年网名叫“柳永”?——喷子也不猖獗,网友间还互相持有距离产生的美好想像。当时互联网的国际出口在北京只有两条,其中有一条在北京化工大学,那里上国外网站还是比较快的。拜教育网/公众网的割裂所赐,很早就走上了科学上网之路。

伊甸园时代的http代理

从IE还没到6.0的时候,http代理服务器就已经广泛使用。代理服务器存在的土壤,是互联网路由的不确定性。比如我想在对外经贸大学的图书馆,访问500米外西门对过的中国日报的网站——假设他们的服务器放在报社里——我从图书馆发的浏览请求,不是走这500米就能直接过去了,而是得先去北化的国内教育网路由根节点,然后上了北京公众网,发现对方服务器是电信的,作为北方网通的节点需要先去上海的网通电信中转路由器再走一遭,才能再回到中国日报的服务器上,而服务器返回的数据,还得绕这么大一个圈子再回去。这里的网络虽然是假设的,真实情况只会比这更复杂。

所以当时一个网页开个2分钟是很平常的事情,而代理,则是有人在北京设了一个能直达服务器的路由,连这个代理就直接到了目标服务器,不用绕这么大一圈了。所以当时有的代理能百倍地提升网速,网民们也不厌其烦地用“代理猎手”之类工具搜索可用代理,这些多为个人临时架设的代理,朝露一般能坚持半天就不错了。而且基本没有加密措施,所以,用代理发送的数据,基本都可以被截获。

所以,当第一代墙上线之后,这种代理无所遁形的数据顿时就被吃掉了一部分,只能从技术上寻求新方法了。

goAgent

本质上这还是一个http代理,放在了云服务器上,并且支持ssl,顿时就好用了。如影随形般墙的升级也来了,采用了动态封ip的新手段,于是在相当长的一段时间内,goAgent不停更新,就是在和墙赛跑。然而这种没有尽头的长跑,作为个人开发者是无法坚持的。在某次墙的进化支持解读ssl数据之后,goAgent就不怎么好使了。

关键原因:需要有一定技术基础,得先去google那里申请一个appid。然而,设置goAgent得先上google,上google又需要用goAgent做代理,鸡生蛋还是蛋生鸡的问题,这会儿显得如此忧伤……

VPN: pptp

以上都是http代理,只能用于浏览器。其他走TCP协议的应用,比如联机打个游戏什么的,是没法用的,所以VPN作为终极解决方案就映入眼帘。这会儿已经到了一般用户无法到达的地带,需要自行购买、架设服务器,而且VPN作为很多跨国公司的工作基础设施,直接掐掉政治上不太正确。一度相安无事了一段时间,然而——某天开始发现连不上了,看log发现在创建连接的握手过程中,很多不可辨认的数据帧被填了过来,关键帧又缺失。让人想起第一次分析connection return no data的情景,好吧——

VPN: ipsec/l2tp

pptp算是一种弱加密的协议,被破解是早晚问题。于是转向了强加密,作为工业标准的ipsec/l2tp。费了九牛二虎之力部署完毕,pptp带来的便利仿佛历历在目……但是,同样又是一段时间之后,连接也变得不稳定,发现诸多干扰数据,好在还能连上,勉强能用。不禁让我想到:在大数据年代,针对某协议格式,自主学习一下数据流是不是要掐断或者干扰,应该写个插件就行了吧?

shadowsocks

这个更绝,作者喝茶后把github上一切代码都删掉了。

ikev2以及其他

IKEv2协议使用了2048位加密的公私钥来进行加密,然而——“想要ssl证书?我们给他写一张!”Root CA国内也不是没有。纵观以上历史,技术层面的解决方案是取之不尽的,只要整出一种新协议,总可以占到先机;可只要有了固定的形态,任何协议总是可以被学习的。

费那么大劲儿,有啥好看的?

对于英语四级没过、玩游戏没中文版要给差评的网友来说,就算不拦着,也不会去看如同满屏蝌蚪的洋文。但只有出去看看,才知道美国也有Theranos的美女CEO搞商业欺诈,也有钉子户和州警互怼,自拍、显摆、社交网络焦虑和国内如出一辙。距离产生的浮华幻想,在高带宽带来的信息大潮冲刷下显出了本来面目。我认为,科学上网和学经济学目的一样:让自己不被轻易忽悠。

BTW: 我一直怀疑,台湾同胞们要么不上网,要么那边也拦着不让上这边的新浪,“吃不起茶叶蛋”这种言论也有人信?但了解到西方至今有不少人仍旧拿戴斗笠留辫子当作中国人通用脸谱的时候,我才明白——傲慢和偏见才是阻断一切的最大障碍。