¿Puede JavaScript cambiar el proxy de tu navegador?
Distingue el código normal de una página web de una extensión autorizada que puede configurar el proxy.
Un script que se ejecuta en una página web no tiene ningún ajuste general que cambie el proxy de salida del navegador. Una extensión del navegador puede tener permisos adicionales, pero funciona bajo un modelo de seguridad y configuración distinto.
Esta distinción se pierde en respuestas antiguas de foros. El código que usa partes internas privilegiadas de Firefox, módulos de extensión antiguos o SDK de complementos abandonados nunca fue una API normal de página web. Pegar ese fragmento en una página no concede esos privilegios.
Usa la API de extensiones del navegador
Una extensión de Firefox puede usar la API proxy.settings documentada con los permisos necesarios. Chrome ofrece su propia API de extensiones para el proxy. Sus modelos de configuración son distintos; revisa los requisitos del manifiesto y los ajustes admitidos del navegador que quieras usar.
Una extensión también debe tener en cuenta las políticas u otras extensiones que controlen el mismo ajuste. Una llamada correcta a la API no es motivo para suponer que cada destino sigue ahora la ruta que querías. Inspecciona la configuración resultante y conserva la capacidad del usuario de restaurarla.
Cambiar la URL de una petición cambia el destino
Una página web puede llamar a un servidor de aplicación que reenvía una petición en su nombre, según las reglas web del navegador. En ese diseño el navegador se conecta a ese servidor de aplicación. No ha instalado un proxy general ni ha cambiado la ruta que usan las pestañas no relacionadas.
Del mismo modo, enviar una cabecera con otra dirección IP no cambia la dirección de origen de la conexión. Un destino puede interpretar los metadatos de reenvío de confianza según su propia política, pero la ruta de red es un hecho aparte.
Si tu objetivo es un proxy que cambia la IP para navegar, elige una entrada adecuada de la lista de proxies gratuitos y configura un proxy de navegador admitido o una extensión autorizada. Si el objetivo es la petición remota de una aplicación web, diseña esa función en torno a sus límites reales de servidor y navegador.