目前为止,墙主要用了以下方法实施封禁。
- dns劫持。对于指定域名返回一个驴唇不对马嘴的ip。
- 域名关键词过滤。将需要封禁的域名加入到关键词列表中。
- ip封锁。对于主要的ip还真会搞这招。但是大网站一般都有负载均衡,ip数目众多,总会有几个没有被封锁。
这次对于facebook twitter等众多知名国外网站的封禁都同时使用以上两种,如果没有socks5或者vpn还真得下一番功夫,以下是实战记录。
dns劫持
主要原理是得知正确的ip地址,强行加入hosts文件避开dns解析。(另:指望opendns已经没啥作用了,因为发生欺骗的是“中间人”而不是dns服务器本身)
可是,操作上比较繁琐。目前还不知道有没有高人写个软件简化一下步骤。
1) 偷懒直接在fanfou twitter活着friendfeed之类的地方实时关键字搜索。今天运气不好,别人发布的记录只涵盖了一些,对于子域名(特别是保存css的子域名)并没有找到有价值的信息。
MONSTER ftxmusic: facebook IP 69.63.178.11 修改 hosts,添加 69.63.178.11 www.facebook.co.. http://bit.ly/rPfKx 约 3 小时前 通过 HelloTxt
至少www.facebook.com能上去了
2) 取得需要的子域名ip地址
对准主页面打开ff的tools-page info,然后到media,可以看到所有链接的地址。
邮件之后发现有个select all,这样就可以拷贝到剪贴板了。
之后获得所有不重复的子域名。我不会正则表达式,所以搞到excel里面倒腾了一下……
搞成一列,然后输入
=MID(RC1,SEARCH(”/”,RC1)+2,SEARCH(”/”,RC1,10)-SEARCH(”/”,RC1)-2)

再拉一个pivottable

之后一个一个通过web nslookup之类的工具解析出来。另外,本地执行nslookup是没用的。
我用的服务是https://www.zoneedit.com/lookup.html
***要点:一定要用https不然因为关键字照样会被墙的。
至此就可以把这些加入到宝贵的hosts记录中去了。重启浏览器,蓝天白云又回来了^o^
域名关键词过滤
目前最廉价的方法是使用https加密,而且这些网站一般都有提供https服务。网址中直接把http://改成https://即可。
当然更好的办法是用ff的插件greasemonkey的脚本secure connections on sites.(这个好拗口啊,囧)
greasemonkey https://addons.mozilla.org/en-US/firefox/addon/748
secure connections on sites http://userscripts.org/scripts/show/29090
当然别忘了把地址加到列表里面(http的需要 https的不需要 不然会死循环)

至此大功告成。由此可见翻墙真是体力活……