2012年11月14日星期三

真与假,真的那么重要吗?


  经常看到有人跳出来说,某某消息是假的,某某图片是PS的,这都看不出来,傻B。我承认,说出以上的话,的确是会在脑子里生成一种优越感,而且很容易用“人云亦云的家伙”、“没脑子啊你”、“缺乏独立思考能力”等等理由继续攻击下去,痛快一番。
  其实,很多次我都想问这些优越人一句:真假重要吗?

  谣言之所以成为谣言,仅仅因为它与事实不符。事实是否存在,是贴不贴“谣言”标签的关键。但是,所述内容本身并不会因此有任何的改变。
  当大家还没去了解事实到底存不存在的时候,对于这个谣言的理解,就反映了直觉及经验性的判断。而这也正是某些谣言得以流传,而另一些谣言根本没人相信的原因。
  为什么会有这个判断,我认为这才是重要的。换句话说,大家愿意相信什么?

  基本上,大家更倾向于相信:

  • 符合日常生活经验的事情:比如铁球比木球掉落得快
  • 符合心中期许的事情:“本该如此嘛”
  • 更具有公信力的机构的宣称:政府说了……
  • 三观接近的描述:各种信徒
  • 可能会对自己有益和/或避免对自己有害的事情:转发中奖/买盐防辐射
  • 毫不关己、无关痛痒的事情:西安有个薛姓小孩捡了颗玻璃珠……
  • 具有更多论据(但真伪并不确定)的论述:图片好多!
  • 自己力所不能及的事情:到底有没有上帝?
  • 负负得正类的消息:所谓高级黑
  • ……

  这也就是所谓的“谣言的土壤”。在证据不足的情况下,为什么谣言会生根发芽,这就取决于它本身的“营养”。一个事实很容易修改成谣言,只要把其中的具体时间、地点、人物等关键因素进行置换就可以简单做到。优越人、证据人们可以轻易地把这些谣言驳成个筛子。但是这并不妨碍这个事情固有的性质。摸着自己的良心问问自己,如果它是真的,你有什么看法,以及你为什么会有这些看法。

  然后你会发现,即使是抢盐这种事情,都没有看上去那么简单。那么多人真的都吃了脑残片吗?如果有人告诉你,你正处于某种恶性重大疾病的威胁之下,得了那种病只有死路一条,死前身上插满管子,气管被切开口不能言,大小便失禁,生活不能自理,并且还会耗光你的所有家财,倒欠一大屁股债,你会妻离子散、家破人亡,DNA面临被淘汰的厄运,而能预防这个疾病的药物却很便宜……

  在最后,要提醒某些人一件更可怕(但不是没有过)的事:“狼来了”这句话,不只有放羊的小孩会讲。在我们这个科技的时代,狼,也会讲!

2012年11月7日星期三

荒野求生:如何寻找hosts的可用IP

hosts文件经常因为这样那样的原因而失效。有的时候的确是IP地址变了,也有的时候是因为伏地魔的封锁列表又更新了。不管是哪种原因,我们都得重新寻找一个可用的IP。

最简单的方法,当然是做伸手党——找别人要。不过这对于IP地址本身是一种风险。知道的人越多,影响就越大,于是食死徒也就越有可能找到它,并且干掉它。并且有的时候一个人孤立无援,联系不到别人的时候,总不能束手待毙啊?!所以,最好还是自己动手。


如何寻找漏网之鱼

有的公司或组织实力比较强,一个域名有好多台服务器。伏地魔其实很懒,并没有发现所有的服务器。我们如果能找到那些漏网之鱼,就可以继续让hosts再飞一会儿了。

找漏网之鱼,通常需要一些工具。
只会ping是不够的,ping的本意并不是用来作域名解析。ping一次只能拿到某个域名的一条A记录,但实际上出于负载均衡的角度考虑,大公司的域名通常都会有多个A记录。
换用高级一点的工具,例如nslookup,就能一次拿到多个IP地址了。要是污染很强,也可以抓包。多请求几次,手头的地址列表就比较全了。

还要提醒的一点是:DNS服务器一定要用可靠的境外货,比如Google的8.8.8.8/8.8.4.4。慢是慢一点,但至少不骗人。国内各种ISP提供的DNS,关键时刻会撒谎的。


如何验证找到的IP地址可用

因为还有别的找地址的方法,所以本来是想在后面谈这个问题的。但首先要验证地址是否可用,然后才会去考虑换一种方法,于是还是提前在这里来讲吧。

