在本地网络上的 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 --status
18.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。