我通过 PPTP VPN 连接到另一个网络,主要是 Windows 网络。运行全新安装的 Ubuntu 16.04.1。
我想要连接的大多数东西都在 .local 域上。我发现在连接到 .local 域的阶段执行 getaddrinfo 的任何应用程序都会失败:
例如,Remmina 给出了这个错误:
tcp_connect:getaddrinfo(名称或服务未知)错误:协议安全协商或连接失败
我在 .local 和 .com 域上的 DNS 中设置了一个工作站,并且它们都可以正常解析:
rduz@henry:~$ nslookup bidsk0127.redacted.local
Server: 127.0.1.1
Address: 127.0.1.1#53
Name: bidsk0127.redacted.local
Address: 172.16.5.155
rduz@henry:~$ nslookup bidsk0127.redacted.com
Server: 127.0.1.1
Address: 127.0.1.1#53
Name: bidsk0127.redacted.com
Address: 172.16.5.155
我可以正常连接到 .com 名称,没有 getaddrinfo 错误。我无法连接到 .local,它显示 getaddrinfo 错误。
在过去,我记得在 SLES 上,我们会更新 /etc/host.conf,添加一行“mdns off”以使 .local 解析正常工作。man host.conf 不再将其显示为有效选项。
有没有什么方法可以解决这个问题,以便 getaddrinfo 调用可以正确解析 .local 名称?
谢谢。
问候,Rich
答案1
经过更多的谷歌搜索,我找到了答案。就我而言,我不需要 mdns,因此我更新了 /etc/nsswitch.conf,如下所示:
root@henry:/etc# diff nsswitch.conf.orig nsswitch.conf
12c12
< hosts: files mdns4_minimal [NOTFOUND=return] dns
---
> hosts: files dns