Lan Tian @ Blog

沃通你咋不上天呢!

刚在 V2EX 上看到,有人利用沃通证书签发系统的漏洞,成功签出了一张 GitHub 主域名的证书。

https://crt.sh/?id=29647048


Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            5d:8f:2b:91:ef:b8:dd:65:af:4c:c1:2b:15:ef:4b:6e
    Signature Algorithm: sha256WithRSAEncryption
        Issuer:
            commonName                = WoSign CA Free SSL Certificate G2
            organizationName          = WoSign CA Limited
            countryName               = CN
        Validity
            Not Before: Jun 10 05:42:44 2015 GMT
            Not After : Jun 10 06:03:35 2018 GMT
        Subject:
            commonName                = schrauger.github.io
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:e4:3b:a1:76:73:3c:b1:62:8d:53:6d:ef:a8:e9:
                    5b:9e:0e:15:63:e6:57:ac:cc:31:b3:48:2b:01:74:
                    ae:d8:7d:1c:6b:ed:2a:40:45:36:62:83:ac:d7:a5:
                    80:9c:21:88:dc:ec:4d:ae:35:5d:65:e6:95:ee:81:
                    7a:1f:b5:a7:e9:19:f8:7a:42:ff:dc:b4:71:63:ce:
                    3c:70:6f:89:54:af:57:de:27:bb:79:07:54:44:68:
                    ee:1c:7e:14:d9:eb:bc:4e:99:52:f6:b5:34:30:2c:
                    38:63:7b:95:8a:ea:54:7e:d5:4b:f0:1d:73:3b:03:
                    ea:12:2d:8a:3c:ea:f2:f1:04:5a:1b:8b:cf:3e:c9:
                    98:e6:2a:69:53:67:61:d0:6b:79:33:b6:08:3a:be:
                    dd:16:d6:02:ab:f2:6d:e0:02:be:f2:d9:13:6b:08:
                    b7:f2:de:fa:79:d1:4c:39:f8:bb:e5:18:89:f2:2b:
                    b6:df:59:54:9e:8a:48:0e:06:fb:eb:ad:e0:2a:b5:
                    0a:e8:51:45:bc:ac:51:65:cf:69:de:64:8f:30:e0:
                    d7:c6:c1:fd:30:1d:99:ea:7c:3d:d4:f6:bb:87:c9:
                    dd:f0:e4:74:4e:92:2d:27:5e:8c:fc:42:79:7f:59:
                    7c:f4:40:71:de:c3:b8:6e:a9:21:7e:8f:8c:7d:2c:
                    2c:85
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Key Usage: 
                Digital Signature, Key Encipherment
            X509v3 Extended Key Usage: 
                TLS Web Client Authentication, TLS Web Server Authentication
            X509v3 Basic Constraints: 
                CA:FALSE
            X509v3 Subject Key Identifier:
                F7:8A:D1:06:8A:4B:6F:1F:B2:BA:39:A6:03:D7:C7:61:E5:14:0C:05
            X509v3 Authority Key Identifier: 
                keyid:D2:A7:16:20:7C:AF:D9:95:9E:EB:43:0A:19:F2:E0:B9:74:0E:A8:C7

            Authority Information Access: 
                OCSP - URI:http://ocsp6.wosign.com/ca6/server1/free
                CA Issuers - URI:http://aia6.wosign.com/ca6.server1.free.cer

            X509v3 CRL Distribution Points: 

                Full Name:
                  URI:http://crls6.wosign.com/ca6-server1-free.crl

            X509v3 Subject Alternative Name: 
                DNS:schrauger.github.io
                DNS:schrauger.github.com
                DNS:github.io
                DNS:github.com
                DNS:www.github.io
            X509v3 Certificate Policies: 
                Policy: 2.23.140.1.2.1
                Policy: 1.3.6.1.4.1.36305.6.1.2.2.1
                  CPS: http://www.wosign.com/policy/

    Signature Algorithm: sha256WithRSAEncryption
         36:1f:74:a6:b4:98:b6:95:b3:7e:d1:c7:91:0c:5a:35:bd:05:
         00:3f:93:c2:1d:72:e0:b9:36:32:a3:d8:0d:91:53:f5:f9:f6:
         30:38:d3:06:02:7a:30:aa:90:38:aa:b7:aa:06:c9:7b:9e:4c:
         21:67:70:fd:c2:16:a3:c1:b0:73:ae:e5:b9:a6:e8:d7:f1:76:
         ce:a4:71:be:f0:1a:81:3c:ee:7a:8e:7a:1e:b7:5d:28:89:bf:
         62:c2:1d:75:47:b1:e5:51:95:48:f1:d5:1a:a4:71:09:c5:59:
         79:dc:04:88:3e:40:c2:3d:b6:92:ee:4d:67:61:7a:c8:42:32:
         e2:83:6a:0d:98:a9:69:71:12:f3:d7:f2:36:d5:7f:fa:b3:fd:
         1e:97:16:ab:81:08:d1:f5:67:11:7a:73:3d:5d:79:35:f5:57:
         56:ed:52:5d:86:af:07:5b:af:bd:62:87:c7:4e:c5:4f:59:fe:
         1c:c6:35:ef:36:3c:b7:43:e8:b6:b1:b8:d9:1e:a2:fc:7c:a9:
         f2:98:ff:3d:76:f2:75:0d:13:e4:f8:cd:f8:c5:f6:c0:60:06:
         9c:3a:13:e0:ff:86:5a:14:a6:6e:2e:e6:ca:10:01:c0:d9:34:
         a2:07:ab:0a:ba:19:79:c0:9c:b0:c5:97:c4:b4:64:12:c3:ce:
         e4:c1:fd:ae

