Použití Dev Proxy s WSL

Na první pohled
Cílem: Použití dev proxy serveru se subsystémem Windows pro Linux (WSL)
Čas: 15 minut
Požadavky:Nastavení dev proxy serveru, instalace WSL

Při vývoji aplikací ve WSL (Subsystém Windows pro Linux) máte dvě možnosti pro použití dev Proxy serveru: spuštění na hostiteli Windows nebo v rámci WSL. Oba přístupy mají své výhody v závislosti na pracovním postupu vývoje.

Nejjednodušším přístupem je instalace a spuštění Dev Proxy ve Windows. S automatickým proxy serverem WSL a zrcadleným síťovým režimem používá WSL Windows systémový proxy server, takže aplikace spuštěné ve WSL mají svůj provoz zachycený dev proxy serverem bez konfigurace proxy serveru ve WSL.

Konfigurujte síť WSL

Dev Proxy se registruje jako systémový proxy server Windows na adrese localhost (127.0.0.1:8000 ve výchozím nastavení). Aby aplikace ve WSL používaly tento proxy server, povolte následující nastavení v části [wsl2] konfiguračního souboru WSL umístěného v systému Windows v umístění %UserProfile%\.wslconfig:

[wsl2]
networkingMode=mirrored
autoProxy=true
Setting Description
networkingMode=mirrored Zrcadlí síťová rozhraní Windows do Linuxu, což umožňuje aplikacím ve WSL připojit se k serverům běžícím na Windows, jako je Dev Proxy, pomocí 127.0.0.1. Vyžaduje Windows 11 verze 22H2 nebo novější. Výchozí hodnota je nat.
autoProxy=true Používá WSL nastavení Windows proxy serveru HTTP, aby se proxy server nakonfigurovaný na Windows automaticky nastavil ve WSL. K dispozici v systému Windows 11. Ve výchozím nastavení povolena.

Po změně souboru .wslconfig restartujte WSL, aby se změny projevily:

wsl --shutdown

Poznámka:

Ve výchozím režimu sítě NAT se aplikace ve WSL nemůžou připojit k Dev Proxy na Windows pomocí 127.0.0.1. Pokud nemůžete použít zrcadlený síťový režim, spusťte místo toho dev proxy server ve WSL. Další informace najdete v tématu Možnost 2: Dev Proxy uvnitř WSL.

Další informace naleznete v tématu Přístup k síťovým aplikacím pomocí WSL a konfigurace rozšířeného nastavení v WSL.

Nastavení vývojového proxy serveru ve Windows

  1. Nainstalujte dev Proxy ve Windows pomocí wingetu nebo ruční instalace.

  2. Spustit dev proxy:

    devproxy
    
  3. Důvěřujte certifikátu, až budete vyzváni.

Použijte vývojovou proxy z WSL

Když Dev Proxy běží jako systémový proxy server ve Windows (výchozí chování) a jste nakonfigurovali síťování WSL, aplikace ve WSL automaticky směrují svůj provoz přes něj.

Spusťte aplikaci ve WSL běžným způsobem. Dev Proxy zachycuje požadavky HTTPS provedené aplikacemi, které respektují nastavení proxy serveru.

Důležité

Po spuštění nebo zastavení dev proxy serveru restartujte WSL.

WSL při spuštění přečte nastavení Windows proxy serveru. Pokud spustíte Dev Proxy po spuštění WSL nebo pokud zastavíte a restartujete Dev Proxy, budete muset restartovat WSL, aby se změny projevily:

wsl --shutdown

Pak spusťte novou relaci WSL.

Důvěřovat certifikátu ve WSL

Aby vývojářský proxy server zachytával provoz HTTPS, musí aplikace ve WSL důvěřovat jeho certifikátu. Certifikát můžete zkopírovat z Windows nebo ho exportovat pomocí rozhraní DEV Proxy API.

Možnost A: Zkopírování certifikátu z Windows

  1. Ve WSL zkopírujte certifikát z Windows:

    cp "/mnt/c/Users/<your-username>/AppData/Local/Programs/Dev Proxy/rootCert.pfx" ~/
    
  2. Export a instalace certifikátu:

    # 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
    

Možnost B: Použití rozhraní DEV Proxy API

API Dev Proxy vyžaduje token nositele. Když je Dev Proxy spuštěný ve Windows, získejte token spuštěním příkazu api token v terminálu systému Windows:

