Windows पर रिमोट ब्राउज़र डीबगिंग एंट्रीपॉइंट सेटअप करना

Windows पर Chrome रिमोट डीबगिंग पोर्ट और पोर्ट फॉरवर्डिंग के माध्यम से LAN के लिए नियंत्रित ब्राउज़र डीबगिंग एंट्रीपॉइंट प्रदान करना।

यह लेख दिखाता है कि Windows होस्ट पर Chrome को कैसे चलाया जाए और CDP के माध्यम से रिमोट डीबगिंग एंट्रीपॉइंट प्रदान किया जाए, जिसे LAN के भीतर Linux क्लाइंट या MCP द्वारा उपयोग किया जा सके। इस विधि का केंद्र बिंदु यह है कि Chrome केवल 127.0.0.1 को सुनता है, portproxy द्वारा LAN एड्रेस पर मैप किया जाता है, और फिर फायरवॉल द्वारा दूरस्थ स्रोत को सीमित किया जाता है।

टोपोलॉजी और प्रवाह

नीचे का चित्र Windows होस्ट पर पोर्ट के आंतरिक प्रवाह और क्लाइंट द्वारा LAN एड्रेस के माध्यम से कैसे एक्सेस किया जाए, दिखाता है।

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 शुरू करना

स्वतंत्र उपयोगकर्ता डायरेक्टरी का उपयोग करने का सुझाव दिया जाता है, और स्पष्ट रूप से remote debugging एड्रेस निर्दिष्ट किया जाता है, इस तरह Chrome केवल लोकल मशीन के लिए डीबगिंग पोर्ट खोलता है। नीचे के उदाहरण में 9222 पोर्ट का उपयोग किया गया है, कृपया वास्तविक स्थिति के अनुसार समायोजित करें।

& "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"

पोर्ट फॉरवर्डिंग कॉन्फ़िगर करना

portproxy का उपयोग 127.0.0.1:9222 को Windows के LAN एड्रेस 192.168.31.2:9222 पर मैप करने के लिए किया जाता है, इस तरह LAN क्लाइंट एक्सेस कर सकता है।

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

यह सुनिश्चित करें कि नियम प्रभावी हो गया है, वर्तमान फॉरवर्डिंग कॉन्फ़िगरेशन देखा जा सकता है।

netsh interface portproxy show v4tov4

फायरवॉल सेटिंग

एक्सपोज़र को सीमित करने के लिए, निर्दिष्ट क्लाइंट IP के लिए केवल पोर्ट एक्सेस की अनुमति देने का सुझाव दिया जाता है। नीचे का उदाहरण 192.168.31.162 से आने वाले कनेक्शन को अनुमति देता है।

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

कनेक्शन सत्यापित करना

जब लोकल और LAN एड्रेस दोनों /json/version वापस लौटाते हैं, तो इसका अर्थ है कि लिंक उपलब्ध है। यह चरण Chrome, portproxy या फायरवॉल में से किसी एक में समस्या का त्वरित पता लगाने में भी मदद करता है।

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

नीचे का चित्र सत्यापन अनुरोध को विभिन्न घटकों के बीच फॉरवर्डिंग दिखाता है।

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

MCP में जुड़ना

पोर्ट एक्सपोज़ होने के बाद, MCP को केवल LAN एड्रेस पर इशारा करने की आवश्यकता होती है। नीचे का उदाहरण सीधे 192.168.31.2:9222 पर chrome-devtools-mcp को कनेक्ट करता है।

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

सफाई और पुनर्स्थापना

portproxy नियम स्थायी होते हैं, यदि अब उपयोग नहीं किया जा रहा है, तो अनावश्यक डीबगिंग पोर्ट एक्सपोज़र से बचने के लिए फॉरवर्डिंग नियम और फायरवॉल नियम हटाए जाने चाहिए।

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

यदि आप पोर्ट या IP बदलते हैं, तो Chrome पैरामीटर, portproxy नियम, फायरवॉल नियम और MCP कॉन्फ़िगरेशन को समायोजित करने की आवश्यकता होगी, अन्यथा कनेक्शन असंगति हो सकती है।

रिमोट डीबगिंग पोर्ट पूर्ण ब्राउज़र नियंत्रण क्षमता रखता है, इसे पब्लिक नेटवर्क पर एक्सपोज़ नहीं किया जाना चाहिए, और प्रोडक्शन पर्यावरण में लंबे समय तक चालू नहीं रखा जाना चाहिए। यदि नेटवर्क से पार करना आवश्यक है, तो वरीयता VPN या जीरो-ट्रस्ट टनल को दें, और न्यूनतम अधिकार और न्यूनतम एक्सपोज़र क्षेत्र बनाए रखें।