可以访问 IP 但不能访问主机名(尽管可以进行主机解析)

可以访问 IP 但不能访问主机名(尽管可以进行主机解析)

当 ping 特定 ip(内网)时

ping 10.14.5.10    
PING 10.14.5.10 (10.14.0.21) 56(84) bytes of data.
64 bytes from 10.14.5.10: icmp_seq=1 ttl=62 time=0.858 ms
64 bytes from 10.14.5.10: icmp_seq=2 ttl=62 time=0.671 ms
^C

测试正向和反向 DNS 解析作品

host 10.14.5.10 
10.14.5.10.in-addr.arpa domain name pointer some.intranet.url.
$ host some.intranet.url
some.intranet.url. has address 10.14.5.10
$ ping some.intranet.url
ping: unknown host some.intranet.url

然而

ping some.intranet.url
ping unknown host some.intranet.url

为什么解决了,但是无法访问?

Ubuntu 16.04.01在VM 上工作ESXI 6.0

配置

/etc/network/interfaces

# interfaces(5) file used by ifup(8) and ifdown(8)

# Loopback
auto lo
iface lo inet loopback

# Primary network interface
allow-hotplug ens160
iface ens160 inet static
    address 10.111.3.3
    netmask 255.255.255.0
    gateway 10.111.3.1
    dns-nameservers 10.111.3.1
    # dns-zone my.zone.local

/etc/resolv.conf

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.111.3.1

/etc/nsswitch.conf 文件

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat
group:          compat
shadow:         compat
gshadow:        files

hosts:          files mdns4_minimal [NOTFOUND=return] dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

答案1

.localTLD 为 mDNS 保留。请勿将其用于其他用途。

那么为什么它不起作用呢?在 中nsswitch.conf,您有以下行:

hosts:          files mdns4_minimal [NOTFOUND=return] dns

这意味着,要解析主机名,它将首先查询/etc/hosts,然后查询 mDNS,最后才查询 DNS。

关键是[NOTFOUND=return]。该mdns4_minimal服务将忽略任何 .local名称,因为无论如何它都无法解析它们。但是,如果它无法解析名称.local( NOTFOUND),则整个查找过程将立即终止 ( return)。

您也可以删除[NOTFOUND=return],它将恢复使用 DNS。但是,请不要使用.local

另外,不要使用任何其他东西(.lan.companyname或其他),而是使用您实际拥有的域名。将来一切都注定会失败。该域名不需要任何公开可见的 DNS 记录。

相关内容