konnte nicht aufgelöst werden''/> konnte nicht aufgelöst werden''/> konnte nicht aufgelöst werden''/> Fehlermeldung 'sudo: Host <USER> konnte nicht aufgelöst werden' | webirectory.com

Frage Fehlermeldung 'sudo: Host konnte nicht aufgelöst werden'


Wenn ich renne sudo Das Terminal klemmt für einige Sekunden und gibt dann eine Fehlermeldung aus. Mein Terminal sieht so aus:

ubuntu@(none):~$ sudo true
sudo: unable to resolve host (none)

Was kann ich tun, um es zu lösen?


641
2017-08-31 19:09


Ursprung


Bitte posten Sie den Inhalt von /etc/hostname und /etc/hosts. - arrange
Ich empfehle diese Frage nicht zu schließen zu lokalisiert. Es gibt viele Benutzer, die irrtümlicherweise meinen, dass sie einen Namen in ihren Namen haben hosts Datei, aber geben Sie stattdessen einen anderen Namen ein, insbesondere da in vielen Netzwerken Computer ähnlich benannt sind. Diese Frage (und Antwort) würde auftauchen, wenn jemand mit diesem Problem sucht, und die Antwort würde sie auffordern, nach solchen Diskrepanzen zu suchen, auch wenn der genaue Rechtschreibfehler anders wäre. - Eliah Kagan
Stellen Sie sicher, dass Ihre hostname Das gleiche mit hosts. z.B. Der Hostname ist Ubuntu-PC und Gastgeber ist Ubuntu-PC muss gleich sein. - Muhammad Sholihin
Ich bin heute darauf gestoßen. Das Problem war, dass das, was ich in hostname hatte, nicht in / etc / hosts war. Wobei: $ hostname => 'mybox' $ grep 'mybox' / etc / hosts => 192.168.1.2 mybox.example.com. Ich musste "mybox" hinter meinem Domain-Namen in / etc / hosts => 192.168.1.2 mybox.example.com mybox hinzufügen - Jim
Ich kann keine Antwort posten, weil diese Frage geschützt ist und ich hier nicht genug Reputation habe. In meinem Fall habe ich das Problem gelöst, indem ich den Netzwerk-Manager neu gestartet habe: sudo /etc/init.d/network-manager restart. Ich frage mich jedoch, warum in erster Linie sudo Zeitverschwendung beim Warten auf netzwerkbezogene Dinge. Sollte nicht sudo Arbeiten ohne Probleme, wenn das Netzwerk nicht verfügbar ist? - bli


Antworten:


Zwei Dinge zu überprüfen (vorausgesetzt, Ihre Maschine wird angerufen my-machine, können Sie dies entsprechend ändern):

  1. Dass die /etc/hostname Datei enthält nur den Namen des Rechners.

  2. Das /etc/hosts hat einen Eintrag für localhost. Es sollte etwa so aussehen:

     127.0.0.1 localhost.localdomain localhost
     127.0.1.1 Meine Maschine
    

Wenn eine dieser Dateien nicht korrekt ist (da Sie nicht sudo ausführen können), müssen Sie den Computer möglicherweise im Wiederherstellungsmodus neu starten und die Änderungen vornehmen und dann in Ihrer gewohnten Umgebung neu starten.


876
2017-09-01 03:26



Der Hostname ändert sich erst beim Neustart. Wenn Sie es ändern möchten, ohne den Computer neu zu starten, folgen Sie den obigen Schritten und danach: - "sudo hostname my-machine" um zu sehen, ob dies funktioniert hat "sudo hostname" Es wird der Hostname Ihres Rechners angezeigt. Diese Methode kann auch als temporäre Methode zum Ändern des Hostnamens verwendet werden. Nach einem Neustart wird der Wert aus der Datei / etc / hostname verwendet. - Yashvit
Hinweis: Da Sie mit Sudo nicht beginnen können, ist es schwierig, diese Dateien zu bearbeiten. Meine Lösung war, dass ich irgendwie in der Lage war, visudo zu sudo und ändern #%admin ALL=(ALL) ALL zu %admin ALL=NOPASSWD: ALL , dann rebooten und sudo su -, editiere diese Dateien, setze / korrigiere den Hostnamen, starte nochmal neu, und alles hat funktioniert. - Ian M
Ich benutze Linux Subsystem in Windows und ich habe dieses Problem konfrontiert. Nachdem Sie Ihrer Antwort gefolgt sind, wurde es behoben. - amarVashishth
Sie müssen möglicherweise auch hinzufügen ::1 localhost zu /etc/hosts (Dies ist die IPv6-Version von 127.0.0.1, auch bekannt als Loopback-Adresse) - Woodrow Barlow
Warum hat dein Beispiel? 127.0.0.1 localhost aber 127.0.1.1 my-machine? - Adam


