Chrome में सिर्फ़ कुछ साइटों के लिए प्रॉक्सी कैसे इस्तेमाल करें
विषय सूची

संक्षेप में: डेस्कटॉप पर Chrome में ऐसी कोई सेटिंग नहीं है जो प्रॉक्सी को सिर्फ़ कुछ साइटों पर लागू करे। वह सारी ब्राउज़िंग के लिए प्रॉक्सी का एक ही कॉन्फ़िगरेशन चलाता है, जो ऑपरेटिंग सिस्टम, लॉन्च फ़्लैग, एडमिनिस्ट्रेटर की पॉलिसी या किसी एक्सटेंशन से आता है। सिर्फ़ कुछ साइटों को प्रॉक्सी से भेजने के लिए Chrome को PAC स्क्रिप्ट चाहिए, यानी एक छोटा फ़ंक्शन जो हर अनुरोध के लिए प्रॉक्सी चुनता है, और जिसे आप ख़ुद लिखते हैं या कोई एक्सटेंशन नियमों से बनाता है।
Chrome में सिर्फ़ कुछ साइटों के लिए प्रॉक्सी इस्तेमाल करने के लिए आप ब्राउज़र को एक PAC स्क्रिप्ट देते हैं जिसमें साइटों के नाम हों, और Chrome हर अनुरोध पर उससे पूछता है। यह स्क्रिप्ट तीन जगहों से आ सकती है: आपका ऑपरेटिंग सिस्टम, अलग से लॉन्च किया गया Chrome, या कोई एक्सटेंशन।
क्या Chrome में हर साइट के लिए अलग प्रॉक्सी सेटिंग है?
नहीं। Chrome के सेटिंग पेज पर प्रॉक्सी की एक ही प्रविष्टि है, «Open your computer’s proxy settings» (अपने कंप्यूटर की प्रॉक्सी सेटिंग खोलें), और Chromium उन सेटिंग को पूरे कंप्यूटर पर लागू होने वाली बताता है (Chromium की सेटिंग स्ट्रिंग)।
Chromium के प्रॉक्सी नोट्स चार जगहें गिनाते हैं जहाँ से Chrome अपना प्रॉक्सी कॉन्फ़िगरेशन ले सकता है: एडमिनिस्ट्रेटर की पॉलिसी, कमांड-लाइन फ़्लैग, एक्सटेंशन, और ऑपरेटिंग सिस्टम। इनमें से जो भी लागू हो, वह ब्राउज़र जो कुछ भी लोड करता है उस सबके लिए एक ही कॉन्फ़िगरेशन देता है, और हर साइट का अलग फ़ैसला उसी कॉन्फ़िगरेशन के अंदर PAC स्क्रिप्ट के रूप में रहता है।
PAC स्क्रिप्ट क्या करती है?
PAC (proxy auto-configuration, प्रॉक्सी का स्वचालित कॉन्फ़िगरेशन) स्क्रिप्ट
FindProxyForURL नाम का एक JavaScript फ़ंक्शन है। Chrome इसे हर अनुरोध के लिए पते और होस्ट नाम
के साथ बुलाता है, और जो स्ट्रिंग यह लौटाता है उसका इस्तेमाल करता है: बिना प्रॉक्सी के लिए
DIRECT, या प्रॉक्सी सर्वर के लिए PROXY host:port, जैसा
MDN का PAC संदर्भ
बताता है।
यह स्क्रिप्ट एक डोमेन और उसके सबडोमेन को प्रॉक्सी से भेजती है और बाकी सब सीधे। प्रॉक्सी का पता दस्तावेज़ों के लिए आरक्षित रेंज से लिया गया है (RFC 5737); उसकी जगह अपना पता डालिए।
function FindProxyForURL(url, host) {
if (host === "example.com" || dnsDomainIs(host, ".example.com")) {
return "PROXY 203.0.113.10:8080";
}
return "DIRECT";
}
जिस भी साइट को प्रॉक्सी से भेजना है, उसके लिए एक शर्त जोड़िए। आख़िरी return तय करता है कि
सूची से बाहर की हर साइट के साथ क्या होगा।
Chrome को PAC स्क्रिप्ट किन तरीकों से दी जा सकती है?
तीन: सिस्टम की प्रॉक्सी सेटिंग से, अलग से लॉन्च किए गए Chrome से, या किसी एक्सटेंशन से। ये इस बात में अलग हैं कि कंप्यूटर के कितने हिस्से पर असर डालते हैं और बदलाव कैसे लागू होता है।
सिस्टम की प्रॉक्सी सेटिंग से
Windows में प्रॉक्सी सेटिंग में एक «setup script» (सेटअप स्क्रिप्ट) विकल्प है जो स्क्रिप्ट का पता लेता है, जैसा Microsoft की गाइड दिखाती है, और Chrome सिस्टम सेटिंग का पालन करता है। स्क्रिप्ट किसी URL पर उपलब्ध होनी चाहिए। सिस्टम प्रॉक्सी सेटिंग पढ़ने वाला हर ऐप्लिकेशन भी इसका इस्तेमाल करेगा, इसलिए यह तरीका उस स्क्रिप्ट के लिए ठीक है जो आप पूरी मशीन के लिए चाहते हैं।
Chrome के अलग इंस्टेंस में
Chrome लॉन्च के समय प्रॉक्सी फ़्लैग स्वीकार करता है, जो
Chromium के नेटवर्क सेटिंग पेज
पर सूचीबद्ध हैं: --proxy-server एक प्रॉक्सी का नाम देता है, --proxy-bypass-list उन होस्ट के
नाम देता है जो उसे छोड़ देते हैं, और --proxy-pac-url किसी स्क्रिप्ट की ओर इशारा करता है। अपनी
--user-data-dir के साथ लॉन्च किया गया दूसरा Chrome आपके सामान्य Chrome के साथ-साथ चलता है,
क्योंकि चल रहे दो इंस्टेंस एक डेटा डायरेक्टरी साझा नहीं कर सकते
(user data directory पर Chromium के नोट्स)।
google-chrome --user-data-dir="$HOME/chrome-proxied" --proxy-server="http://203.0.113.10:8080"
वह इंस्टेंस अपना सारा ट्रैफ़िक प्रॉक्सी से भेजता है, इसलिए आप साइट को जिस विंडो में खोलते हैं, वही उसका रास्ता तय करती है। प्रॉक्सी बदलने का मतलब है इंस्टेंस बंद करना और उसे नए फ़्लैगों के साथ फिर से लॉन्च करना।
प्रॉक्सी एक्सटेंशन से
एक्सटेंशन chrome.proxy API के ज़रिए उस प्रोफ़ाइल के लिए Chrome का प्रॉक्सी सेट करता है जिसमें वह इंस्टॉल है, और नियमों वाला स्विचर उन नियमों को PAC स्क्रिप्ट में बदल देता है। हमारा मुफ़्त ProxyJam Connector इसी तरह काम करता है, Chrome में भी और Microsoft Edge में भी:
- प्रॉक्सी के होस्ट, पोर्ट और प्रोटोकॉल के साथ एक प्रोफ़ाइल जोड़िए।
- एक नियम जोड़िए, उदाहरण के लिए
example.comके साथ «Domain + subdomains» (डोमेन और सबडोमेन), जो उस प्रोफ़ाइल की ओर इशारा करे। किसी साइट से मेल खाने वाला पहला नियम लागू होता है। - फ़ॉलबैक को Direct (सीधा कनेक्शन) पर रहने दीजिए, ताकि किसी नियम से मेल न खाने वाली साइटें बिना प्रॉक्सी के जुड़ें।
- टूलबार पॉपअप में Auto (स्वचालित) चुनिए।
मेल खाने वाली साइट के लिए Connector की स्क्रिप्ट सिर्फ़ उसी एक प्रॉक्सी का नाम देती है, उसके बाद सीधे कनेक्शन का कोई विकल्प नहीं होता। अगर प्रॉक्सी बंद है, तो साइट लोड नहीं होती, और उसके लिए आपका अपना पता कभी इस्तेमाल नहीं होता।
क्या हर टैब अलग प्रॉक्सी इस्तेमाल कर सकता है?
Chrome में नहीं। chrome.proxy API एक प्रोफ़ाइल के लिए एक ही मान रखता है और टैब को पैरामीटर के रूप में नहीं लेता, इसलिए टैब के पास सेट करने के लिए अपना कुछ नहीं होता।
काम की इकाई प्रोफ़ाइल या इंस्टेंस है। प्रॉक्सी वाले काम के लिए दूसरी Chrome प्रोफ़ाइल बनाइए और एक्सटेंशन वहाँ इंस्टॉल कीजिए, या अपने फ़्लैगों के साथ दूसरा इंस्टेंस लॉन्च कीजिए, और दोनों विंडो साथ-साथ रखिए। तब हर विंडो अपना प्रॉक्सी रखती है।
पाथ वाला नियम HTTPS साइटों पर क्यों विफल होता है?
Chrome PAC स्क्रिप्ट को https:// पते की सिर्फ़ स्कीम, होस्ट और पोर्ट देता है। Chrome 52 से पाथ,
क्वेरी और फ़्रैगमेंट हटा दिए जाते हैं, और इसे बंद करने वाला विकल्प Chrome 75 में हटा दिया गया
(Chromium के प्रॉक्सी नोट्स)।
इसलिए example.com/shop/* जैसा नियम किसी भी HTTPS पेज से मेल नहीं खाता। नियम होस्ट नाम पर
लिखिए, और अगर साइट के किसी हिस्से को अपना अलग रास्ता चाहिए तो उसे अपना सबडोमेन दीजिए। सादे
http:// पते अब भी पाथ के साथ स्क्रिप्ट तक पहुँचते हैं, हालाँकि Chromium इस पर निर्भर न रहने की
सलाह देता है। Connector पाथ पर निर्भर हर नियम के पास चेतावनी दिखाता है।
कौन-सा तरीका चुनें?
कुछ साइटों और एक प्रॉक्सी के लिए एक्सटेंशन सबसे कम मेहनत का है, और एक्सटेंशन पेज बताता है कि Connector Chrome पर क्या कर सकता है और क्या नहीं। पासवर्ड माँगने वाले प्रॉक्सी की बात Chrome बार-बार प्रॉक्सी का यूज़रनेम और पासवर्ड क्यों माँगता है में है, और किसी पुराने स्विचर से नियम लाने की बात Manifest V3 में क्या बदला में। हर बाज़ार में अपनी साइट कैसी दिखती है, यह जाँचने के लिए हर देश की एक प्रोफ़ाइल और प्रॉक्सी सेट करना अपनी वेबसाइट को दूसरे देश से देखना में बताया गया है।
अगर जिस प्रॉक्सी से आप उन साइटों को भेजते हैं, उसे किसी इंटरनेट प्रोवाइडर के नेटवर्क पर एक ही पता रखना चाहिए, तो यही ISP प्रॉक्सी कहलाता है। ProxyJam स्टैटिक रेज़िडेंशियल (ISP) प्रॉक्सी ISP प्रॉक्सी पेज पर बेचता है, और कीमतें कीमतों के पेज पर हैं।
