Gostaria de obter .local
endereços (como test.local) para apontar, 127.0.0.1
mas não está funcionando. Estou no Ubuntu mais recente. Em /etc/NetworkManager/NetworkManager.conf comentei dns=dnsmasq
então fiz sudo service network-manager restart
.
Em seguida, instalei o dnsmasq e adicionei um address=/local/127.0.0.1
ao /etc/dnsmasq.d/mycustomfile e fiz o sudo service dnsmasq restart
. Além do que mencionei, não fiz outras alterações.
Mas quando visito test.local ele não resolve para 127.0.0.1, fazer um ping nesse endereço .local também não é bem-sucedido. Talvez o conteúdo de /etc/resolv.conf
seja relevante, é apenas o padrão que não alterei:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 222.11.22.36
nameserver 222.11.22.37
Esta é a saída quando executo o dnsmasq não como um daemon:
$ sudo dnsmasq --no-daemon
dnsmasq: started, version 2.68 cachesize 150
dnsmasq: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth
dnsmasq: reading /etc/resolv.conf
dnsmasq: using nameserver 222.11.22.37#53
dnsmasq: using nameserver 222.11.22.36#53
dnsmasq: read /etc/hosts - 9 addresses
Quando o dnsmasq está em execução, o /etc/resolv.conf é atualizado automaticamente (e reverte para a entrada acima quando o dnsmasq é interrompido):
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
E isto:
$ sudo nslookup test.local 127.0.0.1
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: test.local
Address: 127.0.0.1
Mas ainda assim fazer um ping para localhost não funciona.
O que preciso fazer para que o dnsmasq funcione para resolver endereços .local?
Responder1
local
parece ser algum tipo de palavra-chave reservada, pelo menos no Ubuntu:
address=/local/127.0.0.1
- não funciona.address=/loc/127.0.0.1
-- funciona.
Responder2
Parece que o dnsmasq está iniciando corretamente. Você deve testar se o dnsmasq está funcionando corretamente com o nslookup test.local 127.0.0.1
.
Para ter certeza de que o sistema está usando dnsmasq, você deve atualizar o /etc/resolv.conf
para usar nameserver 127.0.0.1
como primeira opção.
Você também pode usar uma configuração de resolvedor upstream personalizada no dnsmasq com --resolv-file=/etc/resolv.conf.dnsmasq
.
Responder3
Provavelmente o avahi-daemon está usando o domínio "local". Ver:
https://unix.stackexchange.com/questions/352237/avahi-daemon-and-local-domain-issues
Responder4
Se o que você deseja envolve apenas apontar para sua própria máquina e não tentar usar o dnsmasq para controlar a resolução de DNS de outros computadores, então o que você deseja é apenas adicionar algumas entradas em /etc/hosts
. Eu recomendo que você desfaça todas as alterações no dnsmasq e em suas configurações e certifique-se de que /etc/hosts
tenha o seguinte no topo:
127.0.0.1 localhost
127.0.1.1 mycomputername mycomputername.local anothername.local
Depois disso, o ping em mycomputername.local apontará para você mesmo (na verdade, apontará para o servidor dnsmasq em execução em 127.0.1.1, ENTÃO para localhost). Você pode até adicionar entradas para outros computadores na sua rede para que pareça, nesta máquina, que os computadores podem ser referenciados como computer1.local
computer2.local
etc.
192.168.1.31 computer1.local
192.168.1.32 computer2.local
Se você não conseguir desfazer suas alterações com o dnsmasq, poderá adicionar essas entradas adicionais depois localhost
, mas não exclua ou altere a localhost
entrada em si. Então assim:
127.0.0.1 localhost mycomputername mycomputername.local anothername.local
BTW: a maneira correta de modificar o resolv.conf na área de trabalho do Ubuntu é com o gerenciador de rede na barra de tarefas. A maneira correta no servidor Ubuntu é adicionar dns-nameserver
entradas em seu dispositivo de rede /etc/network/interfaces
e reiniciar ou fazer ifdown eth0 && ifup eth0
. Como afirma o aviso /etc/resolv.conf
, não o modifique diretamente, ele é escrito dinamicamente com base nas /etc/network/interfaces
configurações.