Como você redireciona localmente as solicitações de DNS em um ambiente * NIX?

2

Essencialmente, quero que todos os pedidos de um site da minha máquina sejam redirecionados para outro site.

Exemplo: você faz ping no yahoo.com e o google.com recebe ping em vez disso.

ou um exemplo mais útil: todos os pedidos de facebook.com são enviados automaticamente como link

    
por Jay 08.09.2009 / 05:08

4 respostas

3

Você pode redirecionar o material local modificando seu arquivo /etc/hosts .

No entanto, o que você quer com http / https é totalmente diferente.

Uma maneira de conseguir isso é configurar um proxy local com as regras necessárias para isso. Tenha em mente que o seu proxy local deve ser configurado para ignorar o arquivo hosts e resolver os endereços IP usando um dns up-stream.

É mais ou menos assim:

  1. O navegador solicita o link através do proxy.
  2. O proxy redireciona o link para o link
  3. O navegador solicita o link através do proxy.
  4. O proxy ignora o conteúdo do arquivo de hosts.
  5. O proxy encapsula a conexão.
por 08.09.2009 / 05:31
2

Como observado nos comentários, seus dois exemplos são tópicos totalmente diferentes.

Se eu tivesse que implementar isso por algum motivo (não consigo pensar em nenhum agora), eu poderia editar meu arquivo de hosts para o primeiro exemplo, se a lista de modificações necessárias for pequena ou configurar meu próprio DNS local servidor para modificar as respostas.

Para o segundo exemplo, você provavelmente usaria um servidor proxy especificamente configurado que reescreveria as solicitações conforme necessário. Mas note que isso não poderia ser feito em uma moda "pega-tudo", já que a maioria dos sites não oferece serviços SSL, portanto, apenas redirecionar cada consulta para uma variante https correspondente não funcionará.

    
por 08.09.2009 / 11:41
0

Você pode fazer isso com o programa de cache-proxy do Squid. O truque / etc / hosts não funcionará nesse caso, já que não é inteligente o suficiente para fazer o redirecionamento no nível da porta, como necessário para http: para https :. Eu acredito que as regras de redirecionamento no Squid são robustas o suficiente para escrever alguns desses filtros. Instale-o no host local e você pode fazer intercept-proxies (acredito) para que ele ficasse invisível para os usuários.

No entanto, este é um redirecionamento de nível HTTP, não um nível de IP. Para IP puro, você precisará de outra coisa. O arquivo / etc / hosts pode fazer muito isso, mas é tudo ou nada. Se você precisar inserir lógica no que for redirecionado mais do que SE Destino = A, ENVIAR PARA B , você precisará de outro pacote.

    
por 08.09.2009 / 05:53
-1

Edite seu / etc / hosts :

#yahoo's IP address
69.147.114.224 google.com

Quanto ao item do facebook, você precisará executar um servidor DNS e definir uma webhop para https: // site em vez de http: // one.

    
por 08.09.2009 / 05:30