Windows पर रिमोट ब्राउज़र डीबगिंग एंट्रीपॉइंट सेटअप करना
Categories:
यह लेख दिखाता है कि 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 clientChrome शुरू करना
स्वतंत्र उपयोगकर्ता डायरेक्टरी का उपयोग करने का सुझाव दिया जाता है, और स्पष्ट रूप से 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: JSONMCP में जुड़ना
पोर्ट एक्सपोज़ होने के बाद, 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 या जीरो-ट्रस्ट टनल को दें, और न्यूनतम अधिकार और न्यूनतम एक्सपोज़र क्षेत्र बनाए रखें।