ter*_*cow 16 hostname hosts lan dnsmasq
有点卡在这里。
我有 2 台机器无法解析 LAN 主机名,除非 /etc/hosts 中有特定条目
但是局域网上的其他机器可以解析主机名。
我的局域网:
2 x NAS(也可以正确解析所有名称)
1 x Ubuntu Server 12.04(这不会解析本地主机名,除非它们被输入到 /etc/hosts)
如何让最后 2 个使用路由器上的 DNSMasq 条目?每台机器都设置为使用路由器作为名称服务器,并且所有单元都正确解析外部地址。
谢谢。
更多信息:
在服务器上,如果我 ping 另一台 PC (wstation)
$ ping wstation
PING wstation.local.domain (x.x.x.x)
Run Code Online (Sandbox Code Playgroud)
如果我然后附加.local
$ ping wstation.local
PING wstation.local.local.domain (x.x.x.x)
Run Code Online (Sandbox Code Playgroud)
并直接
$ ping 10.0.0.4
PING 10.0.0.4 (10.0.0.4) 56(84) bytes of data.
64 bytes from 10.0.0.4: icmp_req=1 ttl=64 time=0.387 ms
64 bytes from 10.0.0.4: icmp_req=2 ttl=64 time=0.316 ms
64 bytes from 10.0.0.4: icmp_req=3 ttl=64 time=0.312 ms
64 bytes from 10.0.0.4: icmp_req=4 ttl=64 time=0.280 ms
64 bytes from 10.0.0.4: icmp_req=5 ttl=64 time=0.322 ms
^C
--- 10.0.0.4 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 3998ms
rtt min/avg/max/mdev = 0.280/0.323/0.387/0.038 ms
Run Code Online (Sandbox Code Playgroud)
ger*_*ijk 18
ping wstation
PING wstation.local.domain
Run Code Online (Sandbox Code Playgroud)
清楚地表明您的电脑正在附加.local.domain到非 FQDN 查询。这是在您的设置中配置不正确或至少是错误的。(除非你真的.local.domain故意使用后缀)
许多人不知道的一件重要事情是,全名应始终以句点 ( .)结尾。如果您省略它,那么机器将尝试在本地搜索域(例如 mydomain.tld)内解析它。因此,在这种情况下,对的查询mypc.local将变为mypc.local.mydomain.tld。为防止这种情况,请使用句点查询。
解析器配置在这里非常重要。在 Ubuntu(和 Debian)中,这是在文件中配置的/etc/network/interfaces(假设您没有运行 NetworkManager):
iface eth0 inet static
address 192.168.3.3
netmask 255.255.255.0
gateway 192.168.3.1
dns-nameservers 192.168.3.45 192.168.8.10
dns-search foo.org bar.com # <-- these are the search domains
Run Code Online (Sandbox Code Playgroud)
Linux 中的名称解析也可以通过其他方式完成。这不仅仅是因为所有这些都在查询本地 DNS 服务器。查看您的/etc/nsswitch.conf文件以hosts了解解析的配置:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
Run Code Online (Sandbox Code Playgroud)
这意味着首先尝试文件(这是/etc/hosts文件),然后是 mDNS,然后才查询真正的 DNS 服务器。mDNS 在 Linux 中使用 Avahi 实现,在 Apple 设备上称为 Bonjour。它.local默认使用后缀并通过广播消息工作。很像 ARP 的工作原理,但适用于 DNS。
.local在与 mDNS 设备混合的常规 DNS 设置中使用时,所有这些系统都可能非常混乱,甚至会更加混乱。我想这就是为什么您现在对为什么一台设备可以工作而另一台设备不工作感到困惑的原因:它们并非都使用相同的解析方法。
.local除非您想完全依赖 mDNS,否则请避免使用。从您的问题中,我了解到您希望将自己配置的东西放在一个中心位置,所以我的方法是避免它。my.home. 对于 dnsmasq,这是一个单一的设置,但在常规设置中,这应该在 DNS 服务器和 DHCP 服务器上进行配置(因为它是通过 DHCP 宣布的)。/etc/resolv.conf以防您过去摆弄它。将网络中的 PC 配置my.home为本地搜索域。这可以通过 DHCP 自动完成,或者如果通过/etc/network/interfaces文件或网络管理器使用静态地址:

ping hostname) 和全名 ( ping hostname.my.home) 都应该可以工作。| 归档时间: |
|
| 查看次数: |
64560 次 |
| 最近记录: |