pingsagt mir, dass es einige Hostnamen ("ping: unknown host domain.company.local") in einer URL nicht auflösen kann, aber wenn ich hostoder nslookupauf demselben Computer in der Befehlszeile verwende, funktionieren die Auflösungen einwandfrei (dh es ist schnell und zuverlässig) ).
Was könnte das verursachen?
Weitere Tests: Firefox wgetund pinghaben das gleiche Problem. Das Pingen der IP-Adresse funktioniert.
Betriebssystem: Linux (Ubuntu 13.04)
BEARBEITEN Meine /etc/resolv.confliest:
nameserver 127.0.1.1
search domain.company.local
netstat Berichte:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN -
Auf diesem Port läuft also etwas ( nslookupmeldet auch, dass er 127.0.1.1als DNS-Server verwendet wird).
Es gibt keine /etc/*inetd.conf, daher bin ich mir nicht sicher, welche Anwendung diesen Port bedient.
Es scheint, dass dnsmasqverwendet wird:
/usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces
--pid-file=/var/run/NetworkManager/dnsmasq.pid --listen-address=127.0.1.1
--conf-file=/var/run/NetworkManager/dnsmasq.conf --cache-size=0 --proxy-dnssec
--enable-dbus=org.freedesktop.NetworkManager.dnsmasq
--conf-dir=/etc/NetworkManager/dnsmasq.d
Alle Konfigurationsdateien und -ordner sind leer. Da nslookupsagt es nutzt 127.0.1.1#53meine Vermutung, dass dnsmasqdas auch ohne Konfiguration funktioniert. Aber woher weiß es, welches übergeordnete DNS abgefragt werden soll?
EDIT2 Deaktivieren dnsmasqwie von harrymc vorgeschlagen hat nicht geholfen. Also lief ich, strace pingwas mir diese seltsame Ausgabe brachte (nur die interessanten Teile):
open("/etc/host.conf", O_RDONLY|O_CLOEXEC) = 4
read(4, "127.0.0.1\tlocalhost\n#127.0.1.1\ta"..., 4096) = 613
...
open("/lib/libnss_mdns4_minimal.so.2", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\f\0\0\0\0\0\0"..., 832) = 832
...
mmap(NULL, 2105560, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7f7829b00000
...
socket(PF_FILE, SOCK_STREAM, 0) = 4
fcntl(4, F_GETFD) = 0
fcntl(4, F_SETFD, FD_CLOEXEC) = 0
connect(4, {sa_family=AF_FILE, path="/var/run/avahi-daemon/socket"}, 110) = 0
fcntl(4, F_GETFL) = 0x2 (flags O_RDWR)
fstat(4, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f782a4f8000
lseek(4, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
write(4, "RESOLVE-HOSTNAME-IPV4 domain.com"..., 44) = 44
read(4, "-15 Timeout reached\n", 4096) = 20
Also pingschaut /etc/hostswas Sinn macht. Dann lädt und mmap()s /lib/libnss_mdns4_minimal.so.2was auch Sinn macht.
Aber dann spricht es mit Avahi !?
Was mich zu diesem Forumbeitrag geführt hat: Ping stellt keine DNS-Anfrage .
Meine /etc/nsswitch.confenthält auch diese Zeile:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
Wenn ich pingeine Arbeitsadresse habe, sehe ich, dass der Prozess auch geladen wird, /lib/libnss_mdns4_minimal.so.2aber dann führt er eine DNS-Abfrage über Port 53 durch.
Also meine Vermutung ist jetzt, dass /lib/libnss_mdns4_minimal.so.2irgendwie auffällt, dass die IP-Adresse mit .localund nicht mit endet .comund dann das [NOTFOUND=return]ausgelöst wird.
Wie behebe ich das?
wget.
nslookupoder wie ich hostden Namen auflösen kann und alles andere auf dem System nicht.
/etc/NetworkManager/NetworkManager.confund kommentieren Sie die dns=dnsmasqZeile (setzen Sie ein # davor) und machen Sie dann ein sudo restart network-manager. Dadurch wird der lokale Resolver ausgeschaltet. ( Quelle )
/etc/resolv.conf?