Es gibt zwei mögliche Fehlerquellen:
- Funktioniert die TCP / UDP-Verbindung zum DNS-Server?
- Ist die C-Bibliothek in erster Linie für die Verwendung von DNS konfiguriert? Wenn ja, mit welcher Resolver-Bibliothek?
Der erste Punkt kann mit einem der zuvor vorgeschlagenen Befehle getestet werden:
host www.google.es 8.8.8.8
nslookup www.google.es 8.8.8.8
dig +short www.google.es @8.8.8.8
Da der DNS-Server erfolgreich gepingt werden kann, wissen wir, dass IP-Routing funktioniert und ICMP-Datenverkehr zulässig ist. Der DNS-Datenverkehr, dh TCP- und UDP-Datenverkehr zu Port 53, wird jedoch nicht angegeben. Eine Firewall kann diesen blockieren, ohne ICMP zu blockieren, oder umgekehrt umgekehrt.
Führen Sie für den zweiten möglichen Fehlerpunkt Folgendes aus:
grep hosts /etc/nsswitch.conf
Wenn die Antwort Schlüsselwörter nicht enthält dns
, resolve
noch lwres
, dann in dieser VM der Auflösung von Hostnamen konfiguriert wurde , um nicht DNS zu verwenden überhaupt - die Stichworte , zeigen an, welche Methoden werden tatsächlich verwendet werden.
dns
ist der klassische DNS-Resolver, der über konfiguriert wird /etc/resolv.conf
lwres
ist libnss-lwres
: Wenn Sie diese finden, auch überprüfen, ob ein lwresd
Prozess ausgeführt wird und es wurde nicht konfiguriert , um eine benutzerdefinierte Konfigurationsdatei anstelle der Standard zu verwenden/etc/resolv.conf
resolve
Gibt Folgendes an libnss-resolve
: Wenn Sie dies feststellen, überprüfen Sie, ob der systemd-resolved
Prozess ausgeführt wird, und verwenden Sie den systemd-resolve --status
Befehl, um die aktuelle DNS-Konfiguration anzuzeigen. In diesem Fall muss der Klassiker /etc/resolv.conf
nicht unbedingt verwendet werden, außer um Anwendungen zu leiten, die ihre eigenen DNS-Auflösungsbibliotheken verwenden, um ihre Abfragen an zu senden systemd-resolved
.
Verwenden Sie, um zu testen, ob eine Anwendung die konfigurierte Auflösungsbibliothek für Hostnamen erfolgreich verwenden kann getent hosts www.google.es
. Wenn Sie der Meinung sind, dass die Anwendung nur IPv4 verwendet oder eine Voreinstellung für IPv4 festlegt, können Sie auch mit testen getent ahostsv4 www.google.es
. Ebenso können Sie zum Testen nur für IPv6 verwenden getent ahostsv6 www.google.es
.
sudo dhclient -v wlan0
(ersetze wlan0 für dein Interface)? Unddig google.com
?