Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
A colpo d'occhio
Obiettivo: Usare Dev Proxy con sottosistema Windows per Linux (WSL)
Tempo: 15 minuti
Prerequisiti:Configurareil proxy di sviluppo, WSL installato
Quando si sviluppano applicazioni in WSL (sottosistema Windows per Linux), sono disponibili due opzioni per l'uso di Dev Proxy: eseguirlo nell'host Windows o in WSL. Entrambi gli approcci presentano vantaggi a seconda del flusso di lavoro di sviluppo.
Opzione 1: Dev Proxy nell'host Windows (scelta consigliata)
L'approccio più semplice consiste nell'installare ed eseguire Dev Proxy in Windows. Con il proxy automatico di WSL e la modalità di rete con mirroring, WSL usa il proxy di sistema Windows, quindi le applicazioni in esecuzione in WSL hanno il traffico intercettato da Dev Proxy senza configurare il proxy in WSL.
Configurare la rete WSL
Dev Proxy si registra come proxy di sistema Windows in un indirizzo localhost (127.0.0.1:8000 per impostazione predefinita). Per consentire alle applicazioni in WSL di usare questo proxy, abilitare le impostazioni seguenti nella [wsl2] sezione del file di configurazione WSL disponibile in %UserProfile%\.wslconfig in Windows:
[wsl2]
networkingMode=mirrored
autoProxy=true
| Setting | Description |
|---|---|
networkingMode=mirrored |
Esegue il mirroring delle interfacce di rete Windows in Linux, che consente alle applicazioni in WSL di connettersi ai server in esecuzione in Windows, ad esempio Dev Proxy, usando 127.0.0.1. Richiede Windows 11 versione 22H2 o successiva. Il valore predefinito è nat. |
autoProxy=true |
Fa sì che WSL usi le impostazioni proxy HTTP di Windows, in modo che il proxy configurato in Windows venga impostato automaticamente in WSL. Disponibile in Windows 11. Abilitata per impostazione predefinita. |
Dopo aver modificato il .wslconfig file, riavviare WSL per rendere effettive le modifiche:
wsl --shutdown
Annotazioni
Nella modalità di rete NAT predefinita le applicazioni in WSL non possono connettersi a Dev Proxy in Windows usando 127.0.0.1. Se non è possibile usare la modalità di rete con mirroring, eseguire invece Dev Proxy in WSL. Per altre informazioni, vedere Opzione 2: Dev Proxy in WSL.
Per altre informazioni, vedere Accesso alle applicazioni di rete con WSL e Configurazione delle impostazioni avanzate in WSL.
Configurare Dev Proxy su Windows
Installare Dev Proxy in Windows usando winget o l'installazione manuale.
Avviare il proxy di sviluppo:
devproxyConsiderare attendibile il certificato quando richiesto.
Usa il Dev Proxy da WSL
Quando Dev Proxy viene eseguito come proxy di sistema in Windows (comportamento predefinito) e hai configurato la rete in WSL, le applicazioni in WSL instradano automaticamente il traffico attraverso di esso.
Avviare l'applicazione in WSL come si farebbe normalmente. Dev Proxy intercetta le richieste HTTPS effettuate dalle applicazioni che rispettano le impostazioni proxy.
Importante
Riavviare WSL dopo l'avvio o l'arresto del proxy di sviluppo
WSL legge le impostazioni proxy Windows all'avvio. Se si avvia Dev Proxy dopo che WSL è già in esecuzione o se si arresta e si riavvia Dev Proxy, è necessario riavviare WSL per rendere effettive le modifiche:
wsl --shutdown
Avviare quindi una nuova sessione WSL.
Considerare affidabile il certificato in WSL
Affinché Dev Proxy possa intercettare il traffico HTTPS, le applicazioni in WSL devono accettare il certificato di Dev Proxy. È possibile copiare il certificato da Windows o esportarlo usando l'API del Proxy di sviluppo.
Opzione A: Copiare il certificato da Windows
In WSL copiare il certificato da Windows:
cp "/mnt/c/Users/<your-username>/AppData/Local/Programs/Dev Proxy/rootCert.pfx" ~/Esportare e installare il certificato:
# 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
Opzione B: Usare l'API del proxy di sviluppo
L'API del proxy di sviluppo richiede un token di connessione. Mentre Dev Proxy è in esecuzione in Windows, ottenere il token eseguendo il comando del token API in un terminale Windows:
devproxy api token
Quindi, in WSL scaricare e installare il certificato. Sostituisci <token> con il token che hai recuperato:
# 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
Annotazioni
Alcune applicazioni potrebbero richiedere una configurazione aggiuntiva per considerare attendibile l'archivio certificati di sistema. Per Node.js applicazioni, potrebbe essere necessario impostare NODE_TLS_REJECT_UNAUTHORIZED=0 per scopi di sviluppo. La disabilitazione della convalida del certificato non è consigliata per il codice di produzione.
Opzione 2: Dev Proxy in WSL
Se si preferisce eseguire completamente Dev Proxy all'interno di WSL, installarlo usando il metodo di installazione di Linux e configurare manualmente il proxy.
Installare Dev Proxy in WSL
Lo script di installazione richiede unzip per estrarre Dev Proxy. Le distribuzioni WSL nuove, ad esempio Ubuntu, non lo includono per impostazione predefinita. Installare unzip:
sudo apt update
sudo apt install unzip
Installare Dev Proxy usando lo script di installazione:
bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)"
Configurare manualmente il proxy
Poiché WSL non ha un ambiente desktop grafico, Dev Proxy non può eseguire automaticamente la registrazione come proxy di sistema. Configurare le applicazioni per l'uso manuale del proxy.
Creare un file di configurazione del proxy di sviluppo con
asSystemProxyimpostato sufalse:{ "$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" }Avviare il proxy di sviluppo:
devproxyConsiderare attendibile il certificato:
# 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-certificatesConfigurare l'applicazione per l'uso del proxy. Impostare la
HTTPS_PROXYvariabile di ambiente:export HTTPS_PROXY=http://127.0.0.1:8000In alternativa, specificarlo durante l'esecuzione dell'applicazione:
HTTPS_PROXY=http://127.0.0.1:8000 node app.js
Suggerimento
Per altre informazioni sulla configurazione del proxy per le applicazioni Node.js, vedere Usare Dev Proxy con applicazioni Node.js.
Confronto tra approcci
| Caratteristica / Funzionalità | Host Windows (opzione 1) | All'interno di WSL (opzione 2) |
|---|---|---|
| Complessità della configurazione | Semplice | Moderato |
| Requirements | Windows 11 22H2 o versione successiva, modalità di rete con mirroring WSL | None |
| Gestione dei certificati | Copia una tantum da Windows | Esportazione manuale |
| Configurazione proxy | Automatico (Proxy automatico WSL) | Manuale (HTTPS_PROXY) |
| Riavvio WSL necessario | Sì, quando si attiva o disattiva il proxy | NO |
| Funziona con tutte le app WSL | Sì | Dipende dal supporto del proxy dell'app |
Per la maggior parte degli scenari, l'esecuzione di Dev Proxy in Windows (opzione 1) è l'approccio consigliato grazie alla semplicità e alla configurazione automatica del proxy.
Risoluzione dei problemi
Le richieste non vengono intercettate quando si usa l'host Windows
Se Dev Proxy in Windows non intercetta le richieste da WSL:
Verificare che
networkingMode=mirroredeautoProxy=truesiano impostati nella[wsl2]sezione del.wslconfigfile. Per altre informazioni, vedere Configurare la rete WSL.Riavviare WSL per aggiornare le impostazioni proxy:
wsl --shutdownVerificare che Dev Proxy sia in esecuzione e registrato come proxy di sistema.
Verificare che il certificato del proxy di sviluppo sia attendibile in WSL.
unzip: comando non trovato
Se lo script di installazione non riesce con l'errore unzip: command not found , installare unzip ed eseguire di nuovo lo script di installazione:
sudo apt update
sudo apt install unzip
Errori del certificato
Se vengono visualizzati errori di certificato:
- Assicurarsi di aver installato il certificato in WSL seguendo la procedura descritta in Considerare attendibile il certificato in WSL.
- Per Node.js applicazioni, potrebbe essere necessario configurare l'applicazione per l'uso dell'agente proxy. Vedere Usare Dev Proxy con applicazioni Node.js.
Problemi di rete WSL
WSL 2 usa una scheda di rete virtualizzata. Se si verificano problemi di rete:
- Assicurarsi che Windows Firewall consenta il proxy di sviluppo.
- Provare a usare
localhostinvece di127.0.0.1quando si configura l'indirizzo proxy.