我无法 ping 主机名,但可以 ping hostname.local

我无法 ping 主机名,但可以 ping hostname.local

在本地网络上的 Ubuntu 16.04 计算机上,我可以使用“ping hostname”或“ping hostname.local”来 ping 网络上的任何其他计算机。然而,在我刚刚安装 Ubuntu 18.04 的另一台计算机上,“ping 主机名”产生“名称或服务未知”,但“ping 主机名.local”仍然有效。

两台计算机都需要配置静态IP。

在这种特定情况下,我需要“ping 主机名”才能工作。我不知道 16.04 机器有什么特别之处,使它能够在没有 .local 的情况下解析本地主机名。

有人有什么想法吗?

这是我设备上的 netplan 文件。这或许可以让我们了解一些情况。

# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager
  ethernets:
       enp3s0:
          dhcp4: no
          addresses: [192.168.1.19/24]
          gateway4: 192.168.1.1
          nameservers:
             addresses: [192.168.1.1, 8.8.8.8]

以下是systemd-resolve --status18.04 机器上的结果

Global
          DNSSEC NTA: 10.in-addr.arpa
                      16.172.in-addr.arpa
                      168.192.in-addr.arpa
                      17.172.in-addr.arpa
                      18.172.in-addr.arpa
                      19.172.in-addr.arpa
                      20.172.in-addr.arpa
                      21.172.in-addr.arpa
                      22.172.in-addr.arpa
                      23.172.in-addr.arpa
                      24.172.in-addr.arpa
                      25.172.in-addr.arpa
                      26.172.in-addr.arpa
                      27.172.in-addr.arpa
                      28.172.in-addr.arpa
                      29.172.in-addr.arpa
                      30.172.in-addr.arpa
                      31.172.in-addr.arpa
                      corp
                      d.f.ip6.arpa
                      home
                      internal
                      intranet
                      lan
                      local
                      private
                      test

Link 3 (enp4s0)
      Current Scopes: none
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

Link 2 (enp3s0)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 192.168.1.1
                      8.8.8.8
          DNS Domain: ~.

我尝试添加本地搜索域,但没有帮助

16.04 /etc/hosts 中未定义主机名。它以某种方式通过我的路由器解析主机名。如果我将一个全新的设备连接到我的网络,16.04 机器可以通过其主机名立即访问它,18.04 机器可以通过 hostname.local 访问它

有什么建议么?

答案1

通过将路由器 DNS 名称服务器地址添加到 resolv.conf 来解决。

由于计算机的地址是手动设置的(不使用 DHCP),所以 nameserver 地址信息也需要通过 resolconf 手动配置,例如,在其他设置中不是一个好主意,但手动设置固定地址留下的不多选项。

如果路由器 DHCP 服务器可以配置为始终向计算机提供相同的地址,则无需手动编辑 resolv.conf。

相关内容