A Javascript for time crowdfunding calculation

In the old Eastern country with mysterious magic power, a minute will pass every 59 seconds.

var toad = new Date();
var secondsDonated = Math.floor((toad.getTime() + 1368835200000) / 59000);
toad.setTime(toad.getTime() + secondsDonated * 1000);
toad.toLocaleString();

-1368835200 is the UNIX timestamp of his birthday, and the trailing zeroes are added because time is calculated in milliseconds in Javascript.

By donating your time, you are identical to a person living in   outside China.

You and each person has donated   seconds. That is   years,   days,   hours,   minutes and   seconds.

成龙将房祖名打飞5米:你TM在逗我?

据网易新闻 http://ent.163.com/14/0820/20/A449AUVV00031H2L.html ,成龙见到房祖名后怒打儿子,房祖名凌空飞5米。

把一个成年男人打出5米远?果然是武术世家啊!

我们先拿中学物理知识来计算一下吧,无视空气阻力。算法来自同学。

插图

如果忽略空气阻力,成龙一脚可以把足球踢出700米远。国足主教练干啥呢?赶快让成龙去踢球!

有空气阻力的情况下,300米远(估算)的距离也已经很牛了。而且此时成龙踢房祖名的那一脚力度也要更大。

其实我只想问一句:房祖名还好吗?

【已辟谣】SAE 域名忘记续费,被GoDaddy抢购

更新:SAE官方已经辟谣。http://weibo.com/1662047260/Bg8rZ0sGN 

插图

SAE是新浪的云计算平台,也是国内最早的云计算平台,一直运行得还算可以,但是最近他们犯了一个大错误:他们用来运行SAE上网站的域名sinaapp.com忘记了续费,已经被删除。

而且看起来他们一时半会儿无法拿回这个域名,因为国外的GoDaddy域名注册商在域名到期时迅速抢下了这个域名并续费到2020年。谁都不知道GoDaddy会为这个域名开出多少的价格。

$ whois sinaapp.com

Whois Server Version 2.0

Domain names in the .com and .net domains can now be registered
with many different competing registrars. Go to http://www.internic.net
for detailed information.

   Domain Name: SINAAPP.COM
   Registrar: GODADDY.COM, LLC
   Whois Server: whois.godaddy.com
   Referral URL: http://registrar.godaddy.com
   Name Server: NS09.DOMAINCONTROL.COM
   Name Server: NS10.DOMAINCONTROL.COM
   Status: clientDeleteProhibited
   Status: clientRenewProhibited
   Status: clientTransferProhibited
   Status: clientUpdateProhibited
   Updated Date: 28-jul-2014
   Creation Date: 28-jun-2009
   Expiration Date: 28-jun-2020

>>> Last update of whois database: Tue, 29 Jul 2014 09:52:11 UTC <<<

NOTICE: The expiration date displayed in this record is the date the
registrar's sponsorship of the domain name registration in the registry is
currently set to expire. This date does not necessarily reflect the expiration
date of the domain name registrant's agreement with the sponsoring
registrar.  Users may consult the sponsoring registrar's Whois database to
view the registrar's reported date of expiration for this registration.

TERMS OF USE: You are not authorized to access or query our Whois
database through the use of electronic processes that are high-volume and
automated except as reasonably necessary to register domain names or
modify existing registrations; the Data in VeriSign Global Registry
Services' ("VeriSign") Whois database is provided by VeriSign for
information purposes only, and to assist persons in obtaining information
about or related to a domain name registration record. VeriSign does not
guarantee its accuracy. By submitting a Whois query, you agree to abide
by the following terms of use: You agree that you may use this Data only
for lawful purposes and that under no circumstances will you use this Data
to: (1) allow, enable, or otherwise support the transmission of mass
unsolicited, commercial advertising or solicitations via e-mail, telephone,
or facsimile; or (2) enable high volume, automated, electronic processes
that apply to VeriSign (or its computer systems). The compilation,
repackaging, dissemination or other use of this Data is expressly
prohibited without the prior written consent of VeriSign. You agree not to
use electronic processes that are automated and high-volume to access or
query the Whois database except as reasonably necessary to register
domain names or modify existing registrations. VeriSign reserves the right
to restrict your access to the Whois database in its sole discretion to ensure
operational stability.  VeriSign may restrict or terminate your access to the
Whois database for failure to abide by these terms of use. VeriSign
reserves the right to modify these terms at any time.

