Fedora
無法 ping 或 curl 一個 *.local 域,但 nslookup 有效
在新安裝的 Fedora Workstation 上執行預設的 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
norcurl
。ping
在其他機器上,這些 CNAME和A 記錄名稱將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
該域
.local
保留給可以被 mdns 協議(本地網路上的廣播)自動發現的主機使用。您可以通過安裝和執行來使其工作avahi
,或者更簡單地通過mdns4_minimal [NOTFOUND=return]
從您的 nsswitch.conf 中刪除該部分。要測試地址,請使案例如getent hosts mywebserver.mydomain.local
.