Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Överblick
Mål: Använda Dev Proxy med Windows-undersystem för Linux (WSL)
Tid: 15 minuter
Krav:Konfigurera Dev Proxy, WSL är installerat
När du utvecklar program i WSL (Windows-undersystem för Linux) har du två alternativ för att använda Dev Proxy: köra det på din Windows-värd eller i WSL. Båda metoderna har sina fördelar beroende på ditt arbetsflöde för utveckling.
Alternativ 1: Dev Proxy på Windows-värd (rekommenderas)
Den enklaste metoden är att installera och köra Dev Proxy i Windows. Med WSL:s automatiska proxy och speglat nätverksläge använder WSL Windows systemproxy, så program som körs i WSL får sin trafik fångad upp av Dev Proxy utan att konfigurera proxyn i WSL.
Konfigurera WSL-nätverk
Dev Proxy registrerar sig som Windows systemproxy på en localhost-adress (127.0.0.1:8000 som standard). För att program i WSL ska kunna använda den här proxyn aktiverar du följande inställningar i avsnittet [wsl2] i WSL-konfigurationsfilen som finns på Windows på %UserProfile%\.wslconfig:
[wsl2]
networkingMode=mirrored
autoProxy=true
| Setting | Description |
|---|---|
networkingMode=mirrored |
Speglar Windows nätverksgränssnitt i Linux, vilket gör att program i WSL kan ansluta till servrar som körs på Windows, till exempel Dev Proxy, med hjälp av 127.0.0.1. Kräver Windows 11 version 22H2 eller senare. Standardvärdet är nat. |
autoProxy=true |
Gör att WSL använder Windows HTTP-proxyinställningar, så att proxyn som konfigureras på Windows anges automatiskt i WSL. Tillgänglig på Windows 11. Aktiverad som standard. |
När du har ändrat .wslconfig filen startar du om WSL för att ändringarna ska börja gälla:
wsl --shutdown
Anmärkning
I nat-standardnätverksläget kan program i WSL inte ansluta till Dev Proxy på Windows med hjälp av 127.0.0.1. Om du inte kan använda speglat nätverksläge kör du Dev Proxy i WSL i stället. Mer information finns i Alternativ 2: Dev Proxy i WSL.
Mer information finns i Åtkomst till nätverksprogram med WSL och Konfiguration av avancerade inställningar i WSL.
Konfigurera Dev Proxy i Windows
Installera Dev Proxy i Windows med winget eller manuell installation.
Starta Dev Proxy:
devproxyLita på certifikatet när du uppmanas att göra det.
Använda Dev Proxy från WSL
När Dev Proxy körs som systemproxy på Windows (standardbeteendet) och du har konfigurerat WSL-nätverk, dirigerar program i WSL automatiskt sin trafik genom den.
Starta din applikation i WSL som vanligt. Dev Proxy fångar upp HTTPS-begäranden som görs av program som respekterar proxyinställningarna.
Viktigt!
Starta om WSL när du har startat eller stoppat Dev Proxy
WSL läser Windows proxyinställningar när den startas. Om du startar Dev Proxy när WSL redan har körts, eller om du stoppar och startar om Dev Proxy, måste du starta om WSL för att ändringarna ska börja gälla:
wsl --shutdown
Starta sedan en ny WSL-session.
Lita på certifikatet i WSL
För att Dev Proxy ska kunna fånga upp HTTPS-trafik måste program i WSL lita på Dev Proxy-certifikatet. Du kan antingen kopiera certifikatet från Windows eller exportera det med hjälp av Dev Proxy-API:et.
Alternativ A: Kopiera certifikatet från Windows
I WSL kopierar du certifikatet från Windows:
cp "/mnt/c/Users/<your-username>/AppData/Local/Programs/Dev Proxy/rootCert.pfx" ~/Exportera och installera certifikatet:
# 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
Alternativ B: Använd DEV Proxy-API:et
Dev Proxy-API:et kräver en bärartoken. När Dev Proxy körs på Windows hämtar du token genom att köra kommandot api token i en Windows-terminal:
devproxy api token
I WSL laddar du sedan ned och installerar certifikatet. Ersätt <token> med den token som du hämtade:
# 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
Anmärkning
Vissa program kan kräva extra konfiguration för att lita på systemcertifikatarkivet. För Node.js program kan du behöva ange NODE_TLS_REJECT_UNAUTHORIZED=0 i utvecklingssyfte. Att inaktivera certifikatverifiering rekommenderas inte för produktionskod.
Alternativ 2: Dev Proxy i WSL
Om du föredrar att köra Dev Proxy helt inom WSL installerar du den med linux-installationsmetoden och konfigurerar proxyn manuellt.
Installera Dev Proxy i WSL
Installationsskriptet kräver unzip för att extrahera Dev Proxy. Nya WSL-distributioner, som Ubuntu, inkluderar det inte som standard. Installera unzip:
sudo apt update
sudo apt install unzip
Installera Dev Proxy med installationsskriptet:
bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)"
Konfigurera proxyn manuellt
Eftersom WSL inte har någon grafisk skrivbordsmiljö kan Dev Proxy inte registreras automatiskt som systemproxy. Konfigurera dina program så att de använder proxyn manuellt.
Skapa en Dev Proxy-konfigurationsfil där
asSystemProxyär inställt påfalse:{ "$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" }Starta Dev Proxy:
devproxyLita på certifikatet:
# 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-certificatesKonfigurera ditt program så att det använder proxyn.
HTTPS_PROXYAnge miljövariabeln:export HTTPS_PROXY=http://127.0.0.1:8000Eller ange det när du kör programmet:
HTTPS_PROXY=http://127.0.0.1:8000 node app.js
Tips/Råd
Mer information om hur du konfigurerar proxyn för Node.js program finns i Använda Dev Proxy med Node.js program.
Jämförelse av metoder
| Egenskap | Windows-värd (alternativ 1) | Inuti WSL (alternativ 2) |
|---|---|---|
| Konfigurationskomplexitet | Enkel | Moderat |
| Requirements | Windows 11 22H2 eller senare, WSL-speglat nätverksläge | None |
| certifikathantering | Engångskopiering från Windows | Manuell export |
| Proxykonfiguration | Automatisk (WSL Auto Proxy) | Manuell (HTTPS_PROXY) |
| WSL-omstart krävs | Ja, när du togglar proxy | Nej. |
| Fungerar med alla WSL-appar | Ja | Beror på stöd för appproxy |
För de flesta scenarier är det rekommenderat att köra Dev Proxy i Windows (alternativ 1) på grund av dess enkelhet och automatiska proxykonfiguration.
Felsökning
Förfrågningar fångas inte upp när Windows är värdplattformen.
Om Dev Proxy i Windows inte fångar upp begäranden från WSL:
Kontrollera att
networkingMode=mirroredochautoProxy=trueär inställda i avsnittet[wsl2]i din.wslconfig-fil. Mer information finns i Konfigurera WSL-nätverk.Starta om WSL för att uppdatera proxyinställningarna:
wsl --shutdownKontrollera att Dev Proxy körs och registreras som systemproxy.
Kontrollera att Dev Proxy-certifikatet är betrott i WSL.
unzip: kommandot hittades inte
Om installationsskriptet misslyckas med felet unzip: command not found, installera unzip och kör installationsskriptet igen:
sudo apt update
sudo apt install unzip
Certifikatfel
Om du ser certifikatfel:
- Kontrollera att du har installerat certifikatet i WSL genom att följa stegen i Lita på certifikatet i WSL.
- För Node.js program kan du behöva konfigurera programmet för att använda proxyagenten. Se Använda Dev Proxy med Node.js program.
Problem med WSL-nätverk
WSL 2 använder ett virtualiserat nätverkskort. Om du upplever nätverksproblem:
- Se till att Windows-brandväggen tillåter Dev Proxy.
- Prova att använda
localhosti stället127.0.0.1för när du konfigurerar proxyadressen.