The Registry database contains ONLY .COM, .NET, .EDU domains and
Registrars.
Domain Name: SINAAPP.COM
Registry Domain ID: 1560711931_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.godaddy.com
Registrar URL: http://www.godaddy.com
Update Date:
Creation Date: 2009-06-28 22:20:07
Registrar Registration Expiration Date: 2020-06-28 22:20:07
Registrar: GoDaddy.com, LLC
Registrar IANA ID: 146
Registrar Abuse Contact Email: abuse@godaddy.com
Registrar Abuse Contact Phone: +1.480-624-2505
Domain Status: clientTransferProhibited
Domain Status: clientUpdateProhibited
Domain Status: clientRenewProhibited
Domain Status: clientDeleteProhibited
Registry Registrant ID:
Registrant Name: Repossessed by Go Daddy
Registrant Organization: Repossessed by Go Daddy
Registrant Street: 14455 N Hayden Rd
Registrant Street: Suite 219
Registrant City: Scottsdale
Registrant State/Province: AZ
Registrant Postal Code: 85260
Registrant Country: United States
Registrant Phone: 480-505-8800
Registrant Phone Ext:
Registrant Fax: 480-505-8844
Registrant Fax Ext:
Registrant Email: repossesseddomain@godaddy.com
Registry Admin ID:
Admin Name: Repossessed by Go Daddy
Admin Organization: Repossessed by Go Daddy
Admin Street: 14455 N Hayden Rd
Admin Street: Suite 219
Admin City: Scottsdale
Admin State/Province: AZ
Admin Postal Code: 85260
Admin Country: United States
Admin Phone: 480-505-8800
Admin Phone Ext:
Admin Fax: 480-505-8844
Admin Fax Ext:
Admin Email: repossesseddomain@godaddy.com
Registry Tech ID:
Tech Name: Repossessed by Go Daddy
Tech Organization: Repossessed by Go Daddy
Tech Street: 14455 N Hayden Rd
Tech Street: Suite 219
Tech City: Scottsdale
Tech State/Province: AZ
Tech Postal Code: 85260
Tech Country: United States
Tech Phone: 480-505-8800
Tech Phone Ext:
Tech Fax: 480-505-8844
Tech Fax Ext:
Tech Email: repossesseddomain@godaddy.com
Name Server: NS09.DOMAINCONTROL.COM
Name Server: NS10.DOMAINCONTROL.COM
DNSSEC: unsigned
URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/
Last update of WHOIS database: 2014-07-29T09:00:00Z

The data contained in GoDaddy.com, LLC's WhoIs database,
while believed by the company to be reliable, is provided "as is"
with no guarantee or warranties regarding its accuracy.  This
information is provided for the sole purpose of assisting you
in obtaining information about domain name registration records.
Any use of this data for any other purpose is expressly forbidden without the prior written
permission of GoDaddy.com, LLC.  By submitting an inquiry,
you agree to these terms of usage and limitations of warranty.  In particular,
you agree not to use this data to allow, enable, or otherwise make possible,
dissemination or collection of this data, in part or in its entirety, for any
purpose, such as the transmission of unsolicited advertising and
and solicitations of any kind, including spam.  You further agree
not to use this data to enable high volume, automated or robotic electronic
processes designed to collect or compile this data for any purpose,
including mining this data for your own personal or commercial purposes.

Please note: the registrant of the domain name is specified
in the "registrant" section.  In most cases, GoDaddy.com, LLC
is not the registrant of domain names listed in this database.


验证码:不做死就不会死

众所周知,验证码是为了防止机器暴力破解密码或者发广告刷评论而产生的东西,一般的验证码都是由4位数字组成,加上一些干扰线,从而尽可能防止机器暴力破解。

问题是……这世界上还有一种逗比的验证码。图片来自 http://imbushuo.net/archives/58 。

插图

我只想说,这种验证码有什么用?随便写个程序都能把验证码直接抠出来填进去。据imbushuo所说:

What’s more, the verification process is completed in the client side…(later I found that I could bypass the CAPTCHA by sending the HTTP request directly.)

他居然自己写了个程序,没有回传验证码,就登陆成功了!

这个验证码果然够吊。然后我在微信上看到乌云漏洞平台的推送消息:

插图

乌云你赢了。

六三群英传——二中之巅 魔塔游戏反编译及彩蛋寻找

这几天晚上在上化学竞赛课。昨天的那节课,化学老师请来几个学长给我们传(jiang)授(jiang)经(gu)验(shi)。学长们扯着扯着,扯到了他们空闲时自己做的一款魔塔游戏——六三群英传——二中之巅。

插图

这么高大上的游戏,而且是杭二中背景的,我当然要拿来看一下彩蛋。比起开游戏玩,更方便的方法当然是反编译。

据学长自己说,游戏制作使用的是RPG Maker XP软件。这好办,下载来装上。插图

我刷新了一下文件夹,文件类型那里突然出现了一句话:

插图

等等。加密?我喜欢。这种不需要输密码就能玩的“加密”游戏,肯定有解密方法。

Google一下,找到了RGSSAD专用解包器:插图

首先看喜闻乐见的校史馆。

插图

右键查看入口处1899年的事件,也就是查看走到这里会显示的历史。

1895年,魔族访问魔塔,得到了传说中勇霸贤三者的力量。

于是魔族人开始培养精英,炼成勇霸贤三大魔头。三魔头滥用法力,横行四方,屠杀无辜。

终于,在1899年,一位神族后裔,美国人甘惠德,用他的知识和法术创造出两样神器——破魔光明剑和破魔光明盾。

他用二神器以一敌三,惊险地将三魔头击败并封印在杭州二中的现校址。

他担心魔头会复苏,因此为了保护神器,他创办了私立蕙兰中学。

为了方便携带,甘惠德将二神器变成两个很小的装置,分别称为万能钥匙和万能门卡。

1923年:

1923年,蕙兰中学增设了高中部,在这一历史事件中,封印三魔头的地方被废弃了。

二神器改称为校长剑和校长盾,在主神的见证下,校长剑和校长盾为历届校长所拥有,为后一任校长所继承。

