O que está causando mudanças no / etc / resolver / no MacOS Sierra?

4

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?

    
por Dusan Bajic 25.10.2017 / 17:26

2 respostas

2

[It] is enough to only open it in vim and not even change anything (just exit), previously echoed changes will be applied.

Eu tive que usar sudo vim para que isso funcionasse. Executá-lo com o meu usuário regular não teve efeito. Minha teoria é que tudo o que está assistindo /etc/resolver procura mudanças no diretório, e não alterações nos arquivos dentro dele, e recarrega tudo quando vê uma mudança no diretório. O Vim cria um arquivo de troca, por padrão, no mesmo diretório do arquivo que está sendo editado. Esta é uma alteração no diretório e é selecionada pelo inspetor. Então, quando eu fiz:

sudo vim -n /etc/resolver/example.net

onde -n desabilita a criação do arquivo de troca, as mudanças no arquivo não são mais coletadas.

    
por 26.12.2017 / 09:20
0

Não consegui obter scutil --dns para retornar minha entrada de DNS esperada até que reiniciei meu computador ou forcei uma atualização das configurações de DNS do dispositivo de rede, algo assim:

networksetup -setdnsservers Wi-fi 8.8.8.8

Anotei mais alguns detalhes sobre essa correção / hack aqui: link

    
por 29.06.2018 / 00:22