Simule a manipulação do arquivo etc / hosts no Google Chrome


30

Como posso configurar o Chrome para fazer referência a pesquisas de nome de host localmente e não do arquivo etc / hosts padrão?

Ao depurar um site, às vezes é útil configurar entradas nos hosts C: \ Windows \ system32 \ drivers \ etc \ que substituem determinados domínios pelo localhost, permitindo-me testar versões dinâmicas de sites ou domínios que podem conflito com sites reais ao vivo.

Posso configurar o Google Chrome de uma maneira que simule e simplifique esse processo?

Não modificarei a instância do navegador para que se comporte como se o etc / hosts tivesse sido modificado, mesmo que isso possa representar um risco de segurança demais para uma extensão.


Marque esta solicitação de recurso com uma estrela: bugs.chromium.org/p/chromium/issues/…
Ali

Respostas:



7

Uma maneira de atingir seu objetivo real não envolve extensões do Chrome, ou mesmo o Chrome. Dessa maneira, é necessário configurar um servidor HTTP proxy inteligente, apontar o Chrome para ele e adicionar regras de reescrita ao servidor proxy que reescreve os URLs ocultos.

Muitas pessoas fazem isso, com vários servidores HTTP proxy diferentes - muitos para abordar cada um em detalhes em uma resposta aqui. Eles fazem isso com o objetivo de zapping de anúncios, bugs da Web e similares, mas o princípio e o mecanismo são idênticos ao que você deseja fazer. Eles querem que o navegador WWW busque um URL específico normalmente, mas o conteúdo real recebido é de outro URL (local ou não). A única coisa que o navegador WWW precisa saber é que ele fala com a Internet através de um servidor proxy.

Por um exemplo, consulte o Ad Zapper no SourceForge . Esse é um script Perl que funciona em conjunto com o servidor HTTP do proxy Squid para reescrever URLs dinamicamente no servidor proxy. Como você pode ver em seu banco de dados de configuração, as pessoas empregaram seu mecanismo para uma ampla variedade de propósitos, desde garantir que sempre se veja as formas "imprimíveis" de artigos sobre serviços de notícias, até se livrar dos redirecionamentos aleatórios de publicidade em sites de pornografia na Internet.

Observe que isso é muito melhor do que o que você está fazendo com o hostsarquivo, que é um mecanismo inadequado para manipular o serviço WWW. hoststrata apenas de nome → pesquisas de endereço, agrupa tudo o mais (fora do navegador WWW) que precisa fazer pesquisas de nome → endereço e (como você provavelmente já sabe) exige que todo nome de host reescrito seja adicionalmente configurado como um host virtual em o servidor HTTP de conteúdo de destino. Um servidor HTTP de proxy de reescrita desse tipo, por outro lado, lida com URLs e afeta apenas os navegadores HTTP e WWW configurados para usá-lo em primeiro lugar. Assim, ele pode fazer coisas como reescrever os URLs JavaScript e deixar todo o resto do mesmo site da WWW; reescreva toda uma carga de nomes de host em apenas um; e faça (ainda mais) correspondência de padrões. (Existem exemplos disso no banco de dados de configuração do Ad Zapper, observe.) E pode-se fazer coisas como um navegador da WWW visualizando o mundo através do proxy de reescrita e outro visualizando-o diretamente, em uma única máquina simultaneamente.


Um benefício adicional sobre uma extensão do Chrome - ele funciona em vários navegadores! No momento, ainda estou usando o arquivo hosts, mas considerarei mudar para um proxy se surgir a necessidade real.
ripper234

4

Usei (e ainda uso) o HostAdmin religiosamente, mas ter que esvaziar o cache ou abrir uma nova janela anônima sempre foi uma tarefa árdua, então acabei desenvolvendo uma extensão do Chrome para mim no ano passado para ajudar em uma situação semelhante, e Recentemente, publiquei uma versão muito grosseira na Chrome Web Store, chamada LiveHosts .

O essencial é que, embora o @JdeBP esteja certo e a configuração de um proxy seja a solução correta, geralmente não é uma opção. Uma extensão do Chrome não pode replicar exatamente o que acontece quando você altera o arquivo do host; portanto, o que o LiveHosts faz agora é:

  • permite configurar várias entradas de nome de host / IP;
  • detectar solicitações para um dos nomes de host definidos;
  • redirecione a solicitação para o IP desejado com o cabeçalho HTTP Host apropriado;
  • adicione uma referência visual (e feia, admito) no URL da barra de endereço, que será algo como http://127.0.0.1/www.example.com/whateverelse;
  • permita pares de host / IP diferentes em guias diferentes ao mesmo tempo.

Não é bonito, mas é bom o suficiente para o desenvolvedor web padrão que está tentando alternar entre ambientes rapidamente. Obviamente, existem algumas ressalvas:

  • dependendo do servidor, partes de uma página da web referentes ao URL do site (como atributos href e src) podem ser diferentes do original;
  • window.location tem um valor diferente que pode potencialmente eliminar trechos de JavaScript;
  • a maioria das solicitações de origem cruzada não funcionará.

0

O plugin Hosts Virtuais é o único que funcionou para mim como eu esperava.

Acesse hosts virtuais de um servidor sem a necessidade de redirecionamento de host ou DNS.


2
Para mim, essa extensão parece redirecionar do lado do cliente para o endereço IP, que não é o mesmo que uma modificação de arquivo de hosts.
Jeff Ward

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.