校长的权利极大,校长剑作为钥匙可以打开学校的任何一间钥匙门,校长盾作为门卡可以打开学校的任何一间电子门。

1940年:

1940年,魔族族长摄天王入侵杭州,由于时任校长在退敌时滥用校长剑盾,二神器的能量耗尽。勇霸贤三魔头被释放!

情急之下,著名科学家、教育家竺可桢创办国立浙大附中,联合青年精英抗击勇霸贤三魔头。

但由于魔头的实力太强,国立浙大附中被迫转移。

1944年,魔族溃败,摄天王逃离杭州,三魔头也被封印在原来的地方。

校长剑盾的能量被主神回复,国立浙大附中受到神族奖励。

1951年:

1951年,蕙兰中学和国立浙大附中合并,改称浙江省杭州第二中学。

从此杭州二中开启了辉煌的篇章。

1953年,列为杭州市重点中学;1963年,成为浙江省教育厅直属实验中学;1978年,被定为浙江省重点中学……

1995年:

1994年,魔族复出,摄天王之子摄撒率领魔族四处征战。

1995年杭州二中被认定为浙江省一级重点中学,肩负抗击魔族的使命,杭州二中还在继续向前走!

2000年:

2000年,废弃的封印地上,杭州二中建成,原校址改为分校。

新校址的建成让魔族无法再召出勇霸贤三魔头,自此全校上下团结一心,共同守卫这片美丽家园。

研究完校史馆,研究下别的地方,比如贤者楼。

一楼刚进来有个来爷爷。

插图

老人:厉害啊,曾经贤者之章的持有者,不愧是神啊!据说这里刚刚发现一种代表贤者力量的不明物质,我想您这么厉害的人一定可以搞定吧。

你:太恶搞了,不过玩玩也不错。你是……

老人:哦,我原来是这个学校的老师,对世界的变化略知一二。

你:哦……原来是这样!等等,看你这霸气的样子,应该不是老师!

老人:这又从何说起?

你:看你这么老,应该是高一大名鼎鼎的来爷爷吧!

老人:厉害,答对了!要不要我的服务?

你:果然……

老人:在这里有很多种怪物,你的目标便是排除怪物的阻碍去见顶楼的头目,击败头目后,和这幢楼对应的人就会出现!

你:谢谢了,然后?

老人:烧瓶里的液体是增加生命的药,而钥匙则可以开对应的门。

老人:左上角的家伙是天上派来的神,他可以提升你的战斗力,但他很贪财,所以你需要给他越来越多的钱。

老人:初次见面,就送您一把黄钥匙吧!

你:谢来爷爷!

贤者楼顶楼的Boss叫八哥。

插图

你:终于找到你了!

八哥:哦,你好帅啊!

你:不要给我废话,你身上是不是藏了什么东西?

八哥:来来来,我要看看你有多少厉害!

(两人战斗)

八哥:哦厉害啊,果然是神!

你:快把东西交出来!

八哥:其实我的身上……带着一个瓶子,里面有不明物质,但它一到你手上,你就会把那个无辜的贤者召唤过来。我是为了守住这楼才私藏物品的。

你:我正要让贤者来,这幢楼已经充满了魔族的气息,我不能让他们再这样消耗这里!快放我走!

八哥:好的,入口已经打开了,我也应该闪了。

然后,勇者楼。

一楼如下。

插图

胖二哥:数学太难学!

你:难吗?

胖二哥:真不难?

你:还……好吧!

胖二哥:你果真厉害啊……好,这是勇者楼,我相信,勇者无惧!

你:……无惧……确实很难……

一楼左下角有个人叫菊花,可以给你100经验升一级。

三楼如下。

插图

(先到中间顶上那个人那里)

小辉辉:啊,是不是有人在背后弄你!

你:好象是的。

小辉辉:好!CCZL果然在这儿,我把他抓出来!

你:那太好了!

(然后到最中间)

你:原来是你!

CCZL:被你发现了!

你:你好不好意思的!

CCZL:就认准你了!

(战斗)

CCZL:哦,好痛……

你:为什么弄我?还有,怎么不见勇者来?

CCZL:哦我也不知道啊,你问我有什么用,也许班长有思路。还有刚才黑魔来找过我了,说他和班长谈过话了。

你:此话怎讲?

CCZL:班长说现在是非常时期,尽快寻找失散的同学,所以你看到同学一定要和他们说个话。

你:哦,理解了,谢谢。

(如果你进入了番外篇)

CCZL:哦,好痛……

你:为什么弄我?还有,怎么不见勇者来?

(画面狂震)

你:什么情况!!!啊……勇者!!!

(你切换到了另一个角色)

旁白:

二中之巅崩塌了……

躲在行政楼的普雷尔走了出来,满脸阴郁。

他为了他的自我已经苦苦思索的一个多月。

说好的挑战并没有如期而至,挑战者逃走了,而此事也就不了了之。

众人解散了,朗达应菊花的邀请回到了贤者楼。

普雷尔为了找朗达,也去了贤者楼。但他发现,贤者楼正发生着一系列变化……

霸者楼:

一楼:

插图

起点旁边那个人的对话:

神牛边:你也来这里啊,每次期末考都考这么好,虚不虚的!

你:你才虚咧。

神牛边:考满分就不要狡辩了!

你:你干什么……

