エラーの原因は何ですか:getaddrinfo EAI_AGAIN?


133

私のサーバーはこれを今日投げました、これは私が今まで見たことのない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するのですか?ノードのどの部分ですか?別のドメインでこのエラーを再現するにはどうすればよいですか?

回答:


160

Firebase Cloud Functionsでこのエラーが発生する場合、これは無料枠の制限によるものです送信ネットワークはGoogleサービスにのみ許可されています)。

FlameまたはBlazeプランにアップグレードして、機能するようにします。

ここに画像の説明を入力してください


28
あなたは私に何時間もの研究を保存しました。功績
デビッドショパン

1
そうです、ゼロコストの従量制のブレイズプランにアップグレードされました(このスパークからの繰り越しの無料枠データ)
JerryGoyal

@NullPointer、解決策を詳しく説明できますか?それでもエラーが発生します `エラー:リクエストを処理できませんでした`
アラム

同じ問題があり、Blazeアカウントにアップグレードしましたが、問題は同じです。郵便屋さんを使ってみます。
デベンドラシン

106

EAI_AGAINは、DNSルックアップのタイムアウトエラーです。つまり、ネットワーク接続エラーまたはプロキシ関連のエラーです。

私の主な質問は、dns.jsは何をするのですか?

  • dns.jsは、ノードがドメインのIPアドレスを取得するために存在します(簡単に言えば)。

さらに詳しい情報:http : //www.codingdefined.com/2015/06/nodejs-error-errno-eaiagain.html


4

これは、hostsファイルのセットアップに関連する問題です。Ububtuのhotsファイルに次の行を追加します。/ etc / hosts

127.0.0.1   localhost

Windowsの場合:c:\ windows \ System32 \ drivers \ etc \ hosts

127.0.0.1   localhost

2

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,
   },
 };

... 問題を解決しました。



1

Dockerコンテナー内で操作されるGraphQL APIアプリケーションに簡単な更新を行った後、このエラー(ただし、異なるスタックトレース)が発生し始めました。なんらかの理由で、コンテナはAPIが使用しているバックエンドサービスを解決するのが困難でした。

私が構築していたDockerベースイメージ(ノード:13-アルパイン、偶然にも)に変更が加えられたかどうかを確認した後、再起動という最も古いコンピューターサイエンストリックを試すことにしました... Dockerを停止して起動しましたコンテナとすべてが正常に戻りました。

明らかに、これは根本的な問題に対する意味のある解決策ではありません。ウサギの穴を深く掘り下げることなく問題を解決したので、私はこれを投稿しています。


1

Dockerコンテナー内からこのエラーが発生した場合(例えばnpm install、アルペンコンテナー内で実行している場合)は、コンテナーが起動してからネットワークが変更されたことが原因である可能性があります。

これを解決するには、コンテナーを停止して再起動するだけです

docker-compose down
docker-compose up

ソース:https : //github.com/moby/moby/issues/32106#issuecomment-578725551


0

AWSとサーバーレスで同じ問題が発生しました。eu-central-1リージョンで試してみましたが、機能しなかったus-east-2ため、例のように変更する必要がありました。


-3

ローカルホストでも本番環境でもそれが得られない場合は、無料枠の制限のために計画をアップグレードする必要があります


-15

npmを最新に更新すると、この問題が修正されます。

npm install npm@latest

この問題は、ネットワーク接続に関連しています。したがって、一時的な場合があります。安定したインターネット接続では、この問題はほとんど観察されませんでした。


24
パッケージマネージャーを更新すると、パッケージマネージャーに関連しないエラーをどのように修正できますか?
FF_Dev 2017

3
@anerjanの防御では、実行中に発生する可能性があり、npm install更新を停止して再起動するのにかかった時間は、インターネットに接続していたと想像できます。
Rambatino
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.