Een remote browser-debugpoort instellen op Windows

Browserdebugpoort opzetten op een Windows-host via Chrome remote debugging en port forwarding, toegankelijk voor Linux-clients of MCP binnen het lokale netwerk.

In dit artikel wordt uitgelegd hoe je Chrome kunt draaien op een Windows-host en via CDP een remote-debugpoort kunt aanbieden voor gebruik door Linux-clients binnen het lokale netwerk of MCP. De kern van de oplossing is dat Chrome alleen luistert op 127.0.0.1, dat wordt doorgestuurd via portproxy naar een LAN-adres, en dat de toegang wordt beperkt via de firewall.

Topologie en verkeersstroom

De volgende afbeelding laat de stroom van poorten binnen de Windows-host zien, en hoe een client via een LAN-adres toegang krijgt.

flowchart TB
    subgraph Windows
        A[Chrome DevTools 127.0.0.1:9222] --> B[portproxy 192.168.31.2:9222]
        B --> C[Windows Firewall]
    end
    D[Linux Client] -->|CDP| B

    classDef local fill:#2c3e50,stroke:#ecf0f1,stroke-width:2px,color:#ecf0f1
    classDef proxy fill:#3498db,stroke:#2980b9,stroke-width:2px,color:#fff
    classDef firewall fill:#f39c12,stroke:#d35400,stroke-width:2px,color:#fff
    classDef client fill:#27ae60,stroke:#229954,stroke-width:2px,color:#fff

    class A local
    class B proxy
    class C firewall
    class D client

Chrome starten

Gebruik een aparte gebruikersmap en geef expliciet het remote-debugadres op, zodat Chrome alleen de debugpoort voor de lokale host opent. In het volgende voorbeeld wordt poort 9222 gebruikt; pas dit aan op basis van je situatie.

& "C:\Program Files\Google\Chrome\Application\chrome.exe" `
  --remote-debugging-address=127.0.0.1 `
  --remote-debugging-port=9222 `
  --user-data-dir="$env:TEMP\chrome-profile-mcp"

Port forwarding configureren

Gebruik portproxy om 127.0.0.1:9222 op de lokale host door te sturen naar het LAN-adres van Windows 192.168.31.2:9222, zodat clients in het lokale netwerk toegang kunnen krijgen.

netsh interface portproxy add v4tov4 `
  listenaddress=192.168.31.2 listenport=9222 `
  connectaddress=127.0.0.1 connectport=9222 `
  protocol=tcp

Controleer of de regel actief is door de huidige forwarding-configuratie te bekijken.

netsh interface portproxy show v4tov4

Firewall instellen

Beperk het aanvalsoppervlak door alleen verbindingen van een specifiek client-IP toe te staan. In het volgende voorbeeld wordt alleen 192.168.31.162 toegelaten.

New-NetFirewallRule `
  -DisplayName "Allow CDP 9222 from Linux" `
  -Direction Inbound `
  -Action Allow `
  -Protocol TCP `
  -LocalPort 9222 `
  -RemoteAddress 192.168.31.162

Verbinding testen

Als zowel de lokale host als het LAN-adres een respons geven op /json/version, is de verbinding werkzaam. Dit helpt om snel te bepalen of het probleem bij Chrome, portproxy of de firewall ligt.

curl http://127.0.0.1:9222/json/version
curl http://192.168.31.2:9222/json/version

De volgende afbeelding toont hoe de testverzoeken door de componenten worden doorgestuurd.

sequenceDiagram
    participant Client as Client
    participant Proxy as Portproxy
    participant Chrome as Chrome
    Client->>Proxy: HTTP /json/version
    Proxy->>Chrome: 127.0.0.1:9222
    Chrome-->>Proxy: JSON
    Proxy-->>Client: JSON

Aansluiten op MCP

Nadat de poort is blootgesteld, hoeft MCP alleen maar naar het LAN-adres te verwijzen. In het volgende voorbeeld wordt chrome-devtools-mcp rechtstreeks verbonden met 192.168.31.2:9222.

{
  "chrome-devtools": {
    "command": "npx",
    "args": [
      "-y",
      "chrome-devtools-mcp@latest",
      "--browser-url=http://192.168.31.2:9222"
    ]
  }
}

Opruimen en herstellen

Portproxy-regels zijn permanent. Verwijder de mapping en de firewallregel als je deze niet langer gebruikt, om onbedoelde blootstelling van de debugpoort te voorkomen.

netsh interface portproxy delete v4tov4 listenaddress=192.168.31.2 listenport=9222 protocol=tcp

Wanneer je poorten of IP’s wijzigt, pas dan ook de Chrome-parameters, portproxy-regels, firewallregels en MCP-configuratie aan, anders ontstaan er inconsistenties.

De remote-debugpoort biedt volledige controle over de browser. Blootstelling aan het internet of gebruik in productieomgevingen wordt afgeraden. Gebruik bij noodzakelijke cross-netwerk toegang een VPN of zero-trust tunnel, en houd het toegangsniveau en het blootgestelde bereik minimaal.