正确的 DNS 后缀设置 Ubuntu 17.04?

Rob*_*rde 5 ubuntu dns systemd-networkd resolv.conf

我无法让 DNS 后缀正常工作

基本上,我已经jira.mycompany.local在公司的DNS服务器上映射到192.168.100.5

我希望能够同时使用jira和访问它jira.mycompany.local

我有这个 /etc/systemd/resolvd.conf

[Resolve]
Domains=mycompany.local devnet.mycompany.nl
Run Code Online (Sandbox Code Playgroud)

重新启动网络管理器并解决:

systemctl restart NetworkManager.service
systemctl restart systemd-resolved.service 
Run Code Online (Sandbox Code Playgroud)

结果如下/etc/resolv.conf

nameserver 192.168.10.1
nameserver 192.168.10.2
nameserver 127.0.0.53

search mycompany.local
search devnet.mycompany.nl
Run Code Online (Sandbox Code Playgroud)

所以这一切看起来都不错。测试DNS:

nslookup jira.mycompany.local
Server:     192.168.10.1
Address:    192.168.10.1#53

Name:   jira.mycompany.local
Address: 192.168.100.5
Run Code Online (Sandbox Code Playgroud)

Ping 到 IP:

>ping 192.168.100.5
PING 192.168.100.5 (192.168.100.5) 56(84) bytes of data.
64 bytes from 192.168.100.5: icmp_seq=1 ttl=63 time=7.04 ms
Run Code Online (Sandbox Code Playgroud)

Ping 到主机名(带和不带后缀):

>ping jira
ping: jira: Name or service not known

>ping jira.mycompany.local
ping: jira.mycompany.local: Name or service not known
Run Code Online (Sandbox Code Playgroud)

相关线路 /etc/nsswitch.conf

hosts:          files [NOTFOUND=return] resolve [!UNAVAIL=return] dns myhostname
Run Code Online (Sandbox Code Playgroud)

(我删除了 avahi 线,所以它不会干扰。)

使用 dig 测试:

dig +short jira 
(empty)

dig +short jira.mycompany.local 
192.168.100.5
Run Code Online (Sandbox Code Playgroud)

[编辑]

我修改了 etc/nsswitch.conf 中的 hosts 行:

hosts:          files resolve dns
Run Code Online (Sandbox Code Playgroud)

现在:

>ping jira.mycompany.local
PING jira.mycompany.local (192.168.100.5) 56(84) bytes of data.
64 bytes from 192.168.100.5: icmp_seq=1 ttl=63 time=7.04 ms
Run Code Online (Sandbox Code Playgroud)

有效,但是:

>ping jira
ping: jira: Temporary failure in name resolution
Run Code Online (Sandbox Code Playgroud)

我如何调试这个问题/或修复它?

小智 4

尝试仅使用search您的在线功能resolv.conf

search mycompany.local devnet.mycompany.nl
Run Code Online (Sandbox Code Playgroud)

dig其次,您的using only测试jira失败,这是正常行为!dig不会使用 中指定的域自动完成您的主机名resolv.conf