Hostname kann in WSL nicht aufgelöst werden

Hostname kann in WSL nicht aufgelöst werden

Bei fast jeder Aktion, die ich im Windows-Subsystem für Linux ausführe, erhalte ich die Benachrichtigung „So lösen Sie den Hostnamen auf“. Warum passiert dies bei jeder Neuinstallation und wie kann ich das Problem lösen?

Antwort1

  1. Überprüfen Sie, ob ein symbolischer Link und eine Datei resolv.conf vorhanden sind:
cd /etc
ls -lha
stat resolv.conf

Sie sollten einen symbolischen Link sehen, der auf Folgendes verweist:

  File: resolv.conf -> ../run/resolvconf/resolv.conf
  Size: 29              Blocks: 0          IO Block: 4096   symbolic link

Die Originaldatei in ../run/resolvconf/resolv.conf wird beim Booten in WSL Ubuntu neu erstellt und hat den folgenden Inhalt:

# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:>
# [network]
# generateResolvConf = false
nameserver 172.23.0.1

die Nameserver-Adresse kann in Ihrem Fall abweichen

  1. Erstellen Sie eine wsl.conf-Datei im Stammordner etc. (möglicherweise benötigen Sie sudo):

sudo nano /etc/wsl.conf

  1. Fügen Sie die folgenden Zeilen in die Datei ein und beenden Sie das Speichern (Strg+X):
[network]
generateResolvConf = false
  1. Löschen Sie den symbolischen Link zur Datei resolv.conf
cd /etc
sudo rm resolv.conf
  1. Erstellen Sie eine neue resolv.conf-Datei in /etc
sudo nano resolv.conf

und fügen Sie den folgenden Inhalt ein und speichern Sie ihn mit (Strg+O und Strg+X):

# This file was automatically generated by WSL. To stop automatic generation of this file, 
# add the following entry to /etc/wsl.conf:>
# [network]
# generateResolvConf = false
# nameserver 172.23.0.1
nameserver 8.8.8.8

Antwort2

Ich weiß nicht, warum das passiert (bitte verbessern Sie die Antwort mit einer Erklärung), hier ist eine funktionierende Lösung für dieses Problem:

1. Ausführen:

nano /etc/hostname

Geben Sie den Namen Ihres Computers in Großbuchstaben ein (z. B. DESKTOP-ETWAS). Löschen Sie alles außer Ihrem Computernamen.

Speichern und schließen.

2. Führen Sie dann Folgendes aus:

nano /etc/hosts

Stellen Sie dann sicher, dass die ersten beiden Zeilen der Datei wie folgt aussehen:

  127.0.0.1 localhost.localdomain localhost
  127.0.1.1 DESKTOP-SOMETHING

Speichern und schließen.

Antwort3

In meinem Fall war der hilfreiche Befehl:

echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null

Antwort4

Um lokale Windows-Netzwerkhosts innerhalb von WSL2 aufzulösen, hat es bei mir funktioniert, die folgenden internen DNS-Auflösungseinträge (Nameserver) hinzuzufügen /etc/resolv.config:

search <name-of-my-internal-ad-domain.net>
nameserver 10.0.xx.xxx  # local WAN DNS server
nameserver 10.0.xx.xxx  # local WAN DNS server
nameserver 1.1.1.1

sudo tee /etc/resolv.conf << EOF
search <name-of-my-internal-ad-domain.net>
nameserver 10.0.xx.xxx
nameserver 10.0.xx.xxx
nameserver 1.1.1.1

verwandte Informationen