我一直注意到任何 Windows 机器上的 nslookup 都很慢。
powershell 中的示例:
Measure-Command { nslookup superuser.com }
TotalMilliseconds : 1318.4933
在我尝试过的每台 Windows 计算机上,这通常需要 1.0 到 1.5 秒。
同时,即使在高级解释语言(例如 perl/python)中,我也可以启动整个解释器,运行脚本进行 DNS 查找,并更快地获得结果:
Measure-Command {perl dns.pl superuser.com}
TotalMilliseconds : 121.099
在我看来,nslookup 在启动时存在较大的延迟,因为如果使用交互模式,查找速度会快得多。
所以我想我的问题是:为什么 nslookup 启动需要这么长时间,有什么方法可以让它更快吗?无论是手动使用还是在脚本中使用,它的缓慢速度确实很烦人。
答案1
这归结为行为差异。
最大的问题是 nslookup 会从后缀列表中附加 DNS 后缀。根据配置中后缀的数量,这可能需要一段时间(每个后缀 3 秒)。
如果你想让它更快,你可以通过以下方式完全绕过后缀行为
- 查找 FQDN 而不是短名称
- 将 FQDN 设为绝对FQDN 而不是相对域名(添加尾随点)