Seu arquivo resolv.conf não estava apontando para o lugar errado - ../run/systemd/resolve/stub-resolv.conf
é onde deveria apontar por padrão.
O problema é que systemd-resolved
não passa nomes não pontuados para o DNS. Aparentemente isso está funcionando "como projetado". Veja esta questão do github que afirma que "resolvido nunca permitirá que pesquisas de rótulo único vazem para o DNS unicast".
Se você concorda ou não com o raciocínio nesse problema do github, é uma maneira de corrigir isso. Não é necessário fazer alterações na configuração padrão da sua máquina Ubuntu:
-
Primeiro, o DNS da sua LAN deve ter um nome de domínio.
Se você estiver usando o dnsmasq, adicione o seguinte a
/etc/dnsmasq.conf
em seu servidor DNS:expand-hosts domain=your-domain # replace "your-domain" with domain of your choice
Agora você deve conseguir resolver os nomes de host da LAN se adicionar o domínio:
nslookup web1.your-domain
-
Em segundo lugar, verifique se o nome do domínio da sua LAN também está definido no servidor DHCP, se for diferente do servidor DNS. No meu servidor DHCP (meu roteador), essa configuração é chamada apenas de "Nome de domínio".
Se você renovar sua concessão de DHCP em sua caixa do Ubuntu, deverá ver uma diretiva de busca em
/run/systemd/resolve/stub-resolv.conf
:nameserver 127.0.0.53 search your-domain
Agora, ao procurar web1
, ele será expandido para web1.your-domain
, que será resolvido usando o DNS.
$ nslookup web1
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
Name: web1.your-domain
Address: 192.168.1.107
Se você usar dig
em vez de nslookup
, dig
não usará o caminho de pesquisa por padrão - use sua opção +search
para ativar isso.