Existe alguma ferramenta para configurar o proxy com o arquivo pac?

8

Aprendi que programas diferentes processam arquivos pac de maneiras diferentes, e talvez a maioria deles nem mesmo suporte arquivos pac. Então, eu quero saber se existe uma ferramenta que configure um proxy como 127.0.0.1:1234. E quando defino o proxy de algum programa como 127.0.0.1:1234, essa ferramenta usa um arquivo pac para decidir se deve redirecionar para o proxy ou se conectar diretamente. Existem ferramentas que atendem ao recurso acima?

Perqin
fonte

Respostas:

3

Navegadores com suporte a JavaScript geralmente suportam arquivos PAC. Normalmente, qualquer outra coisa não funciona, em particular não tenho conhecimento de nenhum software proxy disponível. Existem muitos proxies que oferecem suporte a uma maneira de executar diferentemente com base no URL de destino, mas não através de um programa JavaScript. Consulte Proxy local transparente para muitos proxies

Um arquivo PAC é um programa JavaScript, portanto, o suporte a arquivos PAC requer um intérprete JavaScript. Embora existam proxies escritos em JavaScript, não consigo encontrar um que suporte arquivos PAC. A biblioteca Python pacparser implementa o suporte ao PAC (sobre o mecanismo JavaScript da Mozilla) e existem muitos proxies escritos em Python , mas surpreendentemente não parece haver nenhum programa proxy real que use pacparser.

Gilles 'SO- parar de ser mau'
fonte
2

Eh ... finalmente eu uso outras regras em vez de pac e tentei o Privoxy e funciona. Aqui está o que eu fiz.

  1. Instale o Privoxy e ouça 127.0.0.1:1234.
  2. Obtenha o gfwlist.txt e converta -o no arquivo de ações do Privoxy.
  3. No arquivo de ações, alguns URLs são enviados usando proxy e outros se conectam diretamente.
Perqin
fonte
1

Eu estive no mesmo barco que você, tentando descobrir como analisar arquivos pac e similares para obter o IP e a porta de proxies válidos para preencher proxychains.conf.

Até agora, o método mais fácil e rápido que encontrei é escrever um script que usa lynx, grep, awk e sed. Não é o código mais bonito, mas funciona e atualiza minha tabela de proxy em um minuto ou menos. edit Se alguém pudesse me mostrar como otimizar esse script, isso seria incrível.

#!/bin/bash
proxylst=proxy.lst
proxynew=proxy.new
lstdir=~/Documents/.proxyupdate
echo "fetching proxy list"
lynx --dump https://someproxysite/proxy-server-list/port-8080/ | awk 'NR%2==0'| grep -e "8080" | awk {'print $1 " " $2'} | awk -F "[" '{print $1" "substr($2,4)}' > $lstdir/$proxylst
lynx --dump https://someproxysite/proxy-server-list/port-8080/ | awk 'NR%2==0'| grep -e "8080" | awk {'print $1 " " $2'} | awk -F "[" '{print $1" "substr($2,4)}' >> $lstdir/$proxylst
lynx --dump https://someproxysite/proxy-server-list/port-8080/ | awk 'NR%2==0'| grep -e "8080" | awk {'print $1 " " $2'} | awk -F "[" '{print $1" "substr($2,4)}' >> $lstdir/$proxylst
echo "scan complete. updating /etc/proxychains.conf.."
sed 's/^/http /' $lstdir/$proxylst > $lstdir/$proxynew
grep -v 'http *.*.*.* 8080' /etc/proxychains.conf > $lstdir/proxyconf.new && cat $lstdir/$proxynew >> $lstdir/proxyconf.new
cp $lstdir/proxyconf.new /etc/proxychains.conf
echo
rm -rf $lstdir/proxyconf.new  $lstdir/$proxylst $lstdir/$proxynew
echo "update complete."'

configure isso como uma entrada cron e atualize suas tabelas a cada hora e você estará pronto para prosseguir. Como proxychains e firefox realmente não funcionam bem juntos, eu uso o pac do proxynovacom como meu arquivo de configuração automática e funciona sem problemas.

Aaron Nelson
fonte