Existe-t-il un outil pour configurer un proxy avec un fichier pac?

8

J'ai appris que différents programmes traitent les fichiers pac de différentes manières, et peut-être que la plupart d'entre eux ne prennent même pas en charge les fichiers pac. Je veux donc savoir s'il existe un outil qui configure un proxy dit 127.0.0.1:1234. Et lorsque j'ai défini le proxy d'un programme sur 127.0.0.1:1234, cet outil utilise un fichier pac pour décider de rediriger vers le proxy ou de se connecter directement. Existe-t-il des outils qui satisfont la fonctionnalité ci-dessus?

Perqin
la source

Réponses:

3

Les navigateurs prenant en charge JavaScript prennent généralement en charge les fichiers PAC. Rien d'autre ne le fait généralement, en particulier je ne connais aucun logiciel proxy disponible sur le marché. Il existe de nombreux proxys qui prennent en charge un moyen de fonctionner différemment en fonction de l'URL cible, mais pas via un programme JavaScript. Voir Proxy local transparent pour de nombreux proxys

Un fichier PAC est un programme JavaScript, donc la prise en charge des fichiers PAC nécessite un interpréteur JavaScript. Bien qu'il existe des proxys écrits en JavaScript, je ne trouve pas celui qui prend en charge les fichiers PAC. La bibliothèque Python pacparser implémente le support PAC (en plus du moteur JavaScript de Mozilla), et il existe de nombreux proxy écrits en Python , mais étonnamment il ne semble pas y avoir de programme proxy réel qui utilise pacparser.

Gilles 'SO- arrête d'être méchant'
la source
2

Eh ... enfin j'utilise d'autres règles au lieu de pac et j'ai essayé Privoxy et ça marche. Voici ce que j'ai fait.

  1. Installez Privoxy et écoutez 127.0.0.1:1234.
  2. Obtenez gfwlist.txt et convertissez- le en fichier d'actions Privoxy.
  3. Dans le fichier d'actions, certaines URL seront envoyées à l'aide d'un proxy et d'autres se connecteront directement.
Perqin
la source
1

J'ai été dans le même bateau que vous, essayant de comprendre comment analyser les fichiers pac et autres pour obtenir l'IP et le port de proxy valides pour remplir proxychains.conf.

Jusqu'à présent, la méthode la plus simple et la plus rapide que j'ai trouvée consiste à écrire un script qui utilise lynx, grep, awk et sed. Ce n'est pas le plus joli code mais il fonctionne et met à jour ma table proxy en une minute ou moins. edit Si quelqu'un pouvait peut-être me montrer comment rationaliser ce script, ce serait génial.

#!/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."'

configurez-le comme une entrée cron et mettez à jour vos tables toutes les heures et vous serez prêt à partir. Étant donné que les chaînes proxy et Firefox ne fonctionnent pas vraiment bien ensemble, j'utilise le pac de proxynovacom comme fichier de configuration automatique et cela fonctionne sans problème.

Aaron Nelson
la source