Eu instalei, configurei o servidor DNS (instância local do Dnsmasq) que resolve como localhost como eu quero, tudo bem.
Quando fico offline, ele para de funcionar, porque o OS X esvazia o conteúdo do resolv.conf e ignora a tentativa de refletir as alterações nesse arquivo.
Alguma idéia de como configurar o DNS mesmo quando está offline?
Problema semelhante (não resolvido): http://blog.steamshift.com/geek/leopard-lookupd-and-local-web-development-sites
A principal motivação é facilitar o desenvolvimento do aplicativo RoR, que usa subdomínios como chaves de conta. E você não pode usar 127.0.0.1 * .yourapp.local em / etc / hosts. Um cara registrou o domínio smackaho.st e srt DNS para ele como .smackaho.st em 127.0.0.1 mas ainda assim, você não pode usá-lo quando estiver trabalhando offline.
EDIT: tentou o comando scutil, mas parece que você pode alterar o DNS se estiver offline
NOTA: quando você tem todas as interfaces inativas, não é possível definir servidores DNS na Pref. painel.
fonte
Respostas:
VEJA A ATUALIZAÇÃO ABAIXO!
Também gosto de usar o Dnsmasq na minha máquina local e também tive esse problema. Aqui está a solução:
De
man 5 resolver
:/etc/resolver/
não está presente por padrão; você deve criar você mesmo.Também na página do manual:
Portanto, se você quiser que todas as consultas de DNS do domínio de nível superior
dev
sejam roteadas para o servidor de nomes local, você deve:configd
não altera os arquivos/etc/resolver/
, portanto, essa configuração persistirá através de alterações na rede e reinicializações.ATUALIZAÇÃO 17 de julho de 2012
Infelizmente, no OS X Lion, o resolvedor superior (conforme mostrado
scutil --dns
) desaparece quando nenhuma interface está ativa:Observe que o resolvedor nº 1 está vazio, mas a entrada do servidor de nomes derivado do / etc / resolver permanece.
Acontece que, como você pode especificar o domínio do resolvedor diretamente no arquivo / etc / resolver /, a especificação do domínio raiz da Internet especial
.
causa a criação de uma entrada global do resolvedor que se parece com:Agora todas as consultas DNS são roteadas para o host local, mesmo quando offline.
Obviamente, você ainda precisará resolver os domínios escolhidos como 127.0.0.1 usando algo como a opção --address do dnsmasq:
Em suma:
cf. http://opensource.apple.com/source/configd/configd-395.11/dnsinfo/dnsinfo_flatfile.c
fonte
scutil --dns
quando não estiver conectado à internet tudo que eu vejo éNo DNS configuration available
que eu segui as instruções acima, mas sem sortePor que não fazer as entradas em / etc / hosts? Estou com problemas para pensar em uma situação em que você realmente precisa estar executando um servidor DNS completo. Uso entradas de arquivos do host o tempo todo para realizar coisas como essas nos meus Macs.
O resolvedor no OS X funciona de maneira diferente da do Linux ou de outros Unixes. Provavelmente isso faz parte do que está causando dor. Por exemplo, ele tem preferências para qual método de resolução usar primeiro e armazena em cache os resultados de todas as consultas por um período de tempo.
Você adicionou o servidor DNS à interface no painel de preferências de rede? Isso deve garantir que o resolvedor use esse servidor para suas consultas, caso decida procurar uma entrada DNS.
fonte
(respondendo b / c Ainda não posso comentar ...)
Como você está offline?
(melhor resposta que recebi agora)
Portanto, você deve poder inserir algo na interface do usuário e ele deve permanecer. Eu já havia feito isso algumas vezes quando não gostava do servidor DNS que meu servidor DHCP local fornece.
fonte
O OSX possui o arquivo de configuração /etc/dhcp3/dhclient.conf que as configurações normais do cliente DHCP do Linux / UNIX possuem?
Nesse caso, ele deve ter uma linha que você pode descomentar
para que o cliente DHCP sempre adicione essa linha ao seu resolv.conf
fonte
Tente adicionar um segundo serviço Ethernet configurado com um endereço estático e 127.0.0.1 como seu servidor DNS. Ou adicione um local de rede que defina seu servidor DNS como 127.0.0.1. Ambas as alterações seriam feitas em "Preferências do sistema" no painel "Rede".
fonte
Pode ajudar apenas colocar
no / etc / hosts, portanto, não é necessário resolver para encontrar o host local.
fonte