[关闭]
@jings 2014-12-31T19:54:51.000000Z 字数 4402 阅读 2586

如何获得可用的谷歌IP

这里我们使用强大的dig工具,trace参数是指从根服务器开始查询。dns是使用V2EX的dns://178.79.131.110 和谷歌dns://8.8.4.4.
接下来打开终端开始查询。
v2ex的dns(日本的linode搭建)查询到跟服务器就断了,说明它不是一个真正的dns服务器,而是返回其他正规dns服务器的结果。

  1. C:\Users\Jings>dig +trace google.com @178.79.131.110
  2. ; <<>> DiG 9.3.2 <<>> +trace google.com @178.79.131.110
  3. ; (1 server found)
  4. ;; global options: printcmd
  5. . 16252 IN NS a.root-servers.net.
  6. . 16252 IN NS b.root-servers.net.
  7. . 16252 IN NS c.root-servers.net.
  8. . 16252 IN NS d.root-servers.net.
  9. . 16252 IN NS e.root-servers.net.
  10. . 16252 IN NS f.root-servers.net.
  11. . 16252 IN NS g.root-servers.net.
  12. . 16252 IN NS h.root-servers.net.
  13. . 16252 IN NS i.root-servers.net.
  14. . 16252 IN NS j.root-servers.net.
  15. . 16252 IN NS k.root-servers.net.
  16. . 16252 IN NS l.root-servers.net.
  17. . 16252 IN NS m.root-servers.net.
  18. ;; Received 228 bytes from 178.79.131.110#53(178.79.131.110) in 1466 ms
  19. com. 172800 IN NS a.gtld-servers.net.
  20. com. 172800 IN NS b.gtld-servers.net.
  21. com. 172800 IN NS c.gtld-servers.net.
  22. com. 172800 IN NS d.gtld-servers.net.
  23. com. 172800 IN NS e.gtld-servers.net.
  24. com. 172800 IN NS f.gtld-servers.net.
  25. com. 172800 IN NS g.gtld-servers.net.
  26. com. 172800 IN NS h.gtld-servers.net.
  27. com. 172800 IN NS i.gtld-servers.net.
  28. com. 172800 IN NS j.gtld-servers.net.
  29. com. 172800 IN NS k.gtld-servers.net.
  30. com. 172800 IN NS l.gtld-servers.net.
  31. com. 172800 IN NS m.gtld-servers.net.
  32. ;; Received 488 bytes from 198.41.0.4#53(a.root-servers.net) in 1201 ms
  33. dig: couldn't get address for 'b.gtld-servers.net': not found

下面是正规的谷歌dns,返回的结果正好是四步下来(四个时间戳)。
这是属于dns挟持,而dns污染则是只能显示两步就给出一个错误的ip给用户。
但我们发现,最后的结果确实是谷歌服务器,但是无法访问。

  1. C:\Users\Jings>dig +trace google.com @8.8.4.4
  2. ; <<>> DiG 9.3.2 <<>> +trace google.com @8.8.4.4
  3. ; (1 server found)
  4. ;; global options: printcmd
  5. . 20741 IN NS g.root-servers.net.
  6. . 20741 IN NS m.root-servers.net.
  7. . 20741 IN NS d.root-servers.net.
  8. . 20741 IN NS f.root-servers.net.
  9. . 20741 IN NS c.root-servers.net.
  10. . 20741 IN NS l.root-servers.net.
  11. . 20741 IN NS a.root-servers.net.
  12. . 20741 IN NS k.root-servers.net.
  13. . 20741 IN NS e.root-servers.net.
  14. . 20741 IN NS j.root-servers.net.
  15. . 20741 IN NS h.root-servers.net.
  16. . 20741 IN NS b.root-servers.net.
  17. . 20741 IN NS i.root-servers.net.
  18. ;; Received 228 bytes from 8.8.4.4#53(8.8.4.4) in 249 ms
  19. com. 172800 IN NS d.gtld-servers.net.
  20. com. 172800 IN NS m.gtld-servers.net.
  21. com. 172800 IN NS a.gtld-servers.net.
  22. com. 172800 IN NS j.gtld-servers.net.
  23. com. 172800 IN NS h.gtld-servers.net.
  24. com. 172800 IN NS l.gtld-servers.net.
  25. com. 172800 IN NS i.gtld-servers.net.
  26. com. 172800 IN NS g.gtld-servers.net.
  27. com. 172800 IN NS k.gtld-servers.net.
  28. com. 172800 IN NS f.gtld-servers.net.
  29. com. 172800 IN NS c.gtld-servers.net.
  30. com. 172800 IN NS b.gtld-servers.net.
  31. com. 172800 IN NS e.gtld-servers.net.
  32. ;; Received 488 bytes from 192.112.36.4#53(g.root-servers.net) in 265 m
  33. google.com. 172800 IN NS ns2.google.com.
  34. google.com. 172800 IN NS ns1.google.com.
  35. google.com. 172800 IN NS ns3.google.com.
  36. google.com. 172800 IN NS ns4.google.com.
  37. ;; Received 164 bytes from 192.5.6.30#53(a.gtld-servers.net) in 265 ms
  38. google.com. 300 IN A 173.194.127.192
  39. google.com. 300 IN A 173.194.127.193
  40. google.com. 300 IN A 173.194.127.201
  41. google.com. 300 IN A 173.194.127.197
  42. google.com. 300 IN A 173.194.127.196
  43. google.com. 300 IN A 173.194.127.195
  44. google.com. 300 IN A 173.194.127.194
  45. google.com. 300 IN A 173.194.127.198
  46. google.com. 300 IN A 173.194.127.200
  47. google.com. 300 IN A 173.194.127.206
  48. google.com. 300 IN A 173.194.127.199
  49. ;; Received 204 bytes from 216.239.34.10#53(ns2.google.com) in 218 ms

那么我们怎么获得可用的谷歌ip地址呢?
这里还是使用dig,由于windows没有自带dig,但是有自带nslookup,nslookup也可以。

  1. C:\Users\Jings>dig google.com @178.79.131.110
  2. ; <<>> DiG 9.3.2 <<>> google.com @178.79.131.110
  3. ; (1 server found)
  4. ;; global options: printcmd
  5. ;; Got answer:
  6. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1962
  7. ;; flags: qr rd ra; QUERY: 1, ANSWER: 11, AUTHORITY: 0, ADDITIO
  8. ;; QUESTION SECTION:
  9. ;google.com. IN A
  10. ;; ANSWER SECTION:
  11. google.com. 105 IN A 74.125.230.229
  12. google.com. 105 IN A 74.125.230.238
  13. google.com. 105 IN A 74.125.230.232
  14. google.com. 105 IN A 74.125.230.227
  15. google.com. 105 IN A 74.125.230.228
  16. google.com. 105 IN A 74.125.230.231
  17. google.com. 105 IN A 74.125.230.230
  18. google.com. 105 IN A 74.125.230.226
  19. google.com. 105 IN A 74.125.230.233
  20. google.com. 105 IN A 74.125.230.224
  21. google.com. 105 IN A 74.125.230.225
  22. ;; Query time: 483 msec
  23. ;; SERVER: 178.79.131.110#53(178.79.131.110)
  24. ;; WHEN: Thu Jan 01 01:49:13 2015
  25. ;; MSG SIZE rcvd: 204
  1. C:\Users\Jings>nslookup -vc ipv4.google.com 178.79.131.110
  2. 服务器: UnKnown
  3. Address: 178.79.131.110
  4. 非权威应答:
  5. 名称: ipv4.l.google.com
  6. Addresses: 74.125.230.232
  7. 74.125.230.227
  8. 74.125.230.233
  9. 74.125.230.230
  10. 74.125.230.231
  11. 74.125.230.228
  12. 74.125.230.224
  13. 74.125.230.229
  14. 74.125.230.225
  15. 74.125.230.238
  16. 74.125.230.226
  17. Aliases: ipv4.google.com

那为什么V2EX的dns解析出来的网站反而能访问呢?
俗话说的好,树大招风,谷歌的dns在国内是被挟持的,而V2EX的dns只是通过过滤掉污染的ip再使用日本的网络以TCP协议的方式解析出可用ip,再把这些ip进行筛选而选出ping值最小的ip段。
搭建类似的dns只需使用如下开源工具搭建即可。
https://github.com/styx-hy/dnsmasq-chinadns

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注