devproxy api token

Pak ve WSL stáhněte a nainstalujte certifikát. Nahraďte <token> tokenem, který jste získal/a:

# 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

Poznámka:

Některé aplikace můžou vyžadovat dodatečnou konfiguraci, aby důvěřovaly systémovému úložišti certifikátů. Pro Node.js aplikace možná budete muset nastavit NODE_TLS_REJECT_UNAUTHORIZED=0 pro účely vývoje. Zakázání ověření certifikátu se nedoporučuje pro produkční kód.

Možnost 2: Vývojový proxy server uvnitř WSL

Pokud dáváte přednost zcela spuštění dev Proxy v rámci WSL, nainstalujte ho pomocí metody instalace Linuxu a nakonfigurujte proxy ručně.

Instalace Dev Proxy v WSL

Instalační skript vyžaduje unzip k extrakci Dev Proxy. Nové distribuce WSL, jako je Ubuntu, ji ve výchozím nastavení nezahrnují. Nainstalujte unzip:

sudo apt update
sudo apt install unzip

Nainstalujte dev Proxy pomocí instalačního skriptu:

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

Ruční konfigurace proxy serveru

Vzhledem k tomu, že WSL nemá grafické desktopové prostředí, dev Proxy se nemůže automaticky zaregistrovat jako systémový proxy server. Nakonfigurujte aplikace tak, aby používaly proxy server ručně.

  1. Vytvořte konfigurační soubor pro vývojový proxy s asSystemProxy nastaveným na 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"
    }
    
  2. Spustit dev proxy:

    devproxy
    
  3. Důvěřovat certifikátu:

    # 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. Nakonfigurujte aplikaci tak, aby používala proxy server. Nastavte proměnnou HTTPS_PROXY prostředí:

    export HTTPS_PROXY=http://127.0.0.1:8000
    

    Nebo ji zadejte při spuštění aplikace:

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

Návod

Další informace o konfiguraci proxy serveru pro Node.js aplikace najdete v tématu Použití služby Dev Proxy se Node.js aplikacemi.

Porovnání přístupů

Vlastnost Hostitel Windows (možnost 1) Uvnitř WSL (možnost 2)
Složitost nastavení Jednoduchost Mírný
Requirements Windows 11 22H2 nebo novější, režim zrcadleného síťování WSL None
Správa certifikátů Jednorázová kopie z Windows Ruční export
Konfigurace proxy serveru Automatické (WSL Auto Proxy) Ruční (HTTPS_PROXY)
Vyžaduje se restartování WSL. Ano, při přepínání proxy serveru Ne
Funguje se všemi aplikacemi WSL Ano Závisí na podpoře proxy aplikací.

Pro většinu scénářů se doporučuje používat Dev Proxy ve Windows (možnost 1) kvůli jednoduchosti a automatické konfiguraci proxy serveru.

Řešení problémů

Požadavky nejsou zachycovány při použití hostitele Windows

Pokud dev Proxy ve Windows nezachycuje požadavky z WSL:

  1. Ověřte, že networkingMode=mirrored a autoProxy=true jsou nastavené v [wsl2] části souboru .wslconfig . Další informace naleznete v tématu Konfigurace sítě WSL.

  2. Restartujte WSL a aktualizujte nastavení proxy serveru:

    wsl --shutdown
    
  3. Ověřte, že je Dev proxy spuštěná a zaregistrovaná jako systémový proxy server.

  4. Zkontrolujte, jestli je certifikát dev proxy v WSL důvěryhodný.

unzip: příkaz nebyl nalezen.

Pokud instalační skript selže s chybou unzip: command not found , nainstalujte unzip a spusťte instalační skript znovu:

sudo apt update
sudo apt install unzip

Chyby certifikátu

Pokud se zobrazí chyby certifikátu:

  1. Ujistěte se, že jste certifikát nainstalovali ve WSL podle kroků v části Důvěřovat certifikátu ve WSL.
  2. U Node.js aplikací možná budete muset aplikaci nakonfigurovat tak, aby používala agenta proxy. Viz Použití dev proxy s Node.js aplikacemi.

Problémy se sítí WSL

WSL 2 používá virtualizovaný síťový adaptér. Pokud dochází k problémům se sítí:

  1. Ujistěte se, že brána firewallu Windows umožňuje Dev Proxy.
  2. Zkuste při konfiguraci adresy proxy použít localhost místo 127.0.0.1.