Мой сервер выбросил это сегодня, это ошибка 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)

I'm wondering if this is related to the DynDns DDOS attack which affected Shopify and many other services today. Here's an article about that.

Мой главный вопрос: что делает dns.js? В какую часть узла он входит? Как мне воссоздать эту ошибку с другим доменом?

Ответы (12)

EAI_AGAIN - ошибка истечения времени ожидания поиска DNS, означает, что это ошибка сетевого подключения или ошибка прокси-сервера.

Мой главный вопрос - что делает dns.js?

  • dns.js предназначен для узла, чтобы получить IP-адрес домена (вкратце).

Дополнительная информация: http://www.codingdefined.com/2015/06/nodejs-error-errno-eaiagain.html

Ошибка OP указывает хост (my-store.myshopify.com). Ошибка, с которой я столкнулся, одинакова во всех отношениях, за исключением того, что не указан домен.

Мое решение может помочь другим, которые здесь нарисованы под заголовком «Ошибка: getaddrinfo EAI_AGAIN»

Я столкнулся с ошибкой при попытке обслужить приложение NodeJs и VueJs с другой виртуальной машины, на которой изначально был разработан код.

Файл vue.config.js прочитал:

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

При обслуживании на исходной машине стартовый вывод будет:

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

Использование тех же настроек на виртуальной машине 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,
   },
 };

... решил проблему.

Включен Blaze, но он по-прежнему не работает?

Скорее всего вам нужно установить .env с правильного пути, require ('dotenv'). Config ({path: __dirname + './../.env'}) ; не будет работать (или любой другой путь). Просто поместите файл .env в каталог functions, из которого вы развертываете Firebase.

Я начал получать эту ошибку (правда, другую трассировку стека) после тривиального обновления моего приложения GraphQL API, которое работает внутри контейнера докеров. По какой-то причине у контейнера возникли проблемы с разрешением серверной службы, используемой API.

Пошарившись, чтобы увидеть, были ли внесены какие-либо изменения в базовый образ докера, из которого я собирал (кстати, узел: 13-alpine), я решил попробовать самый старый компьютерный трюк по перезагрузке ... Я остановился и запустил докер-контейнер, и все вернулось в норму.

Ясно, что это не является значимым решением основной проблемы - я просто публикую это, потому что это помогло мне прояснить проблему, не углубляясь в кроличьи норы.

I was having this issue on docker-compose. Turns out I forgot to add my custom isolated named network to my service which couldn't be found.

TL; DR; Убедитесь, что в вашем файле создания у вас есть пользовательские сети, определенные для обеих служб, которым необходимо взаимодействовать друг с другом.

Моя ошибка выглядела так: Ошибка: getaddrinfo EAI_AGAIN minio-service. Ошибка исходила из бэкэнда моего сервера при вызове minio-service с использованием minio-service hostname. Это говорит мне, что работающая служба minio-serviceне была доступна для работающей службы моего сервера. Я смог исправить эту проблему следующим образом: я изменил minio-service в моем docker-compose:

  • docker-compose.yml
версия: "3.8"

# ...

Сервисы:
  сервер:
    # ...
    сети:
      моя сеть:
    # ...
  мини-сервис:
    # ... (отсутствуют сети: раздел)

# ...

сети:
  моя сеть:

Чтобы включить мою индивидуальную изолированную именованную сеть, например:

  • docker-compose.yml
версия: "3.8"

# ...

Сервисы:
  сервер:
    # ...
    сети:
      моя сеть:
    # ...
  мини-сервис:
    # ...
    сети:
      моя сеть:
    # ...

# ...

сети:
  моя сеть:

Более подробную информацию о сети docker-compose можно найти здесь.

У меня была такая же проблема с AWS и Serverless. Я пробовал с областью eu-central-1, и это не сработало, поэтому мне пришлось изменить его на us-east-2 для примера.

Это проблема, связанная с настройкой файла hosts. Добавьте следующую строку в свой файл горячих точек В Ubuntu: / etc / hosts

127.0.0.1   localhost

В windows: c: \ windows \ System32 \ drivers \ etc \ hosts

127.0.0.1   localhost

В моем случае проблема заключалась в диапазоне распределения IP-адресов докерных сетей, см. этот пост для подробностей

Как объясняет отличный ответ xerq, это проблема тайм-аута DNS.

Я хотел бы предложить еще один возможный ответ для тех из вас, кто использует Подсистема Windows для Linux - в некоторых случаях что-то кажется неправильным в клиентской ОС после выхода Windows из спящего режима. Перезапуск ОС хоста устранит эти проблемы (вероятно, перезапуск службы WSL сделает то же самое).

Если вы получаете эту ошибку с Firebase Cloud Functions, это связано с ограничениями уровня бесплатного пользования (исходящая сеть разрешена только для служб Google).

Обновление до Flame или Blaze планирует, чтобы он работал.

enter image description here

Если вы получаете эту ошибку из контейнера докеров, например при запуске npm install внутри контейнера alpine причина может быть в том, что сеть изменилась с момента запуска контейнера.

Чтобы решить эту проблему, просто остановите и перезапустите контейнер

docker-compose down
docker-compose up

Источник: https://github.com/moby/moby/issues/32106#issuecomment-578725551

@ xerq указал правильно, вот еще ссылка http://www.codingdefined.com/2015/06/nodejs-error-errno-eaiagain.html

У меня та же ошибка, я решил ее, обновив файл "hosts", находящийся в этом месте в ОС Windows

C: \ Windows \ System32 \ drivers \ и т. Д.

Надеюсь, это поможет !!

2022 WebDevInsider