DNS.EXE немедленно выделяет более 5000 портов

15

Эта команда очищает все открытые порты UDP DNS.EXE

net stop dns

После перезапуска службы DNS DNS.EXE выделяет более 5000 портов.

net start dns

Он не потребляет обширную память или процессор. Однако я заметил / встревожил много проблем с подключением http / smtp / pop3 к серверу из-за тайм-аутов. Я только что проверил и нашел тонны открытых портов DNS.EXE. Currports отображает локальные порты UDP от 50000 до 56000, локальные адреса: ::, а удаленные адреса пусты. Последние строки netstat - команда ниже:

UDP    [::]:55976             *:*   
UDP    [::]:55977             *:*   
UDP    [::]:55978             *:*     
UDP    [::]:55979             *:*     
UDP    [::]:55980             *:*     
UDP    [::]:55981             *:*     
UDP    [::]:55982             *:*    

Я не замечал эти порты раньше, так что я точно не знаю, нормально это или нет. Как вы думаете? Я перезапустил сервер, и мониторинг / оповещения НЕ продолжаются.

Облако Ним
источник

Ответы:

25

Это хорошо известный побочный эффект исправления, распространяемого по адресу MS08-037 , поскольку исправление предназначено для снижения предсказуемости портов, используемых для ответов DNS.

Вы можете ограничить количество используемых портов, определив меньший размер пула сокетов, как описано в этой статье :

Использование dnscmd.exe

  • Откройте командную строку с повышенными правами (Запуск от имени администратора ...)
  • Проблема dnscmd /Config /SocketPoolSize <value>где <value>число между 0 и 10000

Использование regedit.exe

  • Откройте regedit.exeи раскройте HKLMулей
  • Перейдите к SYSTEM\CurrentControlSet\services\DNS\Parameters
  • Если его еще нет, создайте новое DWORDзначение с именемSocketPoolSize
  • Установите десятичное значение от 0 до 10000
  • Перезапустите службу DNS-сервера: net stop dns && net start dns

Имейте в виду, что установка слишком низкого значения эффективно устраняет цель MS08-037

Если вы используете Windows Server 2008 R2 и просто хотите убедиться, что DNS не использует несколько отдельных конечных точек UDP, вы также можете указать список диапазонов портов, которые будут исключены из использования DNS:

dnscmd /Config /SocketPoolExcludedPortRanges <start>-<end>
Матиас Р. Ессен
источник
1
Команда для исключения определенных портов:, dnscmd /config /SocketPoolExcludedPortRanges [start]-[end]заменяя [start] и [end] на желаемый диапазон портов. Вы также можете отредактировать значение реестра ' SocketPoolExcludedPortRanges' вручную (находится в том же ключе реестра, что и упомянутый выше).
Харрисон Смит