在新安装的 Fedora 工作站上,运行默认的 Workstation spin,安装 Gnome。我在使用浏览器访问 LAN 上的 Web 服务器时遇到问题。这些命令curl
也ping
无法在工作站上运行。然而,在同一网络上的其他机器(也包括 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
另外,如果我使用curl
或ping
与 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 个网站。我能得到
ping
A记录,但不能得到curl
A记录。 CNAME 不会响应ping
或curl
。在其他机器上,这些 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
。