神牛边:没事,厉害的神。我就小小地出一份力吧!

你:说!

神牛边:根据我的观察,魔族人习惯于复制魔塔怪物和我们同学的身体为自己服务。

神牛边:那些“同学”,比如琛哥、财神、合成题,都是真同学的复制品,长相相似,能力相似,但却没有记忆,因此你得杀掉他们维护人权。

神牛边:除此之外,这里还有一些怪物,来自魔塔,分为史莱姆、蝙蝠、法师、丧尸、战魂。

神牛边:每一族的怪物都有各自的特点。你需要针对各自的特点采取应对的措施。

神牛边:每幢楼的最深处,都可能会有没被抓起来的同学,先把他们打败后救出,再回去救被抓起来复制的同学。

你:哦,懂了。

神牛边:再见,厉害的神。

神牛边:等下,旁边就是校史馆我帮你开下门。

顶楼:

插图

你:又见到一个人!

黑魔:学数学的智商应该都很高,不是吗?

你:少侮辱我智商,快说,这究竟是怎么回事?

黑魔:只怕你永远也不会知道了……

你:那就不客气了!

(战斗)

黑魔:果然是搞数学竞赛的。

你:快说,到底是谁干的!

黑魔:要知道,勇霸贤三楼,都和学校的地形有关。

黑魔:刚才的贤者楼,代表水属性,就在二中碎心湖边,所以是音乐厅。

你:那么,这里呢?

黑魔:霸者楼,代表雷属性,需要强大的电力,所以除了实验楼,没有一处能提供这么多的电力。

你:然后?

黑魔:勇者楼,火属性,烧火做饭,自然是食堂了。

你:可恶,连食堂也被占领了。

黑魔:所以,要干这样的事情,不是一般的人能做得到的。此人必定对二中非常熟悉,即使是现在的魔族,也没有这个能力。

黑魔:贤者似乎很痛苦,因为他是分校的,所以并不了解。我不能再这样看着他受伤害。

嗯,看那边,霸者来了。这件事情我也不知道是怎么回事,那天总觉得有人跟着我,然后我就被打晕了……

你:这不怪你,我们都是受害者。

黑魔:再见了,我要向班长报告这件事。

选课系统坑爹

学校的抢课系统上12点开始选择社团,采用抢课制度,也就是名额有限,先到先得。

之前用过这个系统选选修课,所以提前登录好(此时页面没有课可以选),11:59:30开始连续刷新页面,等待课程出现。

12:00课程准时出现,我找到我要的社团直接点了下去。页面上瞬间弹出一个窗口:报名失败,有课表冲突!

仔细研究一下:社团时间都是周一、周二第八节课(当然实际不是这个时间),而以前的选修课是周一、周二、周四的七八两节和周三的五六两节。冲突了。。。

之后学校短信来,13:00重新开抢。

Pending...

用Pdnsd,给你的DNS解析缓存加速

你向浏览器里输入了一串网址后,浏览器并不能马上找到这个网站。它会先把网址发送给DNS服务器,DNS服务器再向其它服务器一层层查询,直到根服务器,查出网站的IP地址,浏览器才能进行连接。

因此,每次你打开一个新的网站,这个过程都要重复一次,速度比较慢。而且,天朝电信的DNS还会劫持你到114导航之类的地方。

所以,我们可以在自己电脑上搭建一个DNS服务器,用来加速浏览,并有抗解析干扰等附加效果。

在Linux和Mac下,Pdnsd就是一个这样的小软件。它通过向其它DNS服务器以TCP或UDP形式发出请求,查询到域名对应的IP,并进行缓存,以便达到加速目的。

1.安装

如果是Linux,以Ubuntu为例:

sudo apt-get install pdnsd
sudo gedit /etc/pdnsd.conf

如果是Mac,需要先安装Homebrew:

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
brew install pdnsd
sudo nano /Library/LaunchDaemons/pdnsd.plist

写入如下内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
      <key>Label</key>
      <string>pdnsd</string>
      <key>Program</key>
      <string>/usr/local/sbin/pdnsd</string>
      <key>RunAtLoad</key>
      <true/>
      <key>ServiceDescription</key>
      <string>pdnsd dns caching daemon</string>
  </dict>
</plist>
</pre>

然后在终端继续操作:

<pre class="prettypaint">
sudo nano /usr/local/etc/pdnsd.conf

操作完成后,应该打开了Pdnsd的配置文件,我们要进行修改。

2.开始配置DNS服务器。

首先把整个配置文件清空,当然有可能本来就是空的。然后我们要先进行基本设置。

global {
        perm_cache=16384;
        cache_dir="/var/pdnsd";
        run_as="nobody";
        server_ip=127.0.0.1;
        status_ctl=on;
        paranoid=off;
        # 优先TCP方式查询抗干扰
        query_method=tcp_udp;
        min_ttl=600;
        timeout=10;
}

在国内查询某些网站的IP地址时,会受到某些故障服务器的干扰,返回的IP地址会不对,导致打不开这个网站。但是这是对于基于UDP 53端口的DNS来说的,如果改用TCP查询,就不会受到干扰。而Win、Mac、Linux默认使用UDP 53端口查询。利用Pdnsd,可以把TCP的DNS转换到UDP来使用。

min_ttl是域名解析的最短生效时间,单位是秒。比如这个设置成600,那么你在第一次请求一个网站的IP之后600秒(10分钟)内,Pdnsd可以起到缓存效果。一般这个设置不宜过小也不宜过大,设置在600-3600之间较合理。

