/ etc / hosts supera escrito

14

Qual é a maneira correta de editar /etc/hosts? Quero adicionar alguns endereços IP e nomes de host a ele. Funciona por um tempo (algumas horas) e depois é revertido para a versão original. Existe algum processo para verificar /etc/hostse reverter o status ?

Estou no meu MBA com Mountain Lion.

Mohammad Moghimi
fonte
FWIW, isso não acontece comigo. Eu tenho uma entrada no / etc / hosts para um computador na minha rede privada (endereço 10.0.0.2) que nunca foi removido pelo sistema. Mas talvez ele deixe endereços nas redes locais (10/8, 172.16 / 12 e 192.168 / 16 - veja RFC 1918 ) sozinho e remova endereços apontando para endereços IPv4 globais? </speculation>
Harald Hanche-Olsen
Na verdade, adicionei algumas entradas há algum tempo e elas ficaram. Os novos estão sendo removidos. Ambos estão em sub-redes semelhantes.
Mohammad Moghimi 18/07/2013
Você conseguiu determinar qual processo está alterando o arquivo? Uma ferramenta como o fseventer pode ajudar você a entender o que está editando o arquivo. Como normalmente pertence ao root: wheel - a lista de programas que podem editar o arquivo deve ser bem pequena. Você também pode definir o sinalizador imutável no arquivo e evitar a necessidade de reverter as alterações.
Bmike

Respostas:

10

Como uma ferramenta para ajudá-lo a encontrar o culpado, aqui está um dtrace oneliner que imprime o pid e o nome de qualquer processo que abre um arquivo para gravação, junto com o nome do arquivo:

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

Ele precisa ser executado como root (por exemplo, com sudo). Canalize-o grep hostspara evitar afogamentos na produção e perder o que você está procurando:

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

Felizmente, isso informará qual processo está substituindo o arquivo. Apenas deixe correr em uma janela de terminal até que seja acionado.

Harald Hanche-Olsen
fonte
12

Se você estiver usando o cliente Juno Pulse VPN, /etc/hostsserá substituído por/etc/jnpr-pulse-hosts.bak

SkP
fonte
8

Você usa o cliente Cisco AnyConnect VPN? Nesse caso, você precisa editar o arquivo /etc/hosts.ac e deixá-lo copiá-lo para o arquivo ativo. Veja este artigo do MacOSXHints e essas perguntas anteriores .

EDIT: Não consigo encontrar nada específico sobre o Janos Pulse, mas o Network Connect do Juniper mexe com / etc / hosts, e suspeito que o Pulse possa fazer a mesma coisa. De acordo com esta postagem do blog , se você fizer alterações enquanto estiver conectado, elas serão revertidas quando você desconectar, mas as alterações feitas enquanto desconectadas permanecerão.

Gordon Davisson
fonte
Não, eu não estou usando o AnyConnect, também não há /etc/hosts.ac. No entanto, estou usando outro software proxy: Junos Pulso
Mohammad Moghimi
1
Posso confirmar esse comportamento com o Junos Pulse 5.1.8. As alterações /etc/hostsdevem ser feitas enquanto desconectadas ou você as perderá.
MisterEd
8

Para mim está no arquivo

/etc/pulse-hosts.bak

Você precisa editar este arquivo para personalizar as diretivas de seus hosts

Quando você for reconectar / conectar-se usando a Pulse Secure VPN, ela mesclará as diretivas do

/etc/pulse-hosts.bak

com o conteúdo das diretivas Pulse e cria o

/etc/hosts

Atualização de 2018

Com a versão mais recente do Pulse Secure, você precisa sair do programa primeiro (verifique seu processo ativo).

Modifique seu host (/ etc / hosts) e reinicie o Pulse Secure.

Stanislas Nichini
fonte
-1

Não consegui usar a VM cloudera de início rápido depois de entrar na VPN. Para resolver esse problema, segui as etapas abaixo.

Etapa 1: adicione entrada /private/etc/hostspara, por exemplo

127.0.0.1 quickstart.cloudera

Etapa 2: Entre na VPN, por exemplo, estou usando a VPN F5

Etapa 3: verifique a entrada acima mencionada /etc/hostsusando o comando abaixo

cat / etc / hosts

Espero que seja útil.

Shreyash Limbhetwala
fonte
Como isso resolve o problema descrito na pergunta, ou seja, sobrescrita de "algo" /etc/hosts?
nohillside
Oi @nohillside, eu adicionei 127.0.0.1 quickstart.clouderaentrada no meu /etc/hostsarquivo, mas ele foi apagado / substituído quando eu estava me conectando à VPN. Para adicionar 127.0.0.1 quickstart.clouderaentrada permanentemente, eu adicionei no /private/etc/hostsarquivo. Internamente, sempre que você tenta se conectar à VPN, ele copia todas as entradas de /private/etc/hostspara /etc/hosts. Espero que faça sentido agora.
Shreyash Limbhetwala 9/07/19
Olá @nohillside, Just FYI ... estou usando o cliente F5 Big-IP Edge e tenho o Mac OS.
Shreyash Limbhetwala
No macOS, /etcexiste um link simbólico para private/etcisso /etc/hostse, /private/etc/hostsna verdade, é o mesmo arquivo (execute ls -li /etc/hosts /private/etc/hostspara verificar).
nohillside
1
Você está certo @nohillside, mas depois de adicionar a entrada no /private/etc/hostsmeu problema foi resolvido e depois de conectar-me à VPN, minha entrada não está sendo apagada / substituída.
Shreyash Limbhetwala
-1

Ao alterar o arquivo / etc / hosts, verifique se NÃO está conectado à VPN (pelo menos se estiver usando o Network Connect da Juniper Networks.)

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

Michel
fonte
1
Esta pergunta tem uma resposta aceita de seis anos atrás. A postagem original não menciona uma VPN em uso. Embora sua pergunta possa ser útil para outros usuários que enfrentam esse problema ao usar uma VPN (especialmente uma da Jupiter Networks), ela tem pouca relevância para a postagem original.
IconDaemon
@IconDaemon Obrigado por sua calorosa recepção. O fato de ter ocorrido há 6 anos é irrelevante, porque a página ainda é o primeiro hit no mecanismo de pesquisa. Além disso, outras 4 respostas já mencionam que uma VPN pode causar exatamente o mesmo problema (como no meu caso), mesmo que a resposta aceita pareça ter resolvido o problema do OP. No entanto, até ele reconhece em um comentário a Gordon que ele usou uma VPN (Junos Pulse). Talvez você tenha razão em votar na minha resposta, porque a desativação da VPN já foi mencionada na atualização da resposta de Stanislas (mas não é isso que você diz).
Michel