错误的来源是什么:getaddrinfo EAI_AGAIN?

IT技术 javascript node.js error-handling dns shopify
2021-01-14 20:21:32

我的服务器今天抛出了这个,这是我以前从未见过的 Node.js 错误:

Error: getaddrinfo EAI_AGAIN my-store.myshopify.com:443
    at Object.exports._errnoException (util.js:870:11)
    at errnoException (dns.js:32:15)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:78:26)

我想知道这是否与影响 Shopify 和许多其他服务的 DynDns DDOS 攻击有关。这是一篇关于此的文章。

我的主要问题是做dns.js什么?它是节点的哪一部分?如何使用不同的域重新创建此错误?

6个回答

如果 Firebase Cloud Functions 出现此错误,这是由于免费套餐的限制(出站网络仅允许 Google 服务)。

升级到FlameBlaze计划以使其正常工作。

在此处输入图片说明

你能@NullPointer,详细说明解决方案,我仍然收到错误`错误:无法处理请求`
2021-03-18 20:21:32
我有同样的问题并已升级到 Blaze 帐户,但问题仍然相同。我正在尝试使用邮递员。
2021-03-26 20:21:32
出于某种原因,我在尝试通过 访问我的 SMTP 凭据时遇到了这个问题process.env.SOMETHING,即使Blaze启用了。
2021-03-28 20:21:32
没错,刚刚升级为按使用付费的 blaze 计划,零成本(此结转免费层数据来自 spark)
2021-04-01 20:21:32
您刚刚为我节省了数小时的研究时间。点赞
2021-04-02 20:21:32

EAI_AGAIN 是 DNS 查找超时错误,表示它是网络连接错误或代理相关错误。

我的主要问题是 dns.js 做什么?

  • dns.js 用于节点获取域的 ip 地址(简而言之)。

更多信息:http : //www.codingdefined.com/2015/06/nodejs-error-errno-eaiagain.html

如果您从 docker 容器内收到此错误,例如在npm installalpine 容器内运行时,原因可能是自容器启动以来网络发生了变化。

要解决这个问题,只需停止并重新启动容器

docker-compose down
docker-compose up

来源:https : //github.com/moby/moby/issues/32106#issuecomment-578725551

我有一个可疑的问题,即在主机上重置了网络,然后容器似乎出现了 DNS 错误。有什么方法可以配置容器在停止它们的情况下存活下来吗?
2021-03-21 20:21:32

正如xerq 的出色回答所解释的那样,这是一个 DNS 超时问题。

我想为那些使用适用于 Linux 的 Windows 子系统的人提供另一个可能的答案- 在某些情况下,在 Windows 从睡眠状态恢复后,客户端操作系统中的某些内容似乎出现了问题重新启动主机操作系统将解决这些问题(也可能重新启动 WSL 服务也会这样做)。

我就是这样。重启解决了这个问题!
2021-04-09 20:21:32

OP 的错误指定了一个主机 ( my-store.myshopify.com)。我遇到的错误在所有方面都相同,只是没有指定域。

我的解决方案可能会帮助那些被标题“错误:getaddrinfo EAI_AGAIN”吸引到这里的人

我在尝试从与最初开发代码的位置不同的 VM 提供 NodeJs 和 VueJs 应用程序时遇到了错误。

该文件vue.config.js读取:

 module.exports = {
   devServer: {
     host: 'tstvm01',
     port: 3030,
   },
 };

在原始机器上提供服务时,启动输出为:

App running at:
- Local:   http://tstvm01:3030/ 
- Network: http://tstvm01:3030/

在 VM 上使用相同的设置tstvm07给我带来了与 OP 描述的非常相似的错误:

 INFO  Starting development server...
 10% building modules 1/1 modules 0 activeevents.js:183                              
      throw er; // Unhandled 'error' event
      ^

Error: getaddrinfo EAI_AGAIN
    at Object._errnoException (util.js:1022:11)
    at errnoException (dns.js:55:15)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)

如果还不是很明显,请更改vue.config.js为阅读...

 module.exports = {
   devServer: {
     host: 'tstvm07',
     port: 3030,
   },
 };

...解决了问题。