Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
De un vistazo
Objetivo: Uso del proxy de desarrollo con el Subsistema de Windows para Linux (WSL)
Tiempo: 15 minutos
Requisitos previos:Configuración del proxy de desarrollo, WSL instalado
Al desarrollar aplicaciones en WSL (Subsistema de Windows para Linux), tiene dos opciones para usar el proxy de desarrollo: ejecutarlo en el host de Windows o dentro de WSL. Ambos enfoques tienen sus ventajas en función del flujo de trabajo de desarrollo.
Opción 1: Proxy de desarrollo en el host de Windows (recomendado)
El enfoque más sencillo es instalar y ejecutar proxy de desarrollo en Windows. Con el proxy automático de WSL y el modo de red reflejado, WSL usa el proxy del sistema Windows, por lo que las aplicaciones que se ejecutan en WSL tienen su tráfico interceptado por Dev Proxy sin configurar el proxy en WSL.
Configurar la red de WSL
Dev Proxy se registra como el proxy del sistema Windows en una dirección localhost (127.0.0.1:8000 de forma predeterminada). Para que las aplicaciones de WSL usen este proxy, habilite la siguiente configuración en la sección [wsl2] del archivo de configuración de WSL ubicado en %UserProfile%\.wslconfig Windows:
[wsl2]
networkingMode=mirrored
autoProxy=true
| Setting | Description |
|---|---|
networkingMode=mirrored |
Refleja las interfaces de red de Windows en Linux, lo que permite a las aplicaciones de WSL conectarse a servidores que se ejecutan en Windows, como Dev Proxy, mediante 127.0.0.1. Requiere Windows 11 versión 22H2 o posterior. El valor por defecto es nat. |
autoProxy=true |
Hace que WSL use la configuración del proxy HTTP de Windows, de modo que el proxy configurado en Windows se establezca automáticamente en WSL. Disponible en Windows 11. Habilitado de forma predeterminada. |
Después de cambiar el .wslconfig archivo, reinicie WSL para que los cambios surtan efecto:
wsl --shutdown
Nota:
En el modo de red NAT predeterminado, las aplicaciones de WSL no se pueden conectar a Dev Proxy en Windows mediante 127.0.0.1. Si no puede usar el modo de red reflejado, ejecute dev Proxy dentro de WSL en su lugar. Para obtener más información, vea Opción 2: Proxy de desarrollo dentro de WSL.
Para obtener más información, consulte Acceso a aplicaciones de red con WSL y configuración avanzada en WSL.
Configuración del proxy de desarrollo en Windows
Instale dev Proxy en Windows mediante winget o instalación manual.
Iniciar proxy de desarrollo:
devproxyConfíe en el certificado cuando se le solicite.
Uso de Dev Proxy desde WSL
Cuando Dev Proxy se ejecuta como proxy del sistema en Windows (el comportamiento predeterminado) y ha configurado la red de WSL, las aplicaciones de WSL enrutan automáticamente su tráfico a través de él.
Inicie la aplicación en WSL como lo haría normalmente. El proxy de desarrollo intercepta las solicitudes HTTPS realizadas por las aplicaciones que respetan la configuración del proxy.
Importante
Reinicie WSL después de iniciar o detener Dev Proxy
WSL lee la configuración del proxy de Windows cuando se inicia. Si inicia el proxy de desarrollo después de que WSL ya se esté ejecutando, o si detiene y reinicia el proxy de desarrollo, debe reiniciar WSL para que los cambios surtan efecto:
wsl --shutdown
A continuación, inicie una nueva sesión de WSL.
Confiar en el certificado en WSL
Para que el proxy de desarrollo intercepte el tráfico HTTPS, las aplicaciones de WSL deben confiar en el certificado de proxy de desarrollo. Puede copiar el certificado de Windows o exportarlo mediante la API de proxy de desarrollo.
Opción A: Copiar el certificado de Windows
En WSL, copie el certificado de Windows:
cp "/mnt/c/Users/<your-username>/AppData/Local/Programs/Dev Proxy/rootCert.pfx" ~/Exporte e instale el certificado:
# Export the certificate openssl pkcs12 -in ~/rootCert.pfx -clcerts -nokeys -out dev-proxy-ca.crt -passin pass:"" # Install the certificate sudo cp dev-proxy-ca.crt /usr/local/share/ca-certificates/ # Update certificates sudo update-ca-certificates
Opción B: Uso de la API de proxy de desarrollo
La API de Dev Proxy requiere un token de portador. Mientras Dev Proxy se esté ejecutando en Windows, obtén el token ejecutando el comando api token en un terminal de Windows:
devproxy api token
A continuación, en WSL, descargue e instale el certificado. Reemplace <token> por el token que recuperó:
# Download the certificate from Dev Proxy API
curl -H "Authorization: Bearer <token>" -o dev-proxy-ca.crt "http://127.0.0.1:8897/proxy/rootCertificate?format=crt"
# Install the certificate
sudo cp dev-proxy-ca.crt /usr/local/share/ca-certificates/
# Update certificates
sudo update-ca-certificates
Nota:
Algunas aplicaciones pueden requerir una configuración adicional para confiar en el almacén de certificados del sistema. Para Node.js aplicaciones, es posible que deba establecerse NODE_TLS_REJECT_UNAUTHORIZED=0 con fines de desarrollo. No se recomienda deshabilitar la validación de certificados para el código de producción.
Opción 2: Proxy de desarrollo dentro de WSL
Si prefiere ejecutar el proxy de desarrollo completamente dentro de WSL, instálelo mediante el método de instalación de Linux y configure el proxy manualmente.
Instalación del proxy de desarrollo en WSL
El script de instalación requiere unzip para extraer Dev Proxy. Las distribuciones de WSL nuevas, como Ubuntu, no incluyen esto de forma predeterminada. Instale unzip:
sudo apt update
sudo apt install unzip
Instale el proxy de desarrollo mediante el script de instalación:
bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)"
Configuración manual del proxy
Dado que WSL no dispone de un entorno de escritorio gráfico, Dev Proxy no puede registrarse automáticamente como proxy del sistema. Configure las aplicaciones para que usen el proxy manualmente.
Cree un archivo de configuración del proxy de desarrollo con
asSystemProxyestablecido enfalse:{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rc.schema.json", "asSystemProxy": false, "plugins": [ { "name": "RetryAfterPlugin", "enabled": true, "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll" }, { "name": "GenericRandomErrorPlugin", "enabled": true, "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll", "configSection": "genericRandomErrorPlugin" } ], "urlsToWatch": [ "https://jsonplaceholder.typicode.com/*" ], "genericRandomErrorPlugin": { "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/genericrandomerrorplugin.schema.json", "errorsFile": "devproxy-errors.json", "rate": 50 }, "logLevel": "information" }Iniciar proxy de desarrollo:
devproxyConfíe en el certificado:
# Export Dev Proxy root certificate openssl pkcs12 -in ~/.config/dev-proxy/rootCert.pfx -clcerts -nokeys -out dev-proxy-ca.crt -passin pass:"" # Install the certificate sudo cp dev-proxy-ca.crt /usr/local/share/ca-certificates/ # Update certificates sudo update-ca-certificatesConfigure la aplicación para que use el proxy. Establezca la variable de entorno
HTTPS_PROXY.export HTTPS_PROXY=http://127.0.0.1:8000O especifíquelo al ejecutar la aplicación:
HTTPS_PROXY=http://127.0.0.1:8000 node app.js
Sugerencia
Para obtener más información sobre cómo configurar el proxy para aplicaciones de Node.js, consulte Uso del proxy de desarrollo con aplicaciones de Node.js.
Comparación de enfoques
| Característica | Host de Windows (opción 1) | Dentro de WSL (opción 2) |
|---|---|---|
| Complejidad de la instalación | Sencillo | Moderado |
| Requirements | Windows 11 22H2 o posterior, modo de red reflejado de WSL | None |
| Administración de certificados | Copia única desde Windows | Exportación manual |
| Configuración de proxy | Automático (proxy automático de WSL) | Manual (HTTPS_PROXY) |
| Se requiere reiniciar WSL | Sí, al activar/desactivar el proxy | No |
| Funciona con todas las aplicaciones WSL | Sí | Depende del soporte de proxy de la aplicación |
En la mayoría de los escenarios, la ejecución del proxy de desarrollo en Windows (opción 1) es el enfoque recomendado debido a su simplicidad y configuración automática del proxy.
Solución de problemas
Las solicitudes no se interceptan al usar el host de Windows
Si el proxy de desarrollo en Windows no intercepta las solicitudes de WSL:
Compruebe que
networkingMode=mirroredyautoProxy=trueestén establecidos en la sección[wsl2]de su archivo.wslconfig. Para obtener más información, consulte Configuración de redes WSL.Reinicie WSL para actualizar la configuración del proxy:
wsl --shutdownCompruebe que el proxy de desarrollo se está ejecutando y que está registrado como proxy del sistema.
Compruebe que el certificado de Dev Proxy es de confianza en WSL.
unzip: comando no encontrado
Si el script de instalación falla con el error unzip: command not found, instale unzip y vuelva a ejecutar el script de instalación:
sudo apt update
sudo apt install unzip
Errores de certificado
Si ve errores de certificado:
- Asegúrese de instalar el certificado en WSL siguiendo los pasos descritos en Confiar en el certificado en WSL.
- Para Node.js aplicaciones, es posible que tenga que configurar la aplicación para que use el agente proxy. Consulte Uso del proxy de desarrollo con aplicaciones de Node.js.
Problemas de red de WSL
WSL 2 usa un adaptador de red virtualizado. Si experimenta problemas de red:
- Asegúrese de que el Firewall de Windows permite el proxy de desarrollo.
- Intente usar
localhosten lugar de127.0.0.1al configurar la dirección de proxy.