然后,我们就可以开始设置上级DNS服务器了。

国内最干净安全的DNS服务器应该是114DNS,它在各个省份都有节点,速度很快。因此我们可以先配置一个来使用。

server{
        # 优先走国内的114DNS解析
        label="114 DNS";
        ip=114.114.114.114;
        # 检测到干扰就跳过
        reject=4.36.66.178,8.7.198.45,37.61.54.158,46.82.174.68,59.24.3.173,
                64.33.88.161,64.33.99.47,64.66.163.251,65.104.202.252,65.160.219.113,
                66.45.252.237,72.14.205.99,72.14.205.104,78.16.49.15,93.46.8.89,
                128.121.126.139,159.106.121.75,169.132.13.103,192.67.198.6,202.106.1.2,
                202.181.7.85,203.98.7.65,203.161.230.171,207.12.88.98,208.56.31.43,
                209.36.73.33,209.145.54.50,209.220.30.174,211.94.66.147,213.169.251.35,
                216.221.188.182,216.234.179.13,243.185.187.39;
        edns_query=on;
        reject_policy=fail;
}

网民们发现那些故障服务器返回的IP有一个规律,就是属于上面那张表之中,而那些IP不指向任何已知网站,不会干扰正常访问。

114DNS由于同样受到干扰,因此从上游服务器查询时也会返回错误IP,我们予以过滤即可。

另一个著名的DNS是谷歌提供的,优点是十分干净,TCP下不会受到任何干扰。但是为什么我们不直接用谷歌DNS呢?

这是由于大型网站一般采用CDN,如果直接用谷歌DNS,部分网站会把你带到外国节点去,速度很慢。所以能用国内114DNS解析的就解析掉,受到故障影响再去谷歌DNS。

配置如下:

server {
        # Google DNS 基于TCP解析
        label="Google DNS";
        ip=8.8.8.8,8.8.4.4;
        # 检测到干扰就跳过
        reject=4.36.66.178,8.7.198.45,37.61.54.158,46.82.174.68,59.24.3.173,
                64.33.88.161,64.33.99.47,64.66.163.251,65.104.202.252,65.160.219.113,
                66.45.252.237,72.14.205.99,72.14.205.104,78.16.49.15,93.46.8.89,
                128.121.126.139,159.106.121.75,169.132.13.103,192.67.198.6,202.106.1.2,
                202.181.7.85,203.98.7.65,203.161.230.171,207.12.88.98,208.56.31.43,
                209.36.73.33,209.145.54.50,209.220.30.174,211.94.66.147,213.169.251.35,
                216.221.188.182,216.234.179.13,243.185.187.39;
        edns_query=on;
        reject_policy=fail;
}

但是我们无法确定故障今后会不会波及谷歌DNS,因此还是予以过滤。对于接下来的DNS同理。

下一个著名的是V2EX DNS,如果你把google.com敲成google.cmo,它能自动帮你纠正,或者直接把你带到谷歌进行搜索。由于它支持非标准端口,所以一般也不会受到故障影响。

server {
        # V2EX DNS 进行域名拼写纠正
        label="V2EX DNS";
        ip=199.91.73.222,178.79.131.110;
        port=3389;
        # 检测到干扰就跳过
        reject=4.36.66.178,8.7.198.45,37.61.54.158,46.82.174.68,59.24.3.173,
                64.33.88.161,64.33.99.47,64.66.163.251,65.104.202.252,65.160.219.113,
                66.45.252.237,72.14.205.99,72.14.205.104,78.16.49.15,93.46.8.89,
                128.121.126.139,159.106.121.75,169.132.13.103,192.67.198.6,202.106.1.2,
                202.181.7.85,203.98.7.65,203.161.230.171,207.12.88.98,208.56.31.43,
                209.36.73.33,209.145.54.50,209.220.30.174,211.94.66.147,213.169.251.35,
                216.221.188.182,216.234.179.13,243.185.187.39;
        edns_query=on;
        reject_policy=fail;
}

然后是OpenDNS,通过5353端口,也不会受到影响。

server {
        # OpenDNS 走5353端口反干扰
        label="OpenDNS";
        ip=208.67.222.222,208.67.220.220;
        port=5353;
        # 检测到干扰就跳过
        reject=4.36.66.178,8.7.198.45,37.61.54.158,46.82.174.68,59.24.3.173,
                64.33.88.161,64.33.99.47,64.66.163.251,65.104.202.252,65.160.219.113,
                66.45.252.237,72.14.205.99,72.14.205.104,78.16.49.15,93.46.8.89,
                128.121.126.139,159.106.121.75,169.132.13.103,192.67.198.6,202.106.1.2,
                202.181.7.85,203.98.7.65,203.161.230.171,207.12.88.98,208.56.31.43,
                209.36.73.33,209.145.54.50,209.220.30.174,211.94.66.147,213.169.251.35,
                216.221.188.182,216.234.179.13,243.185.187.39,
                # 拒绝OpenDNS域名导航
                208.69.32.0/24,208.69.34.0/24,208.67.219.0/24,208.67.217.0/24,
                208.67.216.0/24,67.215.82.0/24,67.215.65.0/24;
        edns_query=on;
        reject_policy=fail;
}

