Alterando dinamicamente o servidor proxy para todo o tráfego de saída

1

Eu tenho três servidores proxy na minha faculdade, todos eles estão conectados a três provedores de serviços diferentes. Em diferentes instantes de tempo, diferentes proxies dão velocidade diferente (dependendo do número de usuários que usam o proxy naquele instante de tempo). Eu sinto que mudar a configuração do servidor proxy no navegador (ou em qualquer outro aplicativo de rede) em diferentes momentos consome muito tempo. Eu quero escrever um script que pode alterar o servidor proxy usado por todos os meus aplicativos de rede em diferentes momentos dinamicamente, fazendo algum tipo de teste.

Não consigo começar com isso. Alguém pode me dar uma ideia para que eu possa implementá-lo.

    
por pradeepchhetri 07.04.2012 / 18:18

4 respostas

1

Você pode usar PROXY.PAC ou WPAD.DAT

é apenas um JavaScript, você pode hospedar esse arquivo em qualquer servidor da Web em sua intranet e configurá-lo no lado do cliente http://webserever-ip/proxy.pac . Usando esse script, você pode fazer balanceamento de carga com seus três proxy. Além disso, você pode dividir o tráfego usando intervalos de ip neste script java, existem vários recursos como intranet ou qualquer site.

Você pode configurar este script automaticamente em todos os seus clientes, abaixo da opção são necessários para o mesmo

  • se você estiver usando a Rede de Domínio, defina Proxy.pac usando a Política de Grupo
  • Você pode definir o WPAD.DAT usando o DHCP
  • DNS
por 04.01.2013 / 18:59
0

Para configurar o proxy a partir de um único ponto, você pode configurar um roteador que faça a reescrita do endereço de destino usando uma regra iptables como

iptables -t nat -A PREROUTING -p tcp -d VIRTUAL_PROXY_IP --dport 80 -j NETMAP --to CURRENT_PROXY_IP

Todos os aplicativos e navegadores usariam VIRTUAL_PROXY_IP como proxy, o que seria necessário rotear por meio desse roteador especial. Você altera a regra conforme necessário para alterar o CURRENT_PROXY_IP.

A vantagem dessa abordagem é que ela é rápida de configurar e fácil de administrar. A desvantagem é que provavelmente haverá alguma interrupção em alguns usuários que possuem sessões abertas (dependendo do tipo de sessões e do tipo de proxies upstream). Você também precisa escrever seu próprio script para alterar os proxies ou alterá-los manualmente.

Uma solução melhor, sugerida pelo comentário do sr_, seria configurar um balanceador de carga. Considere LVS ou HAProxy

    
por 09.04.2012 / 09:26
0

Supondo que você esteja usando o squid Dois proxies irmãos compartilhando o mesmo nome visível parecem fazer o truque para mim. Eu tenho 2 configurar com os nomes proxy1 e proxy2, respectivamente. O nome do host visível é proxy. Tudo o que você deve fazer nesse ponto é criar um registro A no dns para o proxy de nome com os endereços IP para proxy1 e proxy1. Contanto que eles sejam configurados como irmãos em seu squid.conf. Dê uma olhada aqui link

    
por 05.11.2012 / 14:06
0

Solução simples

Configure um alias de host para os servidores proxy em seu arquivo de hosts locais, como

192.168.1.1 chosenproxy #192.168.1.2 chosenproxy #192.168.1.3 chosenproxy

Agora configure todos os aplicativos para usar esse alias http://chosenproxy:8080

Para tentar servidores diferentes, basta editar o endereço IP no arquivo de hosts.

Solução de portas gerenciáveis

Se você também precisar alterar a porta, use um dos programas de proxy leves, como o polipo. Polipo é executado por padrão na porta 8123, portanto, defina cada aplicativo para conectar via polipo em execução localmente, por exemplo, usando a configuração http://localhost:8123

Em seguida, para tentar um servidor proxy diferente, altere o arquivo de configuração polipo ( /etc/polipo/config ) para especificar o servidor Parent Proxy e o número da porta corretos e reinicie o polipo para ativar a alteração.

    
por 08.04.2014 / 11:58

Tags