Utiliser un proxy pour certains sites seulement dans Chrome
Sommaire

En bref : Chrome sur ordinateur n’a aucun réglage qui applique un proxy à des sites précis. Il utilise une seule configuration de proxy pour toute la navigation, tirée du système d’exploitation, d’une option de lancement, d’une stratégie d’administrateur ou d’une extension. Pour n’envoyer que certains sites par un proxy, Chrome a besoin d’un script PAC, une courte fonction qui choisit un proxy pour chaque requête, que vous écrivez vous-même ou qu’une extension construit à partir de règles.
Pour utiliser un proxy sur certains sites dans Chrome, vous donnez au navigateur un script PAC qui nomme ces sites, et Chrome le consulte à chaque requête. Le script peut venir de trois endroits : votre système d’exploitation, un Chrome lancé séparément, ou une extension.
Chrome a-t-il un réglage de proxy par site ?
Non. La page des paramètres de Chrome a une seule entrée pour le proxy, intitulée « Open your computer’s proxy settings » (ouvrir les paramètres proxy de l’ordinateur), et Chromium décrit ces paramètres comme s’appliquant à tout l’ordinateur (chaînes des paramètres de Chromium).
Les notes de Chromium sur les proxys listent quatre sources possibles pour la configuration de proxy de Chrome : une stratégie d’administrateur, des options de ligne de commande, une extension et le système d’exploitation. Celle qui est en vigueur fournit une seule configuration pour tout ce que charge le navigateur, et une décision par site vit à l’intérieur de cette configuration, sous forme de script PAC.
Que fait un script PAC ?
Un script PAC (configuration automatique de proxy) est une fonction JavaScript
nommée FindProxyForURL. Chrome l’appelle pour chaque requête avec l’adresse et
le nom d’hôte, et utilise la chaîne qu’elle renvoie : DIRECT pour ne pas
passer par un proxy, ou PROXY host:port pour un serveur proxy, comme le
documente la
référence PAC de MDN.
Ce script envoie un domaine et ses sous-domaines par un proxy, et tout le reste en direct. L’adresse du proxy vient d’une plage réservée à la documentation (RFC 5737) ; mettez la vôtre à sa place.
function FindProxyForURL(url, host) {
if (host === "example.com" || dnsDomainIs(host, ".example.com")) {
return "PROXY 203.0.113.10:8080";
}
return "DIRECT";
}
Ajoutez une condition par site à faire passer par le proxy. Le return final
décide du sort de tous les sites qui ne sont pas listés.
Comment donner un script PAC à Chrome ?
De trois façons : par les réglages proxy du système, par un Chrome lancé séparément, ou par une extension. Elles diffèrent par la part de l’ordinateur qu’elles touchent et par la façon dont un changement prend effet.
Par les réglages proxy du système
Sous Windows, les paramètres de proxy ont une option de script de configuration qui prend l’adresse du script, comme le montre le guide de Microsoft, et Chrome suit le réglage du système. Le script doit être accessible à une URL. Toutes les applications qui lisent les réglages proxy du système l’utiliseront aussi : cette méthode convient donc à un script prévu pour toute la machine.
Dans une instance Chrome séparée
Chrome accepte des options de proxy au lancement, listées sur la
page des paramètres réseau de Chromium :
--proxy-server nomme un proxy, --proxy-bypass-list nomme les hôtes qui le
contournent, et --proxy-pac-url pointe vers un script. Lancé avec son propre
--user-data-dir, le second Chrome tourne à côté de votre Chrome habituel,
puisque deux instances en cours d’exécution ne peuvent pas partager un
répertoire de données
(notes de Chromium sur le répertoire des données utilisateur).
google-chrome --user-data-dir="$HOME/chrome-proxied" --proxy-server="http://203.0.113.10:8080"
Cette instance envoie tout son trafic par le proxy, donc c’est la fenêtre dans laquelle vous ouvrez un site qui décide de sa route. Changer de proxy, c’est quitter l’instance et la relancer avec de nouvelles options.
Avec une extension de proxy
Une extension définit le proxy de Chrome pour le profil dans lequel elle est installée, via l’API chrome.proxy, et un sélecteur à règles compile celles-ci en script PAC. Notre ProxyJam Connector, gratuit, fonctionne ainsi, dans Chrome et dans Microsoft Edge :
- Ajoutez un profil avec l’hôte, le port et le protocole du proxy.
- Ajoutez une règle, par exemple « Domain + subdomains » (domaine et
sous-domaines) avec
example.com, qui pointe vers ce profil. La première règle qui correspond à un site l’emporte. - Laissez le fallback (repli) sur Direct, pour que les sites qui ne correspondent à aucune règle se connectent sans proxy.
- Choisissez Auto (automatique) dans la fenêtre de la barre d’outils.
Pour un site qui correspond, le script de Connector nomme ce seul proxy, sans option directe derrière. Si le proxy est hors service, le site ne se charge pas et votre propre adresse n’est jamais utilisée pour lui.
Chaque onglet peut-il utiliser un proxy différent ?
Pas dans Chrome. L’API chrome.proxy enregistre une seule valeur par profil et ne prend pas d’onglet en paramètre, donc un onglet n’a rien de propre à régler.
L’unité qui fonctionne est un profil ou une instance. Créez un second profil Chrome pour le travail via proxy et installez-y l’extension, ou lancez une seconde instance avec ses propres options, et gardez les deux fenêtres côte à côte. Chaque fenêtre porte alors son propre proxy.
Pourquoi une règle avec un chemin échoue-t-elle sur les sites HTTPS ?
Chrome ne donne à un script PAC que le schéma, l’hôte et le port d’une adresse
https://. Le chemin, la requête et le fragment sont supprimés depuis
Chrome 52, et l’option qui désactivait ce comportement a été retirée dans
Chrome 75
(notes de Chromium sur les proxys).
Une règle comme example.com/shop/* ne correspond donc à aucune page HTTPS.
Écrivez les règles sur le nom d’hôte, et donnez à une section d’un site son
propre sous-domaine si elle a besoin de sa propre route. Les adresses http://
simples arrivent encore au script avec leur chemin, même si Chromium déconseille
de compter dessus. Connector affiche un avertissement à côté de toute règle qui
dépend du chemin.
Quelle méthode choisir ?
Pour quelques sites et un seul proxy, une extension demande le moins de travail, et la page de l’extension liste ce que Connector peut et ne peut pas faire dans Chrome. Un proxy qui demande un mot de passe est traité dans pourquoi Chrome redemande le nom d’utilisateur et le mot de passe du proxy, et le transfert des règles depuis un ancien sélecteur dans ce qui a changé avec Manifest V3. La configuration d’un profil et d’un proxy par pays, pour vérifier comment votre propre site s’affiche sur chaque marché, est décrite dans voir votre site web depuis un autre pays.
Si le proxy par lequel vous faites passer ces sites doit garder une adresse sur le réseau d’un fournisseur d’accès, c’est ce qu’est un proxy ISP. ProxyJam vend des proxys résidentiels statiques (ISP) sur la page des proxys ISP, avec les prix sur la page des tarifs.
