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, resolvenoch 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
lwresist libnss-lwres: Wenn Sie diese finden, auch überprüfen, ob ein lwresdProzess ausgeführt wird und es wurde nicht konfiguriert , um eine benutzerdefinierte Konfigurationsdatei anstelle der Standard zu verwenden/etc/resolv.conf
resolveGibt Folgendes an libnss-resolve: Wenn Sie dies feststellen, überprüfen Sie, ob der systemd-resolvedProzess ausgeführt wird, und verwenden Sie den systemd-resolve --statusBefehl, um die aktuelle DNS-Konfiguration anzuzeigen. In diesem Fall muss der Klassiker /etc/resolv.confnicht 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?