Estou tentando configurar meu computador para resolver alguns domínios usando um servidor DNS local. O servidor DNS está em 192.168.1.123 e é capaz de resolver tudo normalmente.
Em outros computadores, instalei o dnscrypt-proxy e mudei /etc/resolv.conf
para:
nameserver 127.0.0.1
options edns0 single-request-reopen
Também garanti que /etc/resolv.conf
não seja substituído pelo NetworkManager.
Em seguida, editei /etc/dnscrypt-proxy/dnscrypt-proxy.toml
para usar forwarding_rules
para encaminhar home.arpa
para 192.168.1.124. Tenho um serviço GIT em execução neste IP e o servidor DNS em 192.168.1.123 está configurado para resolver git.home.arpa
para 192.168.1.124. ideia é que eu possa abrir git.home.arpa
.
Quando eu uso host git.home.arpa
ou drill git.home.arpa
, meu desktop, meu laptop e o servidor DNS em 192.168.1.123 retornam o IP correto de 192.168.1.124. Também posso ver as consultas nos logs do servidor DNS.
Quando faço isso curl git.home.arpa
na área de trabalho e no servidor DNS, vejo o HTML correto do serviço GIT. No entanto, no meu laptop eu recebo arquivos curl: (6) Could not resolve host: git.home.arpa
. Eu também recebo a mesma coisa dos navegadores.
Pelo que posso dizer, o laptop e o desktop têm configurações idênticas. Os seguintes arquivos são iguais entre eles:
/etc/resolv.conf
/etc/nsswitch.conf
/etc/dnscrypt-proxy/dnscrypt-proxy.toml
/etc/dnscrypt-proxy/forwarding-rules.txt
Tentei reiniciar o laptop, reiniciar o serviço NetworkManager, reiniciar o dncrypt-proxy. Presumivelmente deve haver alguma diferença, já que um está funcionando e o outro não, mas não sei onde.
Por que o curl não conseguiria resolver um domínio, se o host e o drill podem resolvê-lo? Como posso descobrir qual é o problema?
Acontece que o laptop estava funcionando
systemd-resolved
. Fiquei surpreso com isso, porque:nsswitch.conf
resolv.conf
dnscrypt-proxy.service
estava instalado e funcionandoEntão pensei que não seria possível que dois resolvedores estivessem rodando lado a lado sem quebrar o DNS. Acontece que eles eram. Inspirado em https://unix.stackexchange.com/a/708899/217968 dei outra olhada e de fato ele estava desabilitado no desktop, desabilitado no servidor DNS, mas habilitado no laptop. Eu corrigi isso com:
E o DNS do meu laptop começou a funcionar.