Mur*_*iar 16 domain-name-system hosts
如果我在主机文件中有以下条目:
192.168.100.1 bugs
192.168.100.2 daffy.example.com
192.168.100.3 elmer.example.com.
Run Code Online (Sandbox Code Playgroud)
本地实用程序的 IP-> 名称解析尝试(我假设使用“gethostbyaddr”或 Windows 等效项)会尊重这些条目吗?这种行为是可配置的吗?它在操作系统之间有何不同?“主机”文件条目是否完全合格是否重要?
编辑:响应 Russell,我的测试 Linux 系统正在运行 RHEL 4。我的 /etc/nsswitch.conf 包含以下“主机”行:
hosts: files dns nis
Run Code Online (Sandbox Code Playgroud)
如果我按名称 ping 任何主机(例如 bugs、daffy),则前向解析工作正常。如果我通过 IP 地址跟踪路由其中的任何一个,反向查找将按预期运行。但是,如果我通过 IP ping 它们,ping 似乎无法解析它们的主机名。我的理解是,除非另有指示,否则 Linux ping 将始终尝试将 IP 解析为名称。为什么 traceroute 能够处理主机文件中的反向查找,而 ping 不能?
Rus*_*ing 16
通常,hosts 文件将用于正向和反向查找。在 Unix 系统上的偏好取决于 nsswitch.conf 文件中的条目顺序。
例如,下面的行将使主机文件覆盖 DNS。反转条目将使 DNS 覆盖主机文件。
主机:文件 dns
我不确定您是否可以在 Windows 系统上按偏好顺序进行调整。
我查看了 inetutils-20071127(安装在我的 Ubuntu 9.04 机器上的版本)中的 ping 源,如果您 ping IP 地址而不是主机名,源似乎启用了仅数字模式:
if (inet_aton(target, &whereto.sin_addr) == 1) {
主机名 = 目标;
如果(argc == 1)
选项 |= F_NUMERIC;
这可以解释为什么当您通过 IP 地址 ping 主机时没有进行反向查找。
我找到了更改注册表项以更改 Windows 上的名称解析顺序的参考:
http://forums11.itrc.hp.com/service/forums/questionanswer.do?threadId=963485
从那里引用:
默认情况下,Windows 按以下顺序检查名称解析提供程序:
本地、(NetBT 本地名称缓存)、主机、DNS、NetBT (WINS)。
您希望顺序为主机、DNS、本地、NetBT。
在下文中,较低的数字具有较高的优先级。
中的以下注册表项
HKEY_LOCAL_MACHINE\SYSTEM\CurentControlSet\ServicessTcpip\ServiceProvider
Run Code Online (Sandbox Code Playgroud)
需要修改。
DnsPriority= 0x3e8 (Decimal: 1000)
HostsPriority= 0x1f4 (Decimal: 500)
LocalPriority= 0x5dc (Decimal: 1500)
NetbtPriority= 0x7d1 (Decimal: 2001)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44142 次 |
| 最近记录: |