Questão Resolver um nome de domínio com / etc / hosts somente se na rede local


Eu gostaria de linkar mydomain.com para 192.168.1.X  somente se eu estiver conectado à minha rede local. Caso contrário, gostaria de deixar os servidores DNS resolvê-lo (se eu estiver fora da minha rede).

Agora, quando eu faço ping mydomain.com, tenta se conectar a 192.168.1.X onde quer que eu esteja, porque eu tenho a linha 192.168.1.22 mydomain.com no meu /etc/hosts Arquivo.


1


origem


Você certamente poderia fazer algo estranho com scripts, mas eu não recomendaria isso. Uma abordagem como proposta por joeqwerty faz sentido. Em vez de optar por um servidor DNS totalmente desenvolvido, você pode simplesmente manter uma entrada desse tipo no roteador que normalmente fornece o DNS para pequenas configurações de home office, caso o dispositivo ofereça suporte a isso. - binaryanomaly


Respostas:


Você precisará usar um servidor DNS interno em sua rede para hospedar uma zona DNS para mydomain.com. Então, quando você estiver conectado à sua rede interna, mydomain.com será resolvido pelo seu servidor DNS interno (supondo que você esteja usando um servidor DHCP internamente e que seu computador esteja configurado para usar o DHCP para sua configuração de endereço IP e que o servidor DHCP está configurado para fornecer seu servidor DNS interno para você via DHCP). Quando você não estiver conectado à sua rede interna, mydomain.com será resolvido pelos servidores DNS que você estiver usando nessas outras redes.

O problema com o uso do arquivo Hosts é que ele tem precedência sobre os servidores DNS configurados na configuração TCP / IP do cliente, portanto, mydomain.com sempre resolverá o que está no arquivo Hosts, independentemente da rede à qual você está conectado.


1



Obrigado, mesmo se eu achar que não configurarei meu próprio servidor DNS. Não vale a pena sobre o que eu quero fazer, vou apenas acessar meu servidor de casa a partir do URL público (mais lento, mas de fácil manutenção). - ryancey


Crie um segundo arquivo HOSTS que esteja em branco. Crie um script para que um substitua o outro:

  • HOSTS -> HOSTStmp
  • HOSTS2 -> HOSTS
  • HOTSTtmp -> HOSTS2

Execute o script conforme necessário para alternar entre os arquivos HOSTS (e talvez também o script redefina as interfaces de rede).


-1