Bearbeiten  /etc/hosts und fügen Sie Ihren neuen Hostnamen an die Zeile 127.0.0.1 an (oder erstellen Sie eine neue Zeile, wenn Sie dies bevorzugen).

Meins sieht aus wie:

127.0.0.1       localhost localhost.localdomain penguin

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Ersetzen penguin im obigen Beispiel durch Ihren neuen Hostnamen wie in der /etc/hostname Datei.


170
2018-04-07 13:39



Wie kann er die Datei / etc / hosts bearbeiten, wenn er nicht sudo kann? Es sei denn, er hat ein rood-Konto mit einem Passwort erstellt (schlechte Idee) - Dennis
@Dennis Du kannst immer noch ausführen sudo selbst wenn diese Nachricht angezeigt wird. IIRC Sie müssen jedoch immer noch bei jedem Aufruf Ihr Passwort eingeben. Wenn dies nicht funktioniert, können Sie in der Wiederherstellungskonsole einen Neustart durchführen und die Änderungen übernehmen. Von einem root-Account mit Passwort wird abgeraten. - Lekensteyn


Fügen Sie Ihren Hostnamen hinzu /etc/hosts so:

echo $(hostname -I | cut -d\  -f1) $(hostname) | sudo tee -a /etc/hosts

43
2017-09-15 16:03



Das war eine brillante Antwort, die nicht genug Kredit bekommen hat - Edziu Eames
Schön! Vereinbart, es bekommt nicht genug rep Liebe. :-) - Peter K.
Es ist schlau, aber ich denke nicht, dass es eine gute Idee ist, so etwas zu automatisieren. - mwfearnley


Beachten Sie, dies ist eine Antwort auf diese Frage welches mit diesem verschmolzen wurde.

Ihr Hostname (dave00-G31M-ES2L) ist nicht in dargestellt /etc/hosts. Fügen Sie ein ein L zu dieser Linie:

127.0.1.1   dave00-G31M-ES2

So wird es:

127.0.1.1   dave00-G31M-ES2L

Um dies zu erreichen, öffnen Sie eine Konsole (drücken Sie Strg+Alt+T) und geben Sie ein:

sudo gedit /etc/hosts

Fügen Sie den Brief hinzu L wie erwähnt, speichern und beenden.


30
2017-08-18 11:02



Merken! Benutzen sudoedit (oder sudo -e). Um den bevorzugten Editor festzulegen, verwenden Sie die EDITOR Umgebungsvariable (z. B. export EDITOR=vim), da es eine Offline-Kopie zum Bearbeiten erstellt und dann nach der Bearbeitung sauber überschrieben wird. - Jan
Und hier ist noch ein anderer, der suggeriert sudo wenn es nicht mehr gibt sudo. sudo funktioniert nicht, mein Herr. sudo: unable to resolve host ... - Green
@ Grün: Nein sudo? Die Fehlermeldung, die Sie erwähnen, kommt von der sudo Befehl. Vielleicht hast du etwas anderes gemeint? - Thor
@Grün sudo funktioniert gut. Es kann einfach keinen Zustand speichern (d. H. Wie Lekensteyn an anderer Stelle sagte, müssen Sie jedes Mal Ihr Passwort eingeben). - Wlerin
Wenn Sie dieses Problem bei W10's Bash haben und zu dieser Frage von Google kamen, ist dies die Antwort, die für mich funktioniert hat. Ich habe die 127.0.0.1 so geändert, dass sie aussieht wie "127.0.0.1 localhost DESKTOP-SLQK4CV" (indem ich "sudo vim / etc / hosts" mache) (Quick Tipp für vim Neulinge: drücke i bevor du in den Einfügemodus tippst, drücke esc um zu beenden das, schreibe ": wq" zum Speichern und Beenden oder ": q!" zum Beenden ohne Speichern), in meinem Fall sudo funktionierte aber nur gesagt, dass es nicht mit DESKTOP-SLQK4CV verbinden kann) und es begann für mich gearbeitet. - Ave


Ich hatte dieses Problem, als ich Ubuntu auf einem VPS verwendete. Ich habe es gelöst, indem ich die Datei / etc / hosts bearbeitet habe.

Führe diesen Befehl aus:

sudo nano /etc/hosts

und dann hinzufügen:

127.0.0.1   localhost.localdomain localhost
127.0.1.1   ubuntu

Ich hoffe, das wird dein Problem lösen :)

PS: Denken Sie daran, Ihren Computer neu zu starten!


16
2018-04-01 01:18



