"'/> "'/> "'/> Messaggio di errore "sudo: impossibile risolvere l'host <USER>" | aaartweb.com

Domanda Messaggio di errore "sudo: impossibile risolvere l'host "


Quando corro sudo il terminale è bloccato per alcuni secondi e quindi emette un messaggio di errore. Il mio terminale si presenta così:

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

Cosa posso fare per risolverlo?


641
2017-08-31 19:09


origine


Si prega di inviare il contenuto di /etc/hostname e /etc/hosts. - arrange
Vi consiglio di non chiudere questa domanda come troppo localizzato. Ci sono molti utenti che potrebbero erroneamente pensare di aver inserito un nome nella loro hosts file ma inserire un nome diverso, soprattutto perché su molte reti, i computer sono chiamati in modo simile. Questa domanda (e la risposta) apparirebbe quando qualcuno cerca con quel problema, e la risposta li spingerebbe a controllare tali discrepanze, anche se l'errore ortografico esatto sarebbe diverso. - Eliah Kagan
assicurati che il tuo hostname Lo stesso con hosts. per esempio. il nome host è ubuntu-pc e ospita è ubuntu-pc deve essere lo stesso - Muhammad Sholihin
Mi sono imbattuto in questo oggi. Il problema era che ciò che avevo in hostname non era in / etc / hosts. A titolo di esempio: $ hostname => 'mybox' $ grep 'mybox' / etc / hosts => 192.168.1.2 mybox.example.com. Avevo bisogno di aggiungere "mybox" dopo il mio nome di dominio in / etc / hosts => 192.168.1.2 mybox.example.com mybox - Jim
Non posso pubblicare una risposta perché questa domanda è protetta e non ho abbastanza reputazione qui. Nel mio caso, ho risolto il problema riavviando il gestore di rete: sudo /etc/init.d/network-manager restart. Tuttavia, mi chiedo perché, in primo luogo sudo spreca tempo in attesa di materiale connesso alla rete. non dovrebbe sudo funziona senza problemi quando la rete non è disponibile? - bli


risposte:


Due cose da verificare (supponendo che la tua macchina sia chiamata my-machine, puoi cambiarlo come appropriato):

  1. Che il /etc/hostname il file contiene solo il nome della macchina.

  2. Quella /etc/hosts ha una voce per localhost. Dovrebbe avere qualcosa come:

     127.0.0.1 localhost.localdomain localhost
     127.0.1.1 my-machine
    

Se uno di questi file non è corretto (poiché non è possibile eseguire sudo), potrebbe essere necessario riavviare il computer in modalità di ripristino e apportare le modifiche, quindi riavviare il sistema nell'ambiente abituale.


876
2017-09-01 03:26



