dnsmasq não está funcionando para apontar endereços .local para 127.0.0.1

4

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?

    
por user779159 21.07.2014 / 11:11

4 respostas

4

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.
por 28.08.2015 / 17:30
7

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 .

    
por 21.07.2014 / 14:40
0

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 .

    
por 20.10.2014 / 04:31
0

Provavelmente, o avahi-daemon está usando o domínio "local". Veja:

link

    
por 23.06.2018 / 16:31