NameCoin大家听说过没?这是和BitCoin差不多的东西,大家可以自己搜索。使用NameCoin可以注册.BIT域名,但是由于属于私下组织的域名,DNS根服务器不认可,不给你解析。因此,有些网友就自己搭建了BIT域名的根服务器。

但是由于BIT域名不多(几乎没人用),这个属于可选项目,不对其它域名产生任何影响。另外,如果要添加,这个就要直接放在第一块global的下面,放在别的地方是不行的。

server {
        # BIT域名专用服务器
        label="Bit DNS";
        ip=192.249.59.89,192.184.89.74,64.31.48.60,192.3.27.117;
        # 检测到干扰就跳过
        reject=4.36.66.178,8.7.198.45,37.61.54.158,46.82.174.68,59.24.3.173,
                64.33.88.161,64.33.99.47,64.66.163.251,65.104.202.252,65.160.219.113,
                66.45.252.237,72.14.205.99,72.14.205.104,78.16.49.15,93.46.8.89,
                128.121.126.139,159.106.121.75,169.132.13.103,192.67.198.6,202.106.1.2,
                202.181.7.85,203.98.7.65,203.161.230.171,207.12.88.98,208.56.31.43,
                209.36.73.33,209.145.54.50,209.220.30.174,211.94.66.147,213.169.251.35,
                216.221.188.182,216.234.179.13,243.185.187.39;
        reject_policy=fail;
        policy=excluded;
        include=".bit";
}

但是如果以上服务器全挂掉了,我们就干脆自己去查询根服务器吧。

server {
        # 实在不行就走根服务器查询
        label="Root DNS Servers";
        root_server=discover;
        randomize_servers=on;
        ip=198.41.0.4,192.228.79.201,192.33.4.12,199.7.91.13,192.203.230.10,
                192.5.5.241,192.112.36.4,128.63.2.53,192.36.148.17,192.58.128.30,
                193.0.14.129,199.7.83.42,202.12.27.33;
        # 检测到欺骗就跳过
        reject=4.36.66.178,8.7.198.45,37.61.54.158,46.82.174.68,59.24.3.173,
                64.33.88.161,64.33.99.47,64.66.163.251,65.104.202.252,65.160.219.113,
                66.45.252.237,72.14.205.99,72.14.205.104,78.16.49.15,93.46.8.89,
                128.121.126.139,159.106.121.75,169.132.13.103,192.67.198.6,202.106.1.2,
                202.181.7.85,203.98.7.65,203.161.230.171,207.12.88.98,208.56.31.43,
                209.36.73.33,209.145.54.50,209.220.30.174,211.94.66.147,213.169.251.35,
                216.221.188.182,216.234.179.13,243.185.187.39;
        edns_query=on;
        reject_policy=fail;
}

然后再加一段本地解析,诸如localhost之类的:

source {
        owner=localhost;
        file="/etc/hosts";
}

rr {
        name=localhost;
        reverse=on;
        a=127.0.0.1;
        owner=localhost;
        soa=localhost,root.localhost,42,86400,900,86400,86400;
}

这样,我们的配置就完成了,然后重启电脑,把电脑的DNS设置改成127.0.0.1就可以了。

附完整配置文件:(赠送HiNet备用解析)

global {
	perm_cache=16384;
	cache_dir="/var/pdnsd";
	run_as="nobody";
	server_ip=127.0.0.1;
	status_ctl=on;
  	paranoid=off;
	# 优先TCP方式查询抗干扰
	query_method=tcp_udp;
	min_ttl=600;
	timeout=10;
}

server {
	# BIT域名专用服务器
	label="Bit DNS";
	ip=192.249.59.89,192.184.89.74,64.31.48.60,192.3.27.117;
	# 检测到干扰就跳过
	reject=4.36.66.178,8.7.198.45,37.61.54.158,46.82.174.68,59.24.3.173,
		64.33.88.161,64.33.99.47,64.66.163.251,65.104.202.252,65.160.219.113,
		66.45.252.237,72.14.205.99,72.14.205.104,78.16.49.15,93.46.8.89,
		128.121.126.139,159.106.121.75,169.132.13.103,192.67.198.6,202.106.1.2,
		202.181.7.85,203.98.7.65,203.161.230.171,207.12.88.98,208.56.31.43,
		209.36.73.33,209.145.54.50,209.220.30.174,211.94.66.147,213.169.251.35,
		216.221.188.182,216.234.179.13,243.185.187.39;
	reject_policy=fail;
	policy=excluded;
	include=".bit";
}


server{
	# 优先走国内的114DNS解析
	label="114 DNS";
	ip=114.114.114.114;
	# 检测到干扰就跳过
	reject=4.36.66.178,8.7.198.45,37.61.54.158,46.82.174.68,59.24.3.173,
		64.33.88.161,64.33.99.47,64.66.163.251,65.104.202.252,65.160.219.113,
		66.45.252.237,72.14.205.99,72.14.205.104,78.16.49.15,93.46.8.89,
		128.121.126.139,159.106.121.75,169.132.13.103,192.67.198.6,202.106.1.2,
		202.181.7.85,203.98.7.65,203.161.230.171,207.12.88.98,208.56.31.43,
		209.36.73.33,209.145.54.50,209.220.30.174,211.94.66.147,213.169.251.35,
		216.221.188.182,216.234.179.13,243.185.187.39;
	edns_query=on;
	reject_policy=fail;
}

