Dev Proxy használata WSL-vel

Egy pillantással
Cél: Dev Proxy használata a Linuxhoz készült Windows-alrendszerrel (WSL)
Idő: 15 perc
Előfeltételek:Dev Proxy beállítása, telepített WSL

A WSL-ben (Linux Windows alrendszer) futó alkalmazások fejlesztésekor két lehetőség közül választhat a Dev Proxy használatára: a Windows-gazdagépen vagy a WSL-en belül futtatva. Mindkét megközelítésnek megvannak az előnyei a fejlesztési munkafolyamattól függően.

A legegyszerűbb módszer a Dev Proxy telepítése és futtatása Windows rendszeren. A WSL automatikus proxyjával és tükrözött hálózati módjával a WSL a Windows rendszerproxyját használja, így a WSL-ben futó alkalmazások forgalmát a Dev Proxy fogja el a proxy WSL-ben való konfigurálása nélkül.

WSL-hálózatkezelés konfigurálása

A Dev Proxy regisztrálja magát a Windows rendszerproxyként egy localhost-címen (127.0.0.1:8000alapértelmezés szerint). Ahhoz, hogy a WSL-ben futó alkalmazások ezt a proxyt használják, engedélyezze a következő beállításokat a Windows rendszeren, a %UserProfile%\.wslconfig helyen található WSL-konfigurációs fájl [wsl2] szakaszában:

[wsl2]
networkingMode=mirrored
autoProxy=true
Setting Description
networkingMode=mirrored A Windows hálózati adaptereket a Linuxba tükrözi, amely lehetővé teszi, hogy a WSL-ben lévő alkalmazások a Windows rendszeren futó kiszolgálókhoz, például a Dev Proxyhoz 127.0.0.1csatlakozzanak. Windows 11 22H2-es vagy újabb verziót igényel. Az alapértelmezett érték a nat.
autoProxy=true A WSL a Windows HTTP-proxybeállításokat használja, hogy a Windowsban konfigurált proxy automatikusan WSL-ben legyen beállítva. Elérhető a Windows 11. Alapértelmezés szerint engedélyezve van.

A .wslconfig fájl módosítása után indítsa újra a WSL-t, hogy a módosítások érvénybe lépjenek:

wsl --shutdown

Megjegyzés:

Az alapértelmezett NAT hálózati módban a WSL-alkalmazások nem tudnak a 127.0.0.1 használatával csatlakozni a Dev Proxyhoz Windows rendszeren. Ha nem tud tükrözött hálózati módot használni, futtassa inkább a Dev Proxyt a WSL-ben. További információkért lásd: 2. lehetőség: Fejlesztői proxy a WSL-ben.

További információ: Hálózati alkalmazások elérése WSL-vel és Speciális beállítások konfigurálása a WSL-ben.

Fejlesztői proxy beállítása Windows rendszeren

  1. Telepítse a Dev Proxyt Windows rendszeren winget vagy manuális telepítéssel.

  2. Fejlesztői proxy indítása:

    devproxy
    
  3. Amikor a rendszer kéri, bízzon meg a tanúsítványban.

Dev Proxy használata a WSL-ből

Amikor a Dev Proxy rendszerproxyként fut Windows rendszeren (az alapértelmezett viselkedés), és beállította a WSL-hálózatkezelést, a WSL-ben futó alkalmazások automatikusan rajta keresztül irányítják a forgalmukat.

Indítsa el az alkalmazást a WSL-ben, ahogy általában tenné. A Dev Proxy elfogja a proxybeállításokat tiszteletben tartó alkalmazások által küldött HTTPS-kéréseket.

Fontos

Indítsa újra a WSL-t a fejlesztői proxy elindítása vagy leállítása után

A WSL beolvassa a Windows proxybeállításokat az indításkor. Ha a WSL futtatása után indítja el a Dev Proxyt, vagy ha leállítja és újraindítja a Dev Proxyt, újra kell indítania a WSL-t a módosítások érvénybe lépéséhez:

wsl --shutdown

Ezután indítsa el az új WSL-munkamenetet.

A tanúsítvány megbízhatósága a WSL-ben

Ahhoz, hogy a Dev Proxy elfogja a HTTPS-forgalmat, a WSL-ben lévő alkalmazásoknak megbízhatónak kell vennie a Dev Proxy tanúsítványt. A tanúsítványt átmásolhatja a Windowsból, vagy exportálhatja a Dev Proxy API használatával.

A lehetőség: A tanúsítvány másolása a Windowsból

  1. A WSL-ben másolja a tanúsítványt a Windowsból:

    cp "/mnt/c/Users/<your-username>/AppData/Local/Programs/Dev Proxy/rootCert.pfx" ~/
    
  2. Exportálja és telepítse a tanúsítványt:

    # 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
    

B lehetőség: A Dev Proxy API használata

A Dev Proxy API tulajdonosi jogkivonatot igényel. Miközben a Dev Proxy Windowson fut, kérje le a tokent egy Windows terminálban az api token parancs futtatásával:

