DNS.EXE立即分配5000+端口


15

此命令通过DNS.EXE清除所有打开的UDP端口

net stop dns

重新启动DNS服务后,DNS.EXE分配5000+端口。

net start dns

它不占用大量内存或CPU。但是,由于超时,我注意到/警告到服务器的许多http / smtp / pop3连接问题。我只是检查并通过DNS.EXE找到了大量开放端口。Currports显示的UDP本地端口为50000至56000,本地地址为::,远程地址为空。netstat的最后几行-命令如下:

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

我以前没有注意到这些端口,所以不确定是否可以确定。你怎么看?我确实重新启动了服务器,并且监视/警报邮件没有继续。

Answers:


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],用所需的端口范围替换[开始]和[结束]。您也可以SocketPoolExcludedPortRanges手动编辑注册表值“ ”(位于与上述相同的注册表项中)。
哈里森·史密斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.