Überprüfen Sie auch, ob der Gerätename (in der Titelleiste des Terminals nach dem @ -Zeichen gedruckt) mit dem Namen in der zweiten Zeile des. Übereinstimmt hosts Datei ("ubuntu" in Lucas Beispiel). Die erste Zeile kann auch nur "localhost" sein. - Waldir Leoncio
Merken! Benutzen sudoedit (oder sudo -e). Um den bevorzugten Editor festzulegen, verwenden Sie die EDITOR Umgebungsvariable (z. B. export EDITOR=vim), da es eine Offline-Kopie zum Bearbeiten erstellt und dann nach der Bearbeitung sauber überschrieben wird. - Jan


Ich hatte das gleiche Problem, obwohl der Hostname in meiner Datei / etc / hostname und der Datei / etc / hosts übereinstimmte.

Mein Hostname war "staging_1". Es stellt sich heraus, dass Sie keinen Unterstrich in Ihrem Hostnamen haben können, weshalb ich diesen Fehler bekommen habe. Das Ändern des Unterstrichs zu einem Bindestrich hat mein Problem behoben.


10
2017-08-13 13:50





Wechseln Sie in AWS zu Ihrem vc und aktivieren Sie "DNS-Hostnamen".


9
2018-01-15 05:15



Willkommen bei askubuntu! Kannst du etwas dazu erweitern? Es ist nicht überdeutlich, was du meinst (zumindest für mich) .. - Elder Geek
Das mag für die Frage nicht relevant sein, aber es hat mir sehr geholfen. Vielen Dank! - clayzermk1
Das war die Antwort, die mir geholfen hat. Amazon AWS hat sich seit dem letzten Mal geändert, als ich es angesehen habe. VPCs haben DNS-Optionen und müssen aktiviert werden, bevor eine DNS-Auflösung funktioniert. - Chris Moore
Die Option DNS-Hostnamen aktivieren finden Sie (zum Beispiel) im Kontextmenü des vpc-Eintrags - Matteo Scotuzzi
Es gibt kein DNS Hostnames - Green


Ich habe dieselbe Fehlermeldung erhalten. Ich denke, dieser Diskussions-Thread in den AWS Developer Foren ist eine bessere Lösung:

"Gehen Sie zur VPC-Verwaltungskonsole, wählen Sie die VPC, klicken Sie auf Aktionen, wählen Sie DNS-Hostnamen bearbeiten und wählen Sie Ja."

https://forums.aws.amazon.com/thread.jspa?messageID=699718


5
2018-02-13 11:44





Einige Terminal-Emulatoren aktualisieren die Eingabeaufforderung nicht mit dem korrekten Hostnamen, bis Sie den Emulator schließen und neu starten (lxterminal, ich spreche mit Ihnen).

Ich habe 30 Minuten mit diesem Fehler gekämpft, nachdem ich meinen Hostname und Gastgeber Dateien und läuft sudo service hostname restart bis ich rannte sudo hostname und sah, dass der Hostname der neue Wert war, obwohl auf der Eingabeaufforderung der alte Wert angezeigt wurde.


5
2018-06-19 16:29



Das Problem sind nicht die Terminal-Emulatoren, sondern die Shells, die den Wert zwischengespeichert haben. - Mark Stosberg


In meinem Fall war es das Problem, ich habe das geändert hostname zu man weil ich wissen wollte, ob es einige Parameter gibt, an denen Sie arbeiten können hostname. Stattdessen hat es meine verändert hostname zu man und ich habe immer die gleiche Nachricht wie du

sudo: unable to resolve host (none)

Nachdem der Hostname wieder in `localhost 'geändert wurde, funktionierte alles wieder gut

hostname localhost

4
2018-01-09 22:24





Das in der Frage angegebene Symptom kann stark mit diesem spezifischeren Problem korrelieren:

$ hostname --fqdn
hostname: Temporary failure in name resolution

Es gibt verschiedene Möglichkeiten, dies zu lösen, unter anderem den Hostnamen als localhost hinzuzufügen /etc/hosts (wie in mehreren anderen Antworten gezeigt). Das mag im Allgemeinen das Richtige sein, aber es ist nicht die einzige mögliche Lösung.

Ein "vollqualifizierter Domänenname" kann von einem externen DNS-Server oder ähnlichem bereitgestellt werden (falls dies in Ihrem Netzwerk verfügbar ist). In diesem Fall, sudo Ich werde mich trotz der fehlenden Einreise nicht beschweren /etc/hosts.


Hinweis: sudo versucht, den Hostnamen zu dereferenzieren, obwohl dies aufgrund optionaler Funktionen in der sudoers-Datei nicht unbedingt erforderlich ist. Sehen sudo-Befehl versucht, nach dem Hostnamen zu suchen.

Solange die Verzögerung nicht zu lang ist, ist diese Fehlermeldung typischerweise harmlos.


3
2017-09-18 22:17