2015年6月9日星期二

荒野求生:把GGC转发搭建在非标准端口上

话先说在前面:这篇Blog,我没有,也不会去做任何的推广。能看到是缘分,尽量保持低调才能活得久一些。这不叫“自我审查”,这叫做对敌斗争策略
另外,本文只提供思路,不提供具体的操作方法(命令、脚本等)。想要知道的,可以自行搜索。也因此,本文可能不太适合技术小白。
好了,言归正传:

着GFW近日来将之前具备的GoogleSSL证书嗅探功能投入使用,hosts的生存周期日渐缩短。根据我自己监控下来的记录,新投入使用的hosts,大约最多只能存活不到两天。在自己的VPS上一旦开启了GGC转发,则48小时之内该IP必定会被黑洞路由掉。

从理论上,SSL证书嗅探可以在旁路上以异步方式排队进行,因此对GFW的性能方面压力并不大。以日为“结算”周期,集中地更新路由表,也可以避免频繁调整骨干路由设置导致的网络不稳。从各方面来说,hosts接下来都是在劫难逃了。

那么,真的没有办法了吗?hosts真的要“死”了吗?

※ ※ ※ ※ ※ ※ ※ ※ 低调的分割线 ※ ※ ※ ※ ※ ※ ※ ※

GFW这次的SSL证书嗅探,是针对443端口的。443端口,是HTTPS协议的标准端口。如果用hosts来翻墙,一定要与HTTPS配合,否则直接明文内容的话是通不过关键词审查的。所以,GFW这次盯住443端口,也是很有道理的。

那么,很自然地就想到,是不是避开了443端口,在别的端口上开启HTTPS服务,GFW就不进行嗅探了呢?这当然取决于GFW使用者,全端口嗅探当然也是可以做到的。不过目前还很幸运,答案是肯定的:GFW只检查443端口,其余的TCP端口被放过了。

接下来的问题就是:Google的服务器,控制权不在我们,如何让它把HTTPS服务开在非443端口上呢?去白宫请愿吗?

显然也不是。既然本文的标题叫做“荒野求生”,主要讲的就是“自己想办法”。Google的服务器我们控制不了,但GGC转发器我们可以自己架(在VPS上)。把端口转发开在非标准端口上,是我们完全可以做到的事情。

然而,另一个问题又来了。好了,我们现在有把HTTPS服务开在非标准端口上的Google服务器,但是,如何让我们的浏览器知道去这个非标准端口上访问HTTPS服务呢?

略有HTTP知识的,都知道在URL里面可以通过主机名后面加冒号来标注端口。我们当然可以这样写来访问这个非标准端口上的HTTPS服务:
https://www.google.com:12345
这样或许是能看到首页。但是,在使用Google服务的过程中,接下来会跳转到的那些URL地址,可能就不能如我们所愿了。另外,不管怎么说,这样用起来也太不自然了。有没有更好用的招数呢?

好吧,稍微想想,其实我们只要在本地再找一台机器,把这个端口转发再改回来,就可以了。像这样(懒得画图了):
浏览器 -> (:443)本地代理 -> (:12345)VPS -> Google服务器
本地再找一台机器,这会不会太麻烦了啊?
其实也不会。有翻墙路由器的朋友,看到这里大概就知道很简单了。没有翻墙路由器的呢?也很简单,在本地搭一个就好。Windows的话,用netsh在本地开一个端口转发,然后hosts指向loopback地址。这样就又可以用hosts了,GAE Proxy也可以用了,真好哎!

没有评论:

发表评论