server {
	# Google DNS 基于TCP解析
	label="Google DNS";
	ip=8.8.8.8,8.8.4.4;
	# 检测到干扰就跳过
	reject=4.36.66.178,8.7.198.45,37.61.54.158,46.82.174.68,59.24.3.173,
		64.33.88.161,64.33.99.47,64.66.163.251,65.104.202.252,65.160.219.113,
		66.45.252.237,72.14.205.99,72.14.205.104,78.16.49.15,93.46.8.89,
		128.121.126.139,159.106.121.75,169.132.13.103,192.67.198.6,202.106.1.2,
		202.181.7.85,203.98.7.65,203.161.230.171,207.12.88.98,208.56.31.43,
		209.36.73.33,209.145.54.50,209.220.30.174,211.94.66.147,213.169.251.35,
		216.221.188.182,216.234.179.13,243.185.187.39;
	edns_query=on;
	reject_policy=fail;
}

server {
	# OpenDNS 走5353端口反干扰
	label="OpenDNS";
	ip=208.67.222.222,208.67.220.220;
	port=5353;
	# 检测到干扰就跳过
	reject=4.36.66.178,8.7.198.45,37.61.54.158,46.82.174.68,59.24.3.173,
		64.33.88.161,64.33.99.47,64.66.163.251,65.104.202.252,65.160.219.113,
		66.45.252.237,72.14.205.99,72.14.205.104,78.16.49.15,93.46.8.89,
		128.121.126.139,159.106.121.75,169.132.13.103,192.67.198.6,202.106.1.2,
		202.181.7.85,203.98.7.65,203.161.230.171,207.12.88.98,208.56.31.43,
		209.36.73.33,209.145.54.50,209.220.30.174,211.94.66.147,213.169.251.35,
		216.221.188.182,216.234.179.13,243.185.187.39,
		# 拒绝OpenDNS域名导航
		208.69.32.0/24,208.69.34.0/24,208.67.219.0/24,208.67.217.0/24,
		208.67.216.0/24,67.215.82.0/24,67.215.65.0/24;
	edns_query=on;
	reject_policy=fail;
}

server {
	# V2EX DNS 进行域名拼写纠正
	label="V2EX DNS";
	ip=199.91.73.222,178.79.131.110;
	port=3389;
	# 检测到干扰就跳过
	reject=4.36.66.178,8.7.198.45,37.61.54.158,46.82.174.68,59.24.3.173,
		64.33.88.161,64.33.99.47,64.66.163.251,65.104.202.252,65.160.219.113,
		66.45.252.237,72.14.205.99,72.14.205.104,78.16.49.15,93.46.8.89,
		128.121.126.139,159.106.121.75,169.132.13.103,192.67.198.6,202.106.1.2,
		202.181.7.85,203.98.7.65,203.161.230.171,207.12.88.98,208.56.31.43,
		209.36.73.33,209.145.54.50,209.220.30.174,211.94.66.147,213.169.251.35,
		216.221.188.182,216.234.179.13,243.185.187.39;
	edns_query=on;
	reject_policy=fail;
}

server {
	# 台湾HiNet DNS备用
	label="HiNet DNS";
	ip=168.95.1.1,168.95.192.1,168.95.192.2;
	# 检测到干扰就跳过
	reject=4.36.66.178,8.7.198.45,37.61.54.158,46.82.174.68,59.24.3.173,
		64.33.88.161,64.33.99.47,64.66.163.251,65.104.202.252,65.160.219.113,
		66.45.252.237,72.14.205.99,72.14.205.104,78.16.49.15,93.46.8.89,
		128.121.126.139,159.106.121.75,169.132.13.103,192.67.198.6,202.106.1.2,
		202.181.7.85,203.98.7.65,203.161.230.171,207.12.88.98,208.56.31.43,
		209.36.73.33,209.145.54.50,209.220.30.174,211.94.66.147,213.169.251.35,
		216.221.188.182,216.234.179.13,243.185.187.39;
	edns_query=on;
	reject_policy=fail;
}

server {
	# 实在不行就走根服务器查询
	label="Root DNS Servers";
	root_server=discover;
	randomize_servers=on;
	ip=198.41.0.4,192.228.79.201,192.33.4.12,199.7.91.13,192.203.230.10,
		192.5.5.241,192.112.36.4,128.63.2.53,192.36.148.17,192.58.128.30,
		193.0.14.129,199.7.83.42,202.12.27.33;
	# 检测到干扰就跳过
	reject=4.36.66.178,8.7.198.45,37.61.54.158,46.82.174.68,59.24.3.173,
		64.33.88.161,64.33.99.47,64.66.163.251,65.104.202.252,65.160.219.113,
		66.45.252.237,72.14.205.99,72.14.205.104,78.16.49.15,93.46.8.89,
		128.121.126.139,159.106.121.75,169.132.13.103,192.67.198.6,202.106.1.2,
		202.181.7.85,203.98.7.65,203.161.230.171,207.12.88.98,208.56.31.43,
		209.36.73.33,209.145.54.50,209.220.30.174,211.94.66.147,213.169.251.35,
		216.221.188.182,216.234.179.13,243.185.187.39;
	edns_query=on;
	reject_policy=fail;
}

source {
	owner=localhost;
	file="/etc/hosts";
}

rr {
	name=localhost;
	reverse=on;
	a=127.0.0.1;
	owner=localhost;
	soa=localhost,root.localhost,42,86400,900,86400,86400;
}