Firefox lanzado en un namespace entregó la URL a una instancia existente
Un comando del navegador puede entregar la URL a un proceso que ya se ejecuta en otro namespace. Confirme qué instancia hace la petición antes de tocar el enrutamiento.
Un comando se ejecuta dentro del namespace de la VPN, aparece una ventana de Firefox y la página sigue saliendo por la conexión normal. La configuración de enrutamiento probablemente no sea lo primero que haya que rehacer. Compruebe si el comando creó la instancia del navegador que esperaba o si entregó la URL a una que ya se estaba ejecutando en otro sitio. Esa distinción explica el resultado en un solo paso y ahorra una hora de nftables.
La señal es que la ventana aparece al instante, sin arranque en frío.
Una ventana nueva no es una instancia nueva
Las aplicaciones de escritorio suelen reutilizar un proceso existente. Un lanzador dentro de un namespace de red no traslada un receptor que ya se ejecuta a ese namespace, porque el receptor nunca formó parte del lanzamiento. El comportamiento de control remoto de Firefox está asociado a los perfiles: lanzar contra un perfil ya en uso entrega los argumentos a su propietario. La ventana nueva es real; la ruta de red nueva no.
La navegación privada y la opción de ventana nueva no son controles de aislamiento de red.
Tampoco lo es una marca de línea de comandos que solo afecte al modo de ventana. Si el perfil está ocupado, la petición va al proceso que lo posee, y ese proceso conserva el namespace con el que empezó.
Fuerce una instancia separada en un perfil separado
Use un perfil dedicado creado mediante el flujo de trabajo de perfiles admitido por el navegador y láncelo explícitamente con ese perfil. En las compilaciones de Firefox que lo admiten, --new-instance pide una instancia nueva en lugar de una ventana dentro de una existente. Consulte la propia salida de ayuda de la compilación instalada, porque las opciones disponibles varían según la versión.
No intente abrir el mismo perfil activo a la vez ni trate un aviso de perfil en uso como una instrucción para borrar los archivos de bloqueo.
Ejecute también el navegador con su usuario habitual sin root. La configuración de red a menudo necesita derechos administrativos, y es tentador dárselos al navegador porque forma parte del mismo experimento. El navegador gráfico no los necesita, y ejecutarlo como root crea una clase aparte de problemas de perfil y permisos. Mantenga el privilegio y la ruta de red como dos decisiones independientes.
Compruebe qué proceso transporta el tráfico
En Linux, el namespace de red de un proceso es visible a través de su enlace de namespace. Léalo para el proceso que cree que hace la petición y luego para el proceso que realmente la hace.
readlink /proc/ACTUAL_PID/ns/net
Los navegadores ejecutan varios procesos, así que la identidad importa: el proceso de contenido que hace la conexión puede no ser el que inspeccionó primero. Compare el enlace con el namespace que pretendía y confirme con una petición nueva e inocua que pueda atribuir a una sola instancia. La atribución es toda la prueba. Si no puede decir qué proceso hizo la conexión, no ha probado el namespace.
Cuando el namespace es realmente el equivocado
A veces el lanzador falla de verdad y la instancia nueva arranca en el namespace equivocado. Compruebe el servicio o envoltorio que la generó, porque una unidad o una entrada de escritorio puede perder el namespace cuando se vuelve a ejecutar a través del bus de sesión. Después pruebe de nuevo desde una shell dentro del namespace correcto antes de culpar al navegador. Una variable cada vez es la única forma de que esto siga siendo diagnosticable.
Compartir una pantalla tampoco comparte un resolutor.
Si el proceso está en el namespace correcto y la resolución de nombres sigue fallando,investigue su entorno de resolutor como un problema aparte. Ningún otro cambio de enrutamiento puede trasladar una petición que se entregó a la instancia equivocada antes de que empezara.