无法 ping 或curl *.local 域,但 nslookup 可以工作

无法 ping 或curl *.local 域,但 nslookup 可以工作

在新安装的 Fedora 工作站上,运行默认的 Workstation spin,安装 Gnome。我在使用浏览器访问 LAN 上的 Web 服务器时遇到问题。这些命令curlping无法在工作站上运行。然而,在同一网络上的其他机器(也包括 Linux)上一切正常。我没有办法在新机器上尝试。我还能解决什么问题?

$ ping mywebserver.mydomain.local
ping: unknown host myserver.mydomain.local

$ curl -XGET http://mywebserver.mydomain.local
curl: (6) Could not resolve host: mywebserver.mydomain.local

但是,nslookup解析IP

$ nslookup mywebserver.mydomain.local
Server:     192.168.1.2
Address:    192.168.1.2#53

mywebserver.mydomain.local
Name:   mywebserver.mydomain.local
Address: 192.168.1.24

另外,如果我使用curlping与 IP 地址一起使用,它就可以工作

$ curl -XGET http://192.168.1.24
<gets HTML>

$ ping http://192.168.1.24
<works>

host命令还解决:

$ host mywebserver.mydomain.local
mywebserver.mydomain.local has address 192.168.1.24

我可以 ping 和curl 外部服务器:

$ ping www.google.com
<works>

$ curl -XGET http://www.google.com
<works>

其他线索...

  • mywebserver是该服务器的 DNS A 记录中的名称。它只为一个网站提供服务。
  • 我在 LAN 上托管了另外 2 个网站。我能得到pingA记录,但不能得到curlA记录。 CNAME 不会响应pingcurl。在其他机器上,这些 CNAME 和 A 记录名称将ping完全响应curl
  • 如果我ssh进入另一台机器,从那里我可以ping并且curl很好

内容/etc/resolv.conf

# Generated by NetworkManager
search mydomain.local
nameserver 192.168.1.2

/etc/nsswitch.conf 中的相关行

$ grep ^hosts /etc/nsswitch.conf
hosts:      files mdns4_minimal [NOTFOUND=return] dns myhostname mymachines

答案1

该域.local保留供可以通过 mdns 协议自动发现的主机使用(在本地网络上广播)。您可以通过安装并运行来使其工作avahi,或者更简单地通过mdns4_minimal [NOTFOUND=return]从 nsswitch.conf 中删除该部分来使其工作。要测试地址,请使用例如getent hosts mywebserver.mydomain.local

相关内容