local
parece ser algum tipo de palavra reservada, pelo menos no Ubuntu:
-
address=/local/127.0.0.1
- não funciona. -
address=/loc/127.0.0.1
- funciona.
Gostaria de obter .local
endereços (como test.local) para apontar para 127.0.0.1
, mas não está funcionando. Estou no ultimo Ubuntu. Em /etc/NetworkManager/NetworkManager.conf, comentei dns=dnsmasq
, em seguida, fiz sudo service network-manager restart
.
Eu, então, instalei o dnsmasq e adicionei um address=/local/127.0.0.1
ao /etc/dnsmasq.d/mycustomfile e fiz sudo service dnsmasq restart
. Além do que mencionei, não fiz outras alterações.
Mas quando eu visito test.local ele não resolve para 127.0.0.1, fazendo um ping daquele endereço .local também não é bem sucedido. Talvez o conteúdo de /etc/resolv.conf
seja relevante, é apenas o padrão que eu 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 eu 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á rodando o /etc/resolv.conf automaticamente atualiza (e volta para a entrada acima quando o dnsmasq é parado):
# 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 isso:
$ 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 fazendo um ping para localhost não funciona.
O que preciso fazer para que o dnsmasq trabalhe para resolver os endereços .local?
Parece que o dnsmasq está iniciando corretamente. Você deve testar se o dnsmasq está funcionando corretamente com nslookup test.local 127.0.0.1
.
Para garantir que o sistema esteja usando o dnsmasq, é necessário 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 resolução de upstream no dnsmasq com --resolv-file=/etc/resolv.conf.dnsmasq
.
Se o que você quer apenas envolve 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ê quer é simplesmente adicionar algumas entradas em /etc/hosts
. Eu recomecei você a desfazer todas as suas alterações no dnsmasq e suas configurações e verifique se /etc/hosts
tem o seguinte no topo:
127.0.0.1 localhost
127.0.1.1 mycomputername mycomputername.local anothername.local
Depois disso, ping mycomputername.local apontará para você (na verdade, apontará para o servidor dnsmasq em execução no 127.0.1.1, ENTÃO para localhost). Você pode até adicionar entradas para outros computadores em sua rede, de modo que pareça a você, 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 de localhost
, mas não excluir nem alterar a própria entrada localhost
. Então, assim:
127.0.0.1 localhost mycomputername mycomputername.local anothername.local
BTW: a maneira correta de modificar o resolv.conf no desktop do Ubuntu é com o gerenciador de rede na sua barra de tarefas. A maneira apropriada no servidor Ubuntu é adicionar dns-nameserver
entradas em seu dispositivo de rede em /etc/network/interfaces
e reiniciar ou fazer ifdown eth0 && ifup eth0
. Como o aviso em /etc/resolv.conf
indica, não o modifique diretamente, ele é escrito dinamicamente com base nas configurações /etc/network/interfaces
.
Provavelmente, o avahi-daemon está usando o domínio "local". Veja:
Tags dns networking dnsmasq ubuntu