/ etc / hosts viene sovrascritto


14

Qual è il modo corretto di modificare /etc/hosts? Voglio aggiungere alcuni indirizzi IP e nomi host ad esso. Funziona per un po '(alcune ore) e poi torna alla versione originale. Esiste un processo per verificare lo stato /etc/hostse ripristinarlo?

Sono nel mio MBA con Mountain Lion.


FWIW, questo non succede a me. Ho una voce in / etc / hosts su un computer nella mia rete privata (indirizzo 10.0.0.2) che non è mai stato rimosso dal sistema. Ma forse lascia gli indirizzi nelle reti locali (10/8, 172.16 / 12 e 192.168 / 16 - vedi RFC 1918 ) da solo e rimuove gli indirizzi che puntano a indirizzi IPv4 globali? </speculation>
Harald Hanche-Olsen,

In realtà, ho aggiunto alcune voci qualche tempo fa e sono rimasti. I nuovi vengono rimossi. Entrambi sono in sottoreti simili.
Mohammad Moghimi,

Sei stato in grado di determinare quale processo sta modificando il file? Uno strumento come fseventer potrebbe aiutarti a capire cosa sta modificando il file. Dato che è normalmente di proprietà di root: wheel - l'elenco dei programmi che possono modificare il file dovrebbe essere piuttosto piccolo. È inoltre possibile impostare il flag immutabile sul file ed evitare di dover ripristinare le modifiche.
bmike

Risposte:


10

Come strumento per aiutarti a trovare il colpevole, ecco un dtrace oneliner che stampa il pid e il nome di qualsiasi processo che apre un file per la scrittura, insieme al nome del file:

dtrace -qn 'syscall::open*:entry /arg1&3/ { printf("%d %s %s\n", pid, execname, copyinstr(arg0)); }'

Deve essere eseguito come root (ad es. Con sudo). Collegalo grep hostsper evitare di annegare nell'output e perdere ciò che stai cercando:

sudo dtrace -qn 'syscall::open*:entry /arg1&3/ { printf("%d %s %s\n", pid, execname, copyinstr(arg0)); }' | grep hosts

Spero che questo ti dirà quale processo sta sovrascrivendo il file. Lascialo funzionare in una finestra del terminale finché non si innesca.


12

Se si utilizza il client VPN Juno Pulse, /etc/hostsviene sovrascritto da/etc/jnpr-pulse-hosts.bak


8

Usi il client VPN AnyConnect di Cisco? In tal caso, devi invece modificare /etc/hosts.ac e lasciarlo copiare nel file live. Vedi questo articolo su MacOSXHints e queste domande precedenti .

EDIT: Non riesco a trovare nulla di specifico su Janos Pulse, ma Juniper Network Connect fa casino con / etc / hosts e sospetto che Pulse possa fare la stessa cosa. Secondo questo post del blog , se si apportano modifiche durante la connessione, queste verranno ripristinate quando ci si disconnette, ma le modifiche apportate durante la disconnessione resteranno valide.


No, non sto usando AnyConnect, non c'è neanche /etc/hosts.ac. Tuttavia, sto usando un altro software proxy: Junos Pulse
Mohammad Moghimi,

1
Posso confermare questo comportamento con Junos Pulse 5.1.8. Le modifiche a /etc/hostsdevono essere apportate quando si è disconnessi o si perderanno.
MisterEd,

8

Per me è nel file

/etc/pulse-hosts.bak

Devi modificare questo file per personalizzare le direttive dei tuoi host

Quando stai per riconnetterti / connetterti usando Pulse Secure VPN, unirà le direttive da

/etc/pulse-hosts.bak

con il contenuto delle direttive Pulse e crea il

/etc/hosts

Aggiornamento 2018

Con la versione più recente di Pulse Secure devi prima uscire dal programma (controlla il processo attivo).

Modifica il tuo host (/ etc / hosts) e riavvia Pulse Secure.


-1

Non sono stato in grado di utilizzare Quickstart cloudera VM dopo essere entrato in VPN. Per risolvere questo problema ho seguito i passaggi seguenti.

Passaggio 1: aggiungere la voce /private/etc/hostsper es

127.0.0.1 quickstart.cloudera

Step-2: Entra in VPN per esempio sto usando VPN F5

Passaggio 3: Verificare la voce sopra menzionata /etc/hostsutilizzando il comando seguente

cat / etc / hosts

Spero che sia utile.


In che modo questo risolve il problema descritto nella domanda, ovvero la "sovrascrittura" di qualcosa /etc/hosts?
Nohillside

Ciao @nohillside, ho aggiunto la 127.0.0.1 quickstart.clouderavoce al mio /etc/hostsfile ma è stata cancellata / ignorata quando mi connettevo alla VPN. Per aggiungere la 127.0.0.1 quickstart.clouderavoce in modo permanente, l'ho aggiunta nel /private/etc/hostsfile. Internamente ogni volta che si tenta di connettersi alla VPN, copia tutte le voci da /private/etc/hostsa /etc/hosts. Spero che abbia senso adesso.
Shreyash Limbhetwala,

Ciao @nohillside, solo FYI ... sto usando il client F5 Big-IP Edge e ho Mac OS.
Shreyash Limbhetwala,

Su macOS /etcè un link simbolico a private/etctale /etc/hostse in /private/etc/hostsrealtà sono lo stesso file (esegui ls -li /etc/hosts /private/etc/hostsper verificare).
Nohillside

1
Hai ragione @nohillside, ma dopo aver aggiunto la voce nel /private/etc/hostsmio problema è stato risolto e anche dopo la connessione alla VPN la mia voce non viene cancellata / ignorata.
Shreyash Limbhetwala,

-1

Quando si modifica il file / etc / hosts, assicurarsi di NON essere connessi alla VPN (almeno se si utilizza Network Connect da Juniper Networks).

Come descritto in https://mcphersonz.wordpress.com/2009/11/12/etchosts-file-is-reverting-to-a-previous-state-in-os-x/


1
Questa domanda ha una risposta accettata da sei anni fa. Il post originale non menziona una VPN in uso. Sebbene la tua domanda possa essere utile per altri utenti che riscontrano questo problema durante l'utilizzo di una VPN (in particolare una di Jupiter Networks), ha poca rilevanza per il post originale.
IconDaemon il

@IconDaemon Grazie per il tuo caloroso benvenuto. Che fosse 6 anni fa è irrilevante, perché la pagina è ancora il primo successo nel motore di ricerca. Inoltre, altre 4 risposte menzionano già che una VPN può causare esattamente lo stesso problema (come nel mio caso), anche se la risposta accettata sembra aver risolto il problema per l'OP. Tuttavia, anche lui riconosce in un commento a Gordon di aver usato una VPN (Junos Pulse). Forse avevi ragione a votare la mia risposta, perché disabilitare la VPN era già stato menzionato nell'aggiornamento della risposta di Stanislas (ma non è quello che dici).
Michel,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.