Il nome host non cambierà fino al riavvio. Se si desidera cambiarlo senza riavviare la macchina, seguire i passaggi sopra riportati e poi eseguire: - "sudo hostname my-machine" per vedere se ha funzionato eseguire "sudo hostname" Mostrerà il nome host della propria macchina. Questo metodo può essere utilizzato anche come metodo temporaneo per modificare anche il nome host. dopo un riavvio, viene utilizzato il valore dal file / etc / hostname. - Yashvit
Nota: dato che non è possibile iniziare con sudo, è difficile modificare quei file. La mia soluzione era che ero in qualche modo in grado di sudo visudo e cambiamento #%admin ALL=(ALL) ALL a %admin ALL=NOPASSWD: ALL , quindi riavvia e sudo su -, modifica i file, imposta / correggi il nome host, riavvia di nuovo e tutto funziona. - Ian M
Sto usando Linux Subsystem in Windows e ho affrontato questo problema. Dopo aver seguito la tua risposta, è stato risolto. - amarVashishth
potrebbe anche essere necessario aggiungere ::1 localhost a /etc/hosts (questa è la versione IPv6 di 127.0.0.1, ovvero l'indirizzo di loopback) - Woodrow Barlow
Perché il tuo esempio ha 127.0.0.1 localhost ma 127.0.1.1 my-machine? - Adam


modificare  /etc/hosts e aggiungi il tuo nuovo nome host alla linea 127.0.0.1 (o crea una nuova linea se preferisci).

Il mio sembra:

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

Sostituire penguin nell'esempio precedente dal tuo nuovo nome host come indicato nel /etc/hostname file.


170
2018-04-07 13:39



Come può modificare il file / etc / hosts se non può sudo? A meno che non abbia creato un account rood con una password (cattiva idea) - Dennis
@Dennis Puoi ancora eseguire sudo anche se quel messaggio è visualizzato. IIRC devi comunque inserire la tua password ad ogni invocazione. Se ciò non funziona, è possibile riavviare nella console di ripristino e applicare le modifiche. Un account di root con password è sconsigliato. - Lekensteyn


Aggiungi il tuo nome host a /etc/hosts così:

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

43
2017-09-15 16:03



Questa è stata una brillante risposta che non ha avuto abbastanza credito - Edziu Eames
Ben fatto! D'accordo non riceve abbastanza amore. :-) - Peter K.
È intelligente, ma non penso che tenda ad essere una buona idea per automatizzare qualcosa del genere. - mwfearnley


Nota, questa è una risposta a questa domanda che è stato fuso con questo.

Il tuo nome host (dave00-G31M-ES2L) non è rappresentato in /etc/hosts. Aggiungi un L a questa linea:

127.0.1.1   dave00-G31M-ES2

Quindi diventa:

127.0.1.1   dave00-G31M-ES2L

Per fare ciò, apri una console (premi Ctrl+alt+T) e digitare:

sudo gedit /etc/hosts

Aggiungi la lettera L come detto, salva ed esci.


30
2017-08-18 11:02



Ricorda! Uso sudoedit (o sudo -e). Per specificare l'editor preferito, utilizzare il EDITOR variabile ambientale (es. export EDITOR=vim) poiché crea una copia offline per la modifica e poi sovrascrive in modo pulito dopo la modifica. - Jan
E c'è un altro qui che suggerisce sudo quando non c'è più sudo. sudo non funziona, signore. sudo: unable to resolve host ... - Green
@ Verde: no sudo? Il messaggio di errore che hai citato proviene dal sudo comando. Forse intendevi qualcosa di diverso? - Thor
@Verde sudo funziona bene Non è possibile memorizzare alcun stato (ad esempio, come Lekensteyn ha detto altrove, è necessario inserire la password ogni volta). - Wlerin
Se hai questo problema su W10 di Bash e sei arrivato a questa domanda da google, questa è la risposta che ha funzionato per me. Ho cambiato 127.0.0.1 in "127.0.0.1 localhost DESKTOP-SLQK4CV" (facendo "sudo vim / etc / hosts" (suggerimento rapido per vim newbies: premere i prima di digitare per passare alla modalità di inserimento, premere esc per uscire scrivendo ": wq" per salvare ed uscire o ": q!" per uscire senza salvare), nel mio caso sudo ha funzionato, ma ho appena detto che non può connettersi a DESKTOP-SLQK4CV) e ha iniziato a funzionare per me. - Ave


Ho avuto questo problema quando stavo usando Ubuntu su un VPS. Ho risolto il problema modificando il file / etc / hosts.

esegui questo comando:

sudo nano /etc/hosts

e quindi aggiungere:

127.0.0.1   localhost.localdomain localhost
127.0.1.1   ubuntu

Spero che risolva il tuo problema :)

PS: Ricordati di riavviare il tuo computer!


16
2018-04-01 01:18



Inoltre, verifica se il nome del tuo dispositivo (stampato sulla barra del titolo del terminale dopo il simbolo @) corrisponde al nome sulla seconda riga del file hosts file ("ubuntu" nell'esempio di Luca). La prima riga potrebbe anche essere solo "localhost". - Waldir Leoncio
Ricorda! Uso sudoedit (o sudo -e). Per specificare l'editor preferito, utilizzare il EDITOR variabile ambientale (es. export EDITOR=vim) poiché crea una copia offline per la modifica e poi sovrascrive in modo pulito dopo la modifica. - Jan


Avevo lo stesso problema anche se il nome host nel mio file / etc / hostname e / etc / hosts corrispondevano.

Il mio nome host era "staging_1". Si scopre che non è possibile avere un carattere di sottolineatura nel nome host, motivo per cui ho ricevuto questo errore. La modifica del carattere di sottolineatura a un trattino ha risolto il problema.


10
2017-08-13 13:50





In AWS, vai al tuo vpc e attiva "DNS Hostnames".


9
2018-01-15 05:15



Benvenuto su askubuntu! Puoi espandere un po 'su questo? Non è abbastanza chiaro cosa intendi (almeno per me) .. - Elder Geek
Questo potrebbe non essere pertinente alla domanda, ma mi ha aiutato molto. Grazie! - clayzermk1
Questa è stata la risposta che mi ha aiutato. Amazon AWS è cambiato dall'ultima volta che l'ho guardato. I VPC hanno opzioni DNS e devono essere attivati ​​prima che qualsiasi risoluzione DNS funzioni. - Chris Moore
l'opzione Abilita nomi host DNS può essere trovata (ad esempio) nel menu di scelta rapida della voce vpc - Matteo Scotuzzi
Non c'è DNS Hostnames - Green


Ho incontrato questo stesso messaggio di errore. Penso che questo thread di discussione ai forum degli sviluppatori AWS sia una soluzione migliore:

"Vai alla console di gestione VPC, seleziona il VPC, fai clic su Azioni, seleziona Modifica nomi host DNS e seleziona Sì."

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


5
2018-02-13 11:44