devproxy api token

Ezután a WSL-ben töltse le és telepítse a tanúsítványt. Cserélje le <token> a lekért jogkivonatra:

# 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

Megjegyzés:

Egyes alkalmazások további konfigurációt igényelhetnek a rendszertanúsítvány-tároló megbízhatóságához. Node.js alkalmazások esetében előfordulhat, hogy fejlesztési célokra kell beállítania NODE_TLS_REJECT_UNAUTHORIZED=0 . Nem ajánlott letiltani a tanúsítványérvényesítést a termelési környezetben.

2. lehetőség: Fejlesztői proxy a WSL-ben

Ha teljes egészében a WSL-ben szeretné futtatni a dev proxyt, telepítse a Linux telepítési módszerével, és konfigurálja manuálisan a proxyt.

Dev Proxy telepítése a WSL-ben

A beállítási szkripthez unzip szükséges a Dev Proxy kibontásához. A friss WSL-disztribúciók, például az Ubuntu, alapértelmezés szerint nem tartalmazzák azt. unzip telepítése:

sudo apt update
sudo apt install unzip

Telepítse a Dev Proxyt a beállítási szkripttel:

bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)"

A proxy manuális konfigurálása

Mivel a WSL nem rendelkezik grafikus asztali környezettel, a dev proxy nem tud automatikusan rendszerproxyként regisztrálni. Konfigurálja az alkalmazásokat úgy, hogy manuálisan használják a proxyt.

  1. Dev Proxy konfigurációs fájl létrehozása a asSystemProxy értékének false beállításával.

    {
      "$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"
    }
    
  2. Fejlesztői proxy indítása:

    devproxy
    
  3. Megbízható a tanúsítvány:

    # 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-certificates
    
  4. Konfigurálja az alkalmazást a proxy használatára. HTTPS_PROXY A környezeti változó beállítása:

    export HTTPS_PROXY=http://127.0.0.1:8000
    

    Vagy adja meg az alkalmazás futtatásakor:

    HTTPS_PROXY=http://127.0.0.1:8000 node app.js
    

Jótanács

A proxy Node.js alkalmazásokhoz való konfigurálásáról további információt a Dev Proxy használata Node.js alkalmazásokkal című témakörben talál.

Megközelítések összehasonlítása

Tulajdonság Windows-gazdagép (1. lehetőség) A WSL belsejében (2. lehetőség)
A beállítás összetettsége Simple Mérsékelt
Requirements Windows 11 22H2 vagy újabb, WSL tükrözött hálózati mód None
Tanúsítványkezelés Egyszeri másolás Windowsról Manuális exportálás
Proxy konfigurálása Automatikus (WSL automatikus proxy) Kézikönyv (HTTPS_PROXY)
WSL-újraindítás szükséges Igen, amikor a proxyt átkapcsolja Nem
Az összes WSL-alkalmazással működik Igen Az alkalmazásproxy támogatásától függ

A legtöbb forgatókönyv esetében a Dev Proxy windowsos futtatása (1. lehetőség) az egyszerűség és az automatikus proxykonfiguráció miatt ajánlott módszer.

Hibaelhárítás

A kérések nem kerülnek elfogásra a Windows gazdagép használatakor.

Ha a Windows dev proxyja nem elfogja a WSL-től érkező kéréseket:

  1. Ellenőrizze, hogy a networkingMode=mirrored és autoProxy=true az Ön .wslconfig fájljának [wsl2] szakaszában vannak beállítva. További információ: WSL-hálózatkezelés konfigurálása.

  2. Indítsa újra a WSL-t a proxybeállítások frissítéséhez:

    wsl --shutdown
    
  3. Ellenőrizze, hogy a fejlesztői proxy fut-e és regisztrálva van-e rendszerproxyként.

  4. Ellenőrizze, hogy a fejlesztői proxy tanúsítványa megbízható-e a WSL-ben.

unzip: a parancs nem található

Ha a beállítási szkript unzip: command not found hibával meghiúsul, telepítse unzip és futtassa újra a telepítőszkriptet:

sudo apt update
sudo apt install unzip

Tanúsítványhibák

Ha tanúsítványhibákat lát:

  1. Győződjön meg arról, hogy telepítette a tanúsítványt a WSL-ben a tanúsítvány megbízhatósága a WSL-ben lépésekkel.
  2. Előfordulhat, hogy Node.js alkalmazások esetében konfigurálnia kell az alkalmazást a proxyügynök használatára. Lásd: Dev Proxy használata Node.js alkalmazásokkal.

WSL hálózatkezelési problémák

A WSL 2 virtualizált hálózati adaptert használ. Ha hálózati problémákat tapasztal:

  1. Győződjön meg arról, hogy a Windows tűzfal engedélyezi a fejlesztői proxy használatát.
  2. Próbálja meg használni localhost a 127.0.0.1 proxycím konfigurálása helyett.