Navegador com seu próprio arquivo hosts?

33

Eu tenho vários servidores de teste e de teste que preciso modificar constantemente o meu arquivo de hosts para acessar (eles dependem do nome de domínio, então eu tenho que mudar o arquivo de hosts para fazê-los funcionar).

Eu acho isso irritante. Eu gostaria de configurar um navegador portátil de algum tipo para cada tipo de site que eu quero trabalhar. Existe alguma versão de qualquer navegador gráfico (incluindo navegadores baseados nos mecanismos de renderização de outros navegadores) que fará isso?

Dessa forma, posso simplesmente iniciar a instância que já está configurada para trabalhar com o teste se eu quiser testar o armazenamento temporário.

Alguma idéia?

EDITAR: O recurso importante é a capacidade de executar dois navegadores de maneira concisa, navegando para some-address.com , mas com um navegador direcionando os requisitos para o servidor em 1.2.3.4 e o outro direcionador do navegador as solicitações para o servidor em 5.6.7.8 .

EDITAR: (3/16/14)

Essa pergunta foi feita há vários anos e ainda não sei de uma maneira decente de fazer isso. Deixe-me tentar explicar mais, porque as pessoas parecem entender mal o problema. Não é algo que pode ser facilmente corrigido usando apenas um servidor proxy. Suponho que seja possível escrever regras extensas em um servidor proxy para resolver os problemas, mas essa é uma solução complexa para o que deveria ser um problema simples.

Então, para esclarecer:

Existem três servidores da web. Produção, teste e desenvolvimento. Cada um executa um aplicativo de vários arrendatários que se personaliza com base no nome do host usado para acessá-lo. Conceitualmente, isso é semelhante a um sistema de gerenciamento de conteúdo ou mecanismo de blog que permite que vários sites sejam executados na mesma instância do servidor. Você apenas aponta o nome do host para o servidor, e qualquer nome de host é usado para acessá-lo via mapeamento de nome de host HTTP 1.1, é o site que ele exibe.

Qualquer solução que simplesmente reescreve o arquivo host não funciona devido ao requisito de executar várias janelas do navegador ao mesmo tempo para os diferentes sites, produção, desenvolvimento, teste, etc ... Então, simplesmente alterando constantemente o arquivo host não funciona porque afeta todas as instâncias do navegador. Se você alterar o mapeamento para um navegador, os outros navegadores também serão mapeados para esse servidor, de forma que quaisquer solicitações subseqüentes irão para o servidor errado.

Tudo o que estou procurando é uma maneira de forçar essa instância do navegador a usar esse arquivo host e essa instância do navegador para usar esse arquivo host, como por meio de um parâmetro de linha de comando. Eu nem me importo se preciso instalar várias cópias do navegador.

Isso pode ser feito com o firefox portable, pois acho que usa seus próprios arquivos de configuração por cópia instalada, mas o problema é que o software de terceiros usado para administrar os sites não funciona com o firefox (os sites fazem isso, mas as ferramentas de administração não, elas funcionam bem com o chrome, o IE e o Opera, no entanto ... e eu não tenho acesso à fonte para corrigir isso).

    
por Erik Funkenbusch 14.12.2010 / 00:10

8 respostas

18

O Squid resolveu o problema para mim. Eu acho que muitos servidores proxy podem fazer o mesmo.

Especificamente, eu tive que instalar o Squid. Em seguida, altere o squid.conf para que ele acesse um arquivo de hosts alternativo. Esta é a linha que você deseja alterar:

#hosts_file /etc/hosts

No meu caso, usei hosts_file /etc/hosts-squid . Eu criei o arquivo /etc/hosts-squid e alterei o arquivo hosts-squid para que ele me desse acesso aos novos endereços IP que eu queria para o URL fornecido. Isso foi tudo que eu precisava fazer para configurar o servidor proxy do Squid.

Eu então criei um comando para iniciar meu navegador com as configurações de proxy. Eu usei:

chromium-browser --proxy-server=localhost:3128

Executar esse comando efetivamente me dá uma instância em execução do cromo que pode acessar a configuração de domínios no arquivo hosts-squid que eu criei.

Também consegui configurar mais servidores proxy usando várias instâncias do Squid para acessar um site local de produção, desenvolvimento e tudo no mesmo computador. Instruções sobre como executar várias instâncias do Squid são aqui . Eu também escrevi uma postagem no blog explicando o problema e a solução com um pouco mais de detalhes.

    
por 14.12.2011 / 03:52
6

Acredito que você está solicitando a configuração de um ambiente virtual para cada navegador isso inclui seu próprio arquivo de hosts.

Uma solução pode ser usar o Sandboxie para configurar uma sandbox separada cada um contendo seu próprio arquivo hosts. O navegador não precisa ser instalado no sandbox para usar o arquivo de hosts, acabou de começar de dentro dessa caixa de areia. Os atalhos da área de trabalho podem ser criados para iniciar o navegador a partir do sandbox.

A desvantagem é que os navegadores serão isolados do real sistema de arquivos, por exemplo, ao baixar arquivos da Internet, mas o Sandboxie inclui mecanismos para copiar esses arquivos fora do sandbox.

Infelizmente, o recurso de executar programas em mais de uma caixa de proteção ao mesmo tempo só está disponível na versão paga do Sandboxie (15 euros mais impostos por um ano de licença para uso pessoal em casa). O teste de viabilidade pode ser feito usando a versão gratuita.

Para usuários do Linux, produtos semelhantes são:

por 14.03.2014 / 12:59
3

Você pode automatizar o processo de alteração do arquivo host com firefox + HostAdmin

HostAdmin é um Firefox Addon, que ajuda você a modificar o arquivo Hosts, mudar o mapeamento de domínio-ip. O HostAdmin pode entender seu arquivo Hosts por meio de uma sintaxe de arquivo Hosts aprimorada. Além disso, HostAdmin atualiza seu cache de DNS automaticamente sempre que você altera seu arquivo Hosts, mesmo que manualmente.

Exemplo de configuração

#==== Project 1
# 127.0.0.1 localhost1
127.0.0.1 localhost2
127.0.0.1 localhost3
#====
#==== Project 2
# 127.0.0.1 localhost1
# 127.0.0.1 localhost2
# 127.0.0.1 localhost3  

Mais informações em link

Várias instâncias

Para executar duas instâncias do navegador firefox de forma independente e independente no Linux, crie vários lançadores com o seguinte script. Instale também o plugin em todo o firefox.

Firefox 1

#!/bin/bash
th="/home/$USER/tmp/p1"
mkdir -p "$th"
export HOME="$th"
firefox -no-remote

Firefox 2

#!/bin/bash
th="/home/$USER/tmp/p2"
mkdir -p "$th"
export HOME="$th"
firefox -no-remote  

Você pode usar a opção de perfil ( firefox -P ) em um navegador para usar perfis nativos para configurações diferentes e pode usar simultaneamente.

    
por 16.03.2014 / 07:31
1

Eu sei que isso não é o que você está pedindo, mas uma solução temporária poderia ser escrever um script em lote para trocar os arquivos hosts e depois claunchar o navegador.

Pelo menos, isso minimizaria o trabalho que você está fazendo.

Ou você poderia simplesmente nomear esses servidores de algo completamente diferente no arquivo hosts para que você nunca precise mudá-los para começar.

    
por 14.12.2010 / 00:18
1

Privoxy pode ser usado para essa finalidade.

    
por 04.02.2011 / 01:47
1

Não sei se isso é conveniente para você, mas uma possível solução seria instalar o IIS na máquina com os navegadores e fornecer scripts do lado do servidor (como ASP.net, PHP, Ruby ...) que mudam o arquivo hosts e, em seguida, redirecione para a página real. Em seus navegadores, você cria um marcador para esse script, por exemplo, http://localhost/config_ie.rb , que altera o arquivo hosts (requer permissões corretas nesse arquivo, é claro) e, em seguida, faz um redirecionamento 302 para a página real. p>     

por 16.03.2014 / 18:25
1

Se uma VM completa for demais, uma solução baseada em contêiner pode funcionar.

Se estamos falando de linux aqui, lxc pode ser uma solução viável.

Além disso - até mesmo uma MV completa com um X11-linux mínimo não é tão grande (máximo de 2 GB de disco) e não consome muitos recursos (máx. 512 MB de RAM) com hardware atual ...

Uma Lubuntu VM pode fazer aqui.

    
por 19.03.2014 / 22:31
0

Uma solução relativamente simples (mas talvez um pouco pesada em recursos) seria ter algumas máquinas virtuais em execução no seu host. Cada máquina virtual possui seu próprio arquivo host.

Então, você teria uma máquina virtual para o ambiente de preparação, uma para prod, etc.

    
por 18.03.2014 / 09:05