Använd alternativet systemproxy

Överblick
Mål: Styr om Dev Proxy ska samla in all systemtrafik eller endast explicit dirigerad trafik
Tid: 5 minuter
Krav:Konfigurera Dev Proxy

När du startar Dev Proxy registreras den som systemproxy som standard. Därför dirigeras all HTTP/HTTPS-trafik på datorn automatiskt via Dev Proxy. Proxykörning av all trafik via Dev Proxy fungerar bra för de flesta scenarier – du startar Dev Proxy och samlar omedelbart in begäranden från ditt program utan någon extra konfiguration.

Det finns dock situationer där du kanske vill ha mer kontroll över vilken trafik som går via Dev Proxy. Med asSystemProxy alternativet kan du inaktivera automatisk registrering av systemproxy, vilket ger dig detaljerad kontroll över vilka program som använder Dev Proxy.

När du ska inaktivera registrering av systemproxy

Överväg att ange asSystemProxy till false när:

  • Du är i ett företagsnätverk med befintliga proxyinställningar som du inte vill åsidosätta
  • Du vill bara testa ett visst program utan att påverka andra appar som körs på datorn
  • Andra program misslyckas när Dev Proxy fångar upp trafiken (till exempel Azure Functions)
  • Du kör flera Dev Proxy-instanser och vill dirigera trafik till specifika instanser
  • Du vill minimera störningar i systemtjänster och bakgrundsprocesser

Konfigurera systemproxyalternativet

Du kan konfigurera inställningen på asSystemProxy två olika sätt: med hjälp av konfigurationsfilen eller kommandoradsgränssnittet.

Konfigurationsfil

Om du vill inaktivera registrering av systemproxy beständigt lägger du till inställningen i asSystemProxy konfigurationsfilen.

Filen:devproxyrc.json
Syfte: Inaktivera automatisk registrering av systemproxy

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/rc.schema.json",
  "asSystemProxy": false,
  "urlsToWatch": [
    "https://api.contoso.com/*"
  ]
}

kommandorad

Om du vill inaktivera systemproxyregistrering för en enda session använder du alternativet --as-system-proxy .

devproxy --as-system-proxy false

Dirigera trafik till Dev Proxy manuellt

När du inaktiverar registrering av systemproxy dirigerar program inte automatiskt sin trafik via Dev Proxy. Du måste konfigurera varje program att uttryckligen använda Dev Proxy.

Använda miljövariabler

Det vanligaste sättet att dirigera trafik till Dev Proxy är genom att ange HTTPS_PROXY miljövariabeln.

PowerShell:

$env:HTTPS_PROXY = "http://127.0.0.1:8000"
node app.js

Kommandotolken:

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

Tips/Råd

Vissa program stöder HTTP_PROXY även miljövariabeln. Ange båda om programmet gör både HTTP- och HTTPS-begäranden.

Språkspecifik konfiguration

Olika programmeringsspråk och ramverk har sina egna sätt att konfigurera proxyservrar:

Exempel: Testa Azure Functions utan att störa start

Azure Functions använder gRPC för intern kommunikation, vilket misslyckas när Dev Proxy registreras som systemproxy. Om du vill använda Dev Proxy med Azure Functions inaktiverar du registrering av systemproxy och konfigurerar proxyn via miljövariabler.

Filen:devproxyrc.json

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/rc.schema.json",
  "asSystemProxy": false,
  "urlsToWatch": [
    "https://jsonplaceholder.typicode.com/*"
  ]
}

Filen:local.settings.json

{
  "IsEncrypted": false,
  "Values": {
    "HTTPS_PROXY": "http://127.0.0.1:8000"
  }
}

Med den här konfigurationen startar Azure Functions normalt medan dina HTTP-begäranden till de övervakade URL:erna dirigeras via Dev Proxy.

Exempel: Testa ett program samtidigt som andra inte påverkas

När du utvecklar flera program samtidigt kanske du bara vill använda Dev Proxy med en av dem. Inaktivera systemproxyregistrering och ange endast miljövariabeln för målprogrammet.

Starta Dev Proxy utan systemproxyregistrering:

devproxy --as-system-proxy false

Kör programmet med proxyn konfigurerad i en separat terminal:

$env:HTTPS_PROXY = "http://127.0.0.1:8000"
npm start
HTTPS_PROXY=http://127.0.0.1:8000 npm start

Andra program på datorn fortsätter att fungera normalt utan proxyinterferens.

Köra flera Dev Proxy-instanser

När du anger asSystemProxy till falsekan du köra flera Dev Proxy-instanser samtidigt. Varje instans lyssnar på sin egen port och spårar sitt eget tillstånd med hjälp av tillståndsfiler per instans.

Starta flera instanser

Starta varje instans på en annan port:

devproxy --as-system-proxy false --port 8000 --config-file devproxyrc-api1.json

I en annan terminal:

devproxy --as-system-proxy false --port 9000 --config-file devproxyrc-api2.json

Kontrollera statusen för instanser som körs

Om du vill se alla instanser som körs använder du status kommandot:

devproxy status

Stoppa en specifik instans

Om du vill rikta in dig på en specifik instans, använd alternativet --pid med kommandot stop:

devproxy stop --pid 6456

Så här stoppar du alla instanser som körs:

devproxy stop

Visa loggar från en specifik instans

Använd alternativet --pid med logs kommandot :

devproxy logs --pid 6456

Anmärkning

Endast en Dev Proxy-instans kan registreras som systemproxy åt gången. Om du försöker starta en ny instans med asSystemProxy inställd på true medan en annan systemproxyinstans redan körs blockerar Dev Proxy starten.

Se även