Posso criar um DNS de substituição semelhante a escrever em / etc / hosts sem acesso root?

45

Eu quero definir um registro de DNS que meu navegador usará, mas não tenho acesso raiz, por isso não posso modificar /etc/hosts . Eu preciso fazer isso para testar vhosts com o apache, cujo dns ainda não foi configurado. Eu tenho acesso ao firefox e ao chrome, então se houver um plugin que possa facilitar isso; ou outras opções são úteis.

update: a alternativa para sobrescrever o dns provavelmente está modificando os cabeçalhos HTTP, se os corretos forem enviados para o apache, o conteúdo correto deve ser retornado.

    
por xenoterracide 04.02.2011 / 09:28

7 respostas

60

Eu estava procurando uma maneira de executar um programa com resolução de DNS modificada para fins de teste. Para mim, a solução estava usando a variável de ambiente HOSTALIASES :

$ echo "foo www.google.com" >> ~/.hosts
$ HOSTALIASES=~/.hosts wget foo

Veja hostname(7) .

(Nota: No exemplo, a variável de ambiente HOSTALIASES afeta apenas o processo wget . É claro que você pode usar export HOSTALIASES para que ela tenha efeito em todos os subprocessos do shell atual.)

    
por 21.11.2012 / 12:37
10

Você pode escrever um wrapper em torno da função libc para resolver nomes de host e procurá-los em um arquivo diferente de / etc / hosts. Em seguida, execute qualquer aplicativo que você gostaria de usar seu arquivo hosts com

LD_PRELOAD=wrapper.so firefox
    
por 04.02.2011 / 15:14
6

Acho que a melhor maneira de fazer isso seria configurar um proxy SOCKS5 e informar ao firefox para enviar as solicitações DNS através do proxy SOCKS5 (network.proxy.socks_remote_dns). Você poderia configurar um proxy socks5 com o openssh com bastante facilidade (a opção -D) e ter um host remoto rodando com um / etc / hosts customizado, ou algo como DNSMasq para configurações de DNS mais complexas. Efetivamente, porém, isso está empurrando a configuração das configurações de DNS para um sistema no qual você pode fazer alterações em todo o sistema.

    
por 04.02.2011 / 15:30
5

Confira a seguinte pergunta no superusuário:

link

Se as opções discutidas e o link SO não forem soluções viáveis, confira:

link

Verifique especialmente:

link

Parece que esse addon poderia ajudar, mas eu dependo da sua implementação real.

    
por 04.02.2011 / 09:41
2

Para testar vhosts, você pode definir o servidor Apache como o proxy no Firefox. O nome que você digitou será encaminhado para o Apache. Isso interromperá a navegação em outros sites, portanto, defina o proxy novamente quando terminar.

    
por 06.02.2011 / 23:42
0

Eu precisava de algo semelhante para ssh, scp etc. para um servidor que muda constantemente de IP a cada duas semanas (e nossa TI demora algumas semanas para configurar o host). Eu resolvi usando uma variável especial para este servidor: export FOO='131.227.aaa.bbb e então eu posso fazer apenas ssh bar@$FOO e eu mudo o IP no meu ~/.bashrc quando ele muda ...

    
por 17.05.2016 / 09:53
-2

Afortunado, você não pode, exceto que você escreve seu próprio navegador de internet.

Se você tiver que fazer alguns testes, você precisa de uma máquina de teste, o que quer que seja uma máquina virtual ou real, então você precisa perguntar ao seu administrador Unix (ou provedor de hospedagem) como você pode colocar em prática um ambiente de desenvolvimento. / p>

Você também pode instalar uma VM no seu PC, instalar uma distribuição Linux, Apache e testar suas alterações (não é tão difícil quanto parece)

Atualizar

Para explicar melhor, cada aplicativo é escrito usando as bibliotecas padrão, assim ninguém precisa reescrever a biblioteca de baixo nível e funciona como o gethostbyname ().

Essas funções normalmente são configuradas para usar o arquivo (/ etc / hosts) e o DNS, portanto, sem sorte, se você precisar que seu navegador resolva um nome que não esteja definido no / etc / hosts que você não tem muitas alternativas.

  1. Você pode configurar seu próprio servidor DNS e perguntar quem tem direitos de root para alterar o /etc/resolve.conf
  2. Você pode instalar um servidor proxy como DeleGate e definir algumas regras para o seu VirtualHost
  3. Solicitar direitos de sudo nesse host do cliente
  4. Altere o comportamento do aplicativo que você está usando para testar a conexão (acho que o navegador), por exemplo link
por 04.02.2011 / 09:53