Come usare un proxy solo per alcuni siti in Chrome
Indice

In breve: Chrome su desktop non ha un’impostazione che applichi un proxy a siti specifici. Usa una sola configurazione proxy per tutta la navigazione, presa dal sistema operativo, da un flag di avvio, da una policy dell’amministratore o da un’estensione. Per mandare solo alcuni siti attraverso un proxy, Chrome ha bisogno di uno script PAC, una breve funzione che sceglie un proxy per ogni richiesta, che scrivi tu o che un’estensione costruisce a partire da regole.
Per usare un proxy solo per alcuni siti in Chrome, dai al browser uno script PAC che elenca i siti, e Chrome lo consulta a ogni richiesta. Lo script può arrivare da tre posti: il sistema operativo, un Chrome avviato a parte, o un’estensione.
Chrome ha un’impostazione proxy per sito?
No. La pagina delle impostazioni di Chrome ha una sola voce sul proxy, intitolata «Open your computer’s proxy settings» (apri le impostazioni proxy del computer), e Chromium descrive quelle impostazioni come valide per l’intero computer (le stringhe delle impostazioni di Chromium).
Le note di Chromium sul proxy elencano quattro posti da cui Chrome può prendere la sua configurazione proxy: una policy dell’amministratore, i flag della riga di comando, un’estensione e il sistema operativo. Quello in vigore fornisce una sola configurazione per tutto ciò che il browser carica, e una decisione per sito vive dentro quella configurazione, sotto forma di script PAC.
Che cosa fa uno script PAC?
Uno script PAC (proxy auto-configuration, configurazione automatica del proxy)
è una funzione JavaScript chiamata FindProxyForURL. Chrome la chiama per ogni
richiesta con l’indirizzo e il nome host, e usa la stringa che restituisce:
DIRECT per nessun proxy, oppure PROXY host:port per un server proxy, come
documenta il
riferimento PAC di MDN.
Questo script manda un dominio e i suoi sottodomini attraverso un proxy e tutto il resto direttamente. L’indirizzo del proxy viene da un intervallo riservato alla documentazione (RFC 5737); metti il tuo al suo posto.
function FindProxyForURL(url, host) {
if (host === "example.com" || dnsDomainIs(host, ".example.com")) {
return "PROXY 203.0.113.10:8080";
}
return "DIRECT";
}
Aggiungi una condizione per ogni sito che vuoi far passare dal proxy. Il
return finale decide che cosa succede a ogni sito che non è in elenco.
In quali modi posso dare a Chrome uno script PAC?
Tre: attraverso le impostazioni proxy di sistema, attraverso un Chrome avviato a parte, o attraverso un’estensione. Si differenziano per quanta parte del computer toccano e per come una modifica entra in vigore.
Attraverso le impostazioni proxy di sistema
Su Windows, le impostazioni proxy hanno un’opzione «setup script» (script di installazione) che accetta l’indirizzo dello script, come mostra la guida di Microsoft, e Chrome segue l’impostazione di sistema. Lo script deve essere raggiungibile a un URL. Lo userà anche ogni applicazione che legge le impostazioni proxy di sistema, quindi questo modo si adatta a uno script pensato per tutta la macchina.
In un’istanza separata di Chrome
Chrome accetta flag proxy all’avvio, elencati nella
pagina di Chromium sulle impostazioni di rete:
--proxy-server indica un proxy, --proxy-bypass-list indica gli host che lo
saltano, e --proxy-pac-url punta a uno script. Avviato con il proprio
--user-data-dir, il secondo Chrome gira accanto a quello che usi di solito,
dato che due istanze in esecuzione non possono condividere una directory dei
dati
(le note di Chromium sulla directory dei dati utente).
google-chrome --user-data-dir="$HOME/chrome-proxied" --proxy-server="http://203.0.113.10:8080"
Quell’istanza manda tutto il suo traffico attraverso il proxy, quindi è la finestra in cui apri un sito a deciderne il percorso. Cambiare proxy significa chiudere l’istanza e avviarla di nuovo con nuovi flag.
Con un’estensione proxy
Un’estensione imposta il proxy di Chrome per il profilo in cui è installata, attraverso la API chrome.proxy, e uno switcher con regole le compila in uno script PAC. La nostra estensione gratuita ProxyJam Connector funziona così, in Chrome e in Microsoft Edge:
- Aggiungi un profilo con host, porta e protocollo del proxy.
- Aggiungi una regola, per esempio «Domain + subdomains» (dominio e
sottodomini) con
example.com, che punti a quel profilo. Vince la prima regola che corrisponde a un sito. - Lascia il fallback su Direct, così i siti che non corrispondono a nessuna regola si connettono senza proxy.
- Scegli Auto nel popup della barra degli strumenti.
Per un sito che corrisponde, lo script di Connector indica quel solo proxy senza alcuna opzione diretta dopo. Se il proxy non risponde, il sito non si carica e il tuo indirizzo non viene mai usato per esso.
Ogni scheda può usare un proxy diverso?
Non in Chrome. La API chrome.proxy salva un solo valore per profilo e non accetta una scheda come parametro, quindi una scheda non ha nulla di proprio da impostare.
L’unità praticabile è un profilo o un’istanza. Crea un secondo profilo di Chrome per il lavoro tramite proxy e installaci l’estensione, oppure avvia una seconda istanza con i suoi flag, e tieni le due finestre affiancate. Ogni finestra porta allora il proprio proxy.
Perché una regola con un percorso non funziona sui siti HTTPS?
Chrome dà a uno script PAC solo lo schema, l’host e la porta di un indirizzo
https://. Dalla versione 52 di Chrome percorso, query e frammento vengono eliminati, e
l’opzione che disattivava questo comportamento è stata rimossa in Chrome 75
(le note di Chromium sul proxy).
Una regola come example.com/shop/* quindi non corrisponde a nessuna pagina
HTTPS. Scrivi le regole sul nome host, e dai a una sezione di un sito il suo
sottodominio se le serve un percorso proprio. Gli indirizzi http:// semplici
arrivano ancora allo script con il loro percorso, anche se Chromium sconsiglia
di farci affidamento. Connector mostra un avviso accanto a ogni regola che
dipende dal percorso.
Quale modo scegliere?
Per pochi siti e un solo proxy, un’estensione è la via con meno lavoro, e la pagina dell’estensione elenca che cosa Connector può e non può fare su Chrome. Un proxy che chiede una password è trattato in perché Chrome continua a chiedere nome utente e password del proxy, e il trasferimento delle regole da uno switcher più vecchio in che cosa è cambiato con Manifest V3. Configurare un profilo e un proxy per paese per vedere come appare il tuo sito in ogni mercato è trattato in vedere il tuo sito da un altro paese.
Se il proxy attraverso cui instradi quei siti deve tenere un solo indirizzo nella rete di un provider internet, quello è un proxy ISP. ProxyJam vende proxy residenziali statici (ISP) nella pagina dei proxy ISP, con i prezzi nella pagina dei prezzi.