验证地址是否可用,首先就是ping。因为ping值和丢包率也是一个要重点考察的因素——如果你介意网速的话。接下来还要拿telnet看看443端口有没有被无理由地reset掉。
根据验证结果,大致有以下几种情况:

  1. 能ping通,443都通:恭喜你,十有八九是找到了。
  2. 能ping通,443不通:服务器就没开HTTPS服务。就算80端口可用,但因为会被关键词审查,可用性不高。
  3. 能ping通,443被封:这种就是属于被【蹲守】了,换别的吧。
  4. 不能ping通,443通:除了不容易测速,其它都还不错,而且隐蔽性更高一些,也就是说更不容易被干掉。
  5. 不能ping通,443不通:被IP黑洞了,换别的吧。

以上只是简单地测试连通性。如果连通性都有问题,那这个IP地址也就可以不用考虑了。但仅仅能连通,并不意味着可用。最终,还是得替换到自己已有的hosts里面去实地测试一下,才知道好使不好使。有的时候,新IP换上去会报HTTPS证书不对,但因为是同一个域名下的主机,强行确认后也许还能用。但有的就不行,无法通用,只能丢弃再找。


找到的地址都被封了怎么办

先别气馁。有的跨国公司的实力相当强,同一个域名针对不同的国家或地区会有不同的IP地址作为镜像。可以用搜索引擎,也可以借用网上某些在线域名解析服务,来找这些我们从本地可能无法获得的IP地址。比如Google在日本的IP,就可以拿来一用,速度也不慢。


还是找不到怎么办

好吧。我们承认光头塌鼻子蛇佬的手下也有认真负责的变态疯子:有可能某个域名无论国内还是国外的地址都被干掉了。但是,某些公司的实力实在是非常的强大(比如Google和Facebook)。它们部署了如此多的服务器,并且形成了【云】,以至于每台服务器都能够用来干其它服务器的事情。我们只要找到了某一台属于这个公司的服务器,不管它存放在哪个角落,目前被用来从事什么冷僻的工作,我们都可以让它来为我们服务。怎么样?有点儿范纽文用传感器来对抗易莫金人的感觉了吧?

根据服务的【云】化程度不同,可用的服务器数量也有所不同。Google可用的服务器就相当的多,Facebook就要少得多,Amazon我没有评估过,相信也不少。那么,怎么找到这些被藏起来的服务器呢?一般有下面这些办法,各位可以补充:

  • 解析其它域名:很多人觉得,找hosts就必须找指定域名的对应IP,否则就是“张冠李戴”用不上。对于普通网站,这个结论可能是对的。但对于架构于云服务之下的Web站点,其实大多数服务器都是通用的。比如plus.google.com的IP地址可能被封干净了,但随便找个www.google.com.au解析出来的地址,放在plus.google.com身上就能用。而魔头是难得去管别的大陆上的事情的。
  • Chrome的DNS记录:有一些已经广为人知的域名/主机名,被大统领盯得很紧。但新启用的、生僻的就未必。这些主机名的解析结果,都会在Chrome中留下记录。常常留意,或许就能发现Google新的主机IP(的地址段)。
  • 根据已知IP推算:这种规模的公司,服务器一放就是好几百台,而且为了方便管理,常常都放在一个机房,机柜挨着机柜。所以IP地址通常也是靠在一起的。如果我们知道了某个IP属于Google,那么完全可以对它附近的两、三个C段地址进行一下扫描,看看哪些能ping通,哪些443开着。这种时候,通常需要SuperScan(吐个槽:我觉得3.0比4.0好用)或者nmap之类的工具协助一下。


我猜我猜我猜猜猜

说了这许多,其实大概的思路都差不多:大胆地联想,大胆地猜,猜中了就赚了。
接下来讲一个综合运用的思路:

首先,如果我们从某个Google的已知域名,解析并(按照上面说的方法)推算出了一个以前没有公开在hosts中使用过的IP。那么,还可以尝试通过反向解析得出它的主机名。可能是个类似xg-in-g17.1e100.net(纯举例,非实际存在的主机名)之类的名称。用whois可以很简单地确认1e100.net这个域名是属于Google的。

然后,用nslookup也许会发现这个主机名有不止一个的IP地址。其中一个是我们知道的,另一些是我们不知道的。不知道的那些可以拿去直接验证,就算不可用,也可以拿去从事下一轮推算猜测嘛。

而且,这个主机名也是引人遐想的。有xg-in-g17.1e100.net,那可不可以有xg-in-g18.1e100.net?拿1e100.net去搜索引擎上搜一下,还会发现许多不同的主机名。

总之,继续发挥想象力,找出更多的IP来吧!但是尽量不要声张哦,要低调!