EAI_AGAIN
近日在Node开发过程中,屡次遇到如下问题:
1 | getaddrinfo EAI_AGAIN |
google过后,发现这是一个DNS相关的问题:
1 | EAI_AGAIN is a DNS lookup timed out error, means it is a network connectivity error or proxy related error. |
即 DNS 查找超时,意味着网络链接错误或者代理相关错误。
在 Ubuntu 16.04 系统下,可以手动设置域名服务器解决该问题。
在 /etc/resolv.conf 中添加一行:
123 | nameserver 8.8.8.8或nameserver 114.114.114.114 |
那么问题来了,114.114.114.114和8.8.8.8是什么?二者又有什么区别呢?
两者的联系
114.114.114.114和8.8.8.8,这两个IP地址都属于公共域名解析服务DNS其中的一部分,而且由于不是用于商业用途的,这两个DNS都很纯净,不用担心因ISP运营商导致的DNS劫持等问题,而且都是免费提供给用户使用的。
二者的区别
114.114.114.114
114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用,干净无广告,解析成功率相对来说更高,国内用户使用的比较多,而且速度相对快、稳定,是国内用户上网常用的DNS
8.8.8.8
8.8.8.8是GOOGLE公司提供的DNS,该地址是全球通用的,相对来说,更适合国外以及访问国外网站的用户使用
如何合理选择DNS
DNS对于网民来说,就跟灯塔和航海人员的道理是一样的,选择合理的DNS可以有效的帮助我们防止DNS劫持、提升上网速度等,那么,如何合理的选择DNS呢?
选择本地干净的DNS
目前世界上的大中型网站都是采用CDN做内容分发的,从而可以确保用户就近的接入、提升访问速度,不少的网站会使用DNS作为识别,因此,如果本人在北京,却选择了上海的DNS,就有可能会被网站认为是上海的用户而引导到上海的服务器上去。
不过所幸,现在的不少网站都根据IP地址来引导用户的。
选择安全无毒、免费的DNS
目前国内有不少的免费、安全而且无毒的DNS,常见的如百度提供的180.76.76.76、阿里提供的223.5.5.5和223.6.6.6、前文提到的114.114.114.114和8.8.8.8