Cómo usar un proxy solo para ciertos sitios en Chrome
Contenido

En resumen: Chrome en el escritorio no tiene ningún ajuste que aplique un proxy a sitios concretos. Usa una sola configuración de proxy para toda la navegación, tomada del sistema operativo, de un parámetro de inicio, de una política del administrador o de una extensión. Para enviar solo algunos sitios por un proxy, Chrome necesita un script PAC, una función corta que elige un proxy para cada petición y que escribes tú o que una extensión genera a partir de reglas.
Para usar un proxy en sitios concretos en Chrome, le das al navegador un script PAC que nombra esos sitios, y Chrome lo consulta en cada petición. El script puede venir de tres lugares: tu sistema operativo, un Chrome iniciado aparte o una extensión.
¿Tiene Chrome un ajuste de proxy por sitio?
No. La página de ajustes de Chrome tiene una sola entrada de proxy, con el texto «Open your computer’s proxy settings» (abrir los ajustes de proxy del ordenador), y Chromium describe esos ajustes como aplicables a todo el ordenador (cadenas de ajustes de Chromium).
Las notas de Chromium sobre proxies enumeran cuatro lugares de los que Chrome puede tomar su configuración de proxy: una política del administrador, parámetros de la línea de comandos, una extensión y el sistema operativo. El que esté en vigor aporta una sola configuración para todo lo que carga el navegador, y una decisión por sitio vive dentro de esa configuración como un script PAC.
¿Qué hace un script PAC?
Un script PAC (configuración automática de proxy) es una función de JavaScript
llamada FindProxyForURL. Chrome la llama en cada petición con la dirección y
el nombre del host, y usa la cadena que devuelve: DIRECT para no usar proxy, o
PROXY host:port para un servidor proxy, como documenta la
referencia de PAC de MDN.
Este script envía un dominio y sus subdominios por un proxy y todo lo demás directo. La dirección del proxy sale de un rango reservado para documentación (RFC 5737); pon la tuya en su lugar.
function FindProxyForURL(url, host) {
if (host === "example.com" || dnsDomainIs(host, ".example.com")) {
return "PROXY 203.0.113.10:8080";
}
return "DIRECT";
}
Añade una condición por cada sitio que quieras enviar por el proxy. El return
final decide qué pasa con todos los sitios que no están en la lista.
¿De qué formas puedo darle a Chrome un script PAC?
Tres: con los ajustes de proxy del sistema, con un Chrome iniciado aparte o con una extensión. Se diferencian en a qué parte del ordenador afectan y en cómo se aplica un cambio.
Con los ajustes de proxy del sistema
En Windows, los ajustes de proxy tienen una opción de script de configuración que recibe la dirección del script, como muestra la guía de Microsoft, y Chrome sigue el ajuste del sistema. El script tiene que estar accesible en una URL. Todas las aplicaciones que leen los ajustes de proxy del sistema lo usarán también, así que esto conviene para un script pensado para todo el equipo.
En una instancia aparte de Chrome
Chrome acepta parámetros de proxy al iniciarse, enumerados en la
página de ajustes de red de Chromium:
--proxy-server nombra un proxy, --proxy-bypass-list nombra los hosts que se
lo saltan y --proxy-pac-url apunta a un script. Iniciado con su propio
--user-data-dir, el segundo Chrome funciona junto al habitual, ya que dos
instancias en ejecución no pueden compartir un directorio de datos
(notas de Chromium sobre el directorio de datos de usuario).
google-chrome --user-data-dir="$HOME/chrome-proxied" --proxy-server="http://203.0.113.10:8080"
Esa instancia envía todo su tráfico por el proxy, así que la ventana en la que abres un sitio decide su ruta. Cambiar el proxy significa cerrar la instancia y volver a iniciarla con otros parámetros.
Con una extensión de proxy
Una extensión fija el proxy de Chrome para el perfil en el que está instalada, mediante la API chrome.proxy, y un selector con reglas las compila en un script PAC. Nuestro ProxyJam Connector, gratuito, funciona así, en Chrome y en Microsoft Edge:
- Añade un perfil con el host, el puerto y el protocolo del proxy.
- Añade una regla, por ejemplo «Domain + subdomains» (dominio y subdominios)
con
example.com, que apunte a ese perfil. Gana la primera regla que coincide con un sitio. - Deja el fallback (alternativa) en Direct (directo) para que los sitios que no coinciden con ninguna regla se conecten sin proxy.
- Elige Auto (automático) en la ventana emergente de la barra de herramientas.
Para un sitio que coincide, el script de Connector nombra ese único proxy, sin opción directa detrás. Si el proxy no responde, el sitio no carga y tu propia dirección nunca se usa para él.
¿Puede cada pestaña usar un proxy distinto?
En Chrome, no. La API chrome.proxy guarda un solo valor por perfil y no acepta una pestaña como parámetro, así que una pestaña no tiene nada propio que fijar.
La unidad que funciona es un perfil o una instancia. Crea un segundo perfil de Chrome para el trabajo con proxy e instala allí la extensión, o inicia una segunda instancia con sus propios parámetros, y ten las dos ventanas una al lado de la otra. Así cada ventana lleva su propio proxy.
¿Por qué falla en sitios HTTPS una regla con ruta?
Chrome solo le da a un script PAC el esquema, el host y el puerto de una
dirección https://. La ruta, la consulta y el fragmento se eliminan desde
Chrome 52, y la opción que desactivaba esto se retiró en Chrome 75
(notas de Chromium sobre proxies).
Una regla como example.com/shop/* no coincide, por tanto, con ninguna página
HTTPS. Escribe las reglas sobre el nombre del host, y dale a una sección de un
sitio su propio subdominio si necesita su propia ruta. Las direcciones http://
simples todavía llegan al script con su ruta, aunque Chromium desaconseja
depender de ello. Connector muestra un aviso junto a cualquier regla que dependa
de la ruta.
¿Qué forma conviene elegir?
Para unos pocos sitios y un solo proxy, una extensión es lo que menos trabajo da, y la página de la extensión enumera lo que Connector puede y no puede hacer en Chrome. Un proxy que pide contraseña se trata en por qué Chrome sigue pidiendo el usuario y la contraseña del proxy, y el traslado de reglas desde un selector antiguo, en qué cambió con Manifest V3. Cómo configurar un perfil y un proxy por país para comprobar cómo se ve tu propio sitio en cada mercado se explica en ver tu sitio web desde otro país.
Si el proxy por el que envías esos sitios debe mantener una dirección en la red de un proveedor de internet, eso es lo que es un proxy ISP. ProxyJam vende proxies residenciales estáticos (ISP) en la página de proxies ISP, con los precios en la página de precios.
