Eu encontrei a resposta! Então, a maioria de vocês saberá que o arquivo / etc / hosts resolverá domínios, um pouco como um servidor DNS. Mas como o sistema sabe procurar nesse arquivo? E como ele sabe que ordem procurar verificar esse arquivo ou um servidor DNS?
Existe um arquivo: /etc/nsswitch.conf
Eu tinha a linha:
hosts: files myhostname mdns4_minimal [NOTFOUND=return] dns
Isso significa primeiro verificar arquivos, como / etc / hosts. Em seguida, verifique o nome do host do sistema. Depois, há o mdns4, que acredito ser o protocolo para encontrar outras máquinas na rede local.
Após mdns4 é o que estava me segurando. %código%. O mdns procura nomes terminados em [NOTFOUND=return]
. Se não conseguir encontrar um, ele não passa apenas para o próximo e último método de busca .local
, ele irá realmente parar e informar ao seu sistema que o domínio não existe. Como o domínio que eu configurei no dnsmasq era um domínio dns
, ele nunca chegaria lá.
Portanto, há duas maneiras de corrigir isso. A primeira é remover .local
. Essa é a maneira que escolhi e funciona muito bem. Há um pequeno atraso porque acho que o mdns vê o [NOTFOUND=return]
e tenta consultá-lo antes de passá-lo para .local
.
Este é o aspecto do meu ficheiro agora:
hosts: files myhostname mdns4_minimal dns
Outra opção, já que eu realmente não uso mdns, é que eu poderia removê-lo completamente, ou havia uma maneira de dizer para usar um tld diferente como dns
- mas eu acho que isso seria efetivamente desabilitá-lo também.