Eu queria usar o resolvedor de DNS não padrão para um domínio específico, e a primeira idéia era simplesmente usar o dnsmasq local. Enquanto procurava pela versão MacOS, descobri que posso conseguir o mesmo simplesmente criando um arquivo com nome de domínio em /etc/resolver/example.com
, com uma linha simples:
nameserver 8.8.8.8
Tudo foi bom e funciona como esperado, a resolução funciona e scutil --dns
confirma:
resolver #8
domain : example.com
nameserver[0] : 8.8.8.8
flags : Request A records
reach : Reachable
A próxima coisa, eu queria compartilhar isso com um amigo, criando um simples forro que ele poderia executar em seu terminal:
sudo mkdir -p /etc/resolver/ && echo "nameserver 8.8.8.9" | sudo tee /etc/resolver/example.net
Novamente, scutil --dns
confirma:
resolver #10
domain : example.net
nameserver[0] : 8.8.8.9
flags : Request A records
reach : Reachable
Então notei um erro de digitação, então corrigi o endereço para 8.8.8.8 e executei a linha novamente:
sudo mkdir -p /etc/resolver/ && echo "nameserver 8.8.8.8" | sudo tee /etc/resolver/example.net
Mas isso não parece ter qualquer efeito:
resolver #10
domain : example.net
nameserver[0] : 8.8.8.9
flags : Request A records
reach : Reachable
Eu verifiquei o conteúdo do arquivo, tudo parecia bem:
$ cat /etc/resolver/example.net
nameserver 8.8.8.8
Depois, abri o arquivo em vim
, mudei para 8.8.4.4
e:
resolver #10
domain : example.net
nameserver[0] : 8.8.4.4
flags : Request A records
reach : Reachable
Eu verifiquei várias vezes, quando faço o eco do endereço no arquivo, a alteração não tem efeito, mas basta abrir em vim
e nem mudar nada (apenas sair), anteriormente alterações de eco serão aplicadas.
Qual é o mecanismo por trás disso?