chrome.proxy

refresh date: 2026-09-25 robots: noindex

ब्यौरा

Chrome की प्रॉक्सी सेटिंग मैनेज करने के लिए, chrome.proxy एपीआई का इस्तेमाल करें. यह एपीआई, प्रॉक्सी कॉन्फ़िगरेशन को पाने और सेट करने के लिए, ChromeSetting प्रोटोटाइप ऑफ़ द टाइप एपीआई पर निर्भर करता है.

अनुमतियां

proxy

मेनिफ़ेस्ट

प्रॉक्सी सेटिंग एपीआई का इस्तेमाल करने के लिए, आपको एक्सटेंशन मेनिफ़ेस्ट में "प्रॉक्सी" अनुमति का एलान करना होगा. उदाहरण के लिए:

{
  "name": "My extension",
  ...
  "permissions": [
    "proxy"
  ],
  ...
}

ऑब्जेक्ट और प्रॉपर्टी

प्रॉक्सी सेटिंग, proxy.ProxyConfig ऑब्जेक्ट में तय की जाती हैं. Chrome की प्रॉक्सी सेटिंग के आधार पर, सेटिंग में proxy.ProxyRules या proxy.PacScript शामिल हो सकता है.

प्रॉक्सी मोड

ProxyConfig ऑब्जेक्ट का mode एट्रिब्यूट, प्रॉक्सी के इस्तेमाल के बारे में Chrome के पूरे व्यवहार को तय करता है. इसकी ये वैल्यू हो सकती हैं:

direct
direct मोड में, सभी कनेक्शन सीधे तौर पर बनाए जाते हैं. इसमें किसी भी प्रॉक्सी का इस्तेमाल नहीं किया जाता. इस मोड में, ProxyConfig ऑब्जेक्ट में कोई और पैरामीटर नहीं जोड़ा जा सकता.
auto_detect
auto_detect मोड में, प्रॉक्सी कॉन्फ़िगरेशन का पता PAC स्क्रिप्ट से चलता है. इसे http://wpad/wpad.dat से डाउनलोड किया जा सकता है. इस मोड में, ProxyConfig ऑब्जेक्ट में कोई और पैरामीटर नहीं जोड़ा जा सकता.
pac_script
pac_script मोड में, प्रॉक्सी कॉन्फ़िगरेशन को पीएसी स्क्रिप्ट से तय किया जाता है. यह स्क्रिप्ट, proxy.PacScript ऑब्जेक्ट में दिए गए यूआरएल से वापस पाई जाती है या proxy.PacScript ऑब्जेक्ट में दिए गए data एलिमेंट से ली जाती है. इसके अलावा, इस मोड में ProxyConfig ऑब्जेक्ट में कोई और पैरामीटर इस्तेमाल नहीं किया जा सकता.
fixed_servers
fixed_servers मोड में, प्रॉक्सी कॉन्फ़िगरेशन को proxy.ProxyRules ऑब्जेक्ट में कोड किया जाता है. इसके स्ट्रक्चर के बारे में प्रॉक्सी के नियम में बताया गया है. इसके अलावा, fixed_servers मोड में ProxyConfig ऑब्जेक्ट में कोई और पैरामीटर इस्तेमाल करने की अनुमति नहीं है.
system
system मोड में, प्रॉक्सी कॉन्फ़िगरेशन को ऑपरेटिंग सिस्टम से लिया जाता है. इस मोड में, ProxyConfig ऑब्जेक्ट में कोई और पैरामीटर नहीं जोड़ा जा सकता. ध्यान दें कि system मोड, प्रॉक्सी कॉन्फ़िगरेशन सेट न करने से अलग है. दूसरे मामले में, Chrome सिर्फ़ तब सिस्टम सेटिंग पर वापस आता है, जब कोई भी कमांड-लाइन विकल्प प्रॉक्सी कॉन्फ़िगरेशन पर असर न डालता हो.

प्रॉक्सी के नियम

proxy.ProxyRules ऑब्जेक्ट में, singleProxy एट्रिब्यूट या proxyForHttp, proxyForHttps, proxyForFtp, और fallbackProxy का सबसेट शामिल हो सकता है.

पहले मामले में, एचटीटीपी, एचटीटीपीएस, और एफ़टीपी ट्रैफ़िक को तय किए गए प्रॉक्सी सर्वर के ज़रिए प्रॉक्सी किया जाता है. अन्य ट्रैफ़िक सीधे भेजा जाता है. दूसरे मामले में, यह थोड़ा अलग तरीके से काम करता है: अगर एचटीटीपी, एचटीटीपीएस या एफ़टीपी प्रोटोकॉल के लिए कोई प्रॉक्सी सर्वर कॉन्फ़िगर किया गया है, तो उससे जुड़ा ट्रैफ़िक, बताए गए सर्वर के ज़रिए प्रॉक्सी किया जाता है. अगर इस तरह के किसी प्रॉक्सी सर्वर के बारे में नहीं बताया गया है या ट्रैफ़िक, एचटीटीपी, एचटीटीपीएस या एफ़टीपी के अलावा किसी दूसरे प्रोटोकॉल का इस्तेमाल करता है, तो fallbackProxy का इस्तेमाल किया जाता है. अगर कोई fallbackProxy नहीं दिया गया है, तो ट्रैफ़िक को प्रॉक्सी सर्वर के बिना सीधे भेजा जाता है.

प्रॉक्सी सर्वर ऑब्जेक्ट

प्रॉक्सी सर्वर को proxy.ProxyServer ऑब्जेक्ट में कॉन्फ़िगर किया जाता है. प्रॉक्सी सर्वर से कनेक्शन (host एट्रिब्यूट से तय किया गया) के लिए, scheme एट्रिब्यूट में तय किए गए प्रोटोकॉल का इस्तेमाल किया जाता है. अगर कोई scheme तय नहीं किया गया है, तो प्रॉक्सी कनेक्शन डिफ़ॉल्ट रूप से http पर सेट होता है.

अगर किसी proxy.ProxyServer ऑब्जेक्ट में port तय नहीं किया गया है, तो पोर्ट को स्कीम से लिया जाता है. डिफ़ॉल्ट पोर्ट ये हैं:

स्कीमपोर्ट
http80
https443
socks41080
socks51080

बायपास लिस्ट

bypassList का इस्तेमाल करके, अलग-अलग सर्वर को प्रॉक्सी किए जाने से रोका जा सकता है. इस सूची में ये एंट्री शामिल हो सकती हैं:

[SCHEME://]HOST_PATTERN[:PORT]

HOST_PATTERN पैटर्न से मेल खाने वाले सभी होस्टनेम से मेल खाता है. शुरुआत में मौजूद "." को "*." के तौर पर समझा जाता है.

उदाहरण: "foobar.com", "*foobar.com", "*.foobar.com", "*foobar.com:99", "https://x.*.y.com:99".

पैटर्नमैचमिलान नहीं होता है
".foobar.com""www.foobar.com""foobar.com"
"*.foobar.com""www.foobar.com""foobar.com"
"foobar.com""foobar.com""www.foobar.com"
"*foobar.com""foobar.com", "www.foobar.com", "foofoobar.com"
[SCHEME://]IP_LITERAL[:PORT]

ऐसे यूआरएल मैच करता है जो आईपी पते के लिटरल हैं. यह कॉन्सेप्ट के तौर पर पहले मामले जैसा ही है. हालांकि, इसमें आईपी लिटरल कैननिकल बनाने के लिए खास मामले शामिल हैं. उदाहरण के लिए, "[0:0:0::1]" से मैच करने का मतलब "[::1]" से मैच करना है, क्योंकि IPv6 कैननिकल वर्शन को अंदरूनी तौर पर बनाया जाता है.

उदाहरण: 127.0.1, [0:0::1], [::1]:80, https://[::1]:443

IP_LITERAL/PREFIX_LENGTH_IN_BITS

दी गई रेंज में, आईपी लिटरल (IP_LITERAL) वाले किसी भी यूआरएल से मैच करता है. आईपी रेंज (PREFIX_LENGTH_IN_BITS) को सीआईडीआर नोटेशन का इस्तेमाल करके तय किया जाता है.

दी गई रेंज में मौजूद, आईपी लिटरल वाले किसी भी यूआरएल से मैच करता है. आईपी रेंज, सीआईडीआर नोटेशन का इस्तेमाल करके तय की जाती है. उदाहरण: "192.168.1.1/16", "fefe:13::abc/33"

<local>

लिटरल स्ट्रिंग <local>, सामान्य होस्टनेम से मेल खाती है. सिंपल होस्टनेम ऐसा होता है जिसमें कोई डॉट नहीं होता और वह आईपी लिटरल नहीं होता. उदाहरण के लिए, example और localhost सामान्य होस्टनेम हैं, जबकि example.com, example., और [::1] सामान्य होस्टनेम नहीं हैं.

उदाहरण: "<local>"

उदाहरण

नीचे दिए गए कोड में, सभी सर्वर के लिए एचटीटीपी कनेक्शन के लिए SOCKS 5 प्रॉक्सी सेट की गई है. हालांकि, foobar.com के लिए ऐसा नहीं किया गया है. साथ ही, इसमें अन्य सभी प्रोटोकॉल के लिए डायरेक्ट कनेक्शन का इस्तेमाल किया गया है. ये सेटिंग, सामान्य और गुप्त विंडो, दोनों पर लागू होती हैं. ऐसा इसलिए, क्योंकि गुप्त विंडो में सेटिंग, सामान्य विंडो से मिलती हैं. कृपया Types API से जुड़ा दस्तावेज़ भी देखें.

var config = {
  mode: "fixed_servers",
  rules: {
    proxyForHttp: {
      scheme: "socks5",
      host: "1.2.3.4"
    },
    bypassList: ["foobar.com"]
  }
};
chrome.proxy.settings.set(
  {value: config, scope: 'regular'},
  function() {}
);

नीचे दिए गए कोड में, कस्टम पीएसी स्क्रिप्ट सेट की गई है.

var config = {
  mode: "pac_script",
  pacScript: {
    data: "function FindProxyForURL(url, host) {\n" +
          "  if (host == 'foobar.com')\n" +
          "    return 'PROXY blackhole:80';\n" +
          "  return 'DIRECT';\n" +
          "}"
  }
};
chrome.proxy.settings.set(
  {value: config, scope: 'regular'},
  function() {}
);

अगला स्निपेट, फ़िलहाल लागू प्रॉक्सी सेटिंग के बारे में क्वेरी करता है. प्रॉक्सी सेटिंग को किसी अन्य एक्सटेंशन या नीति से तय किया जा सकता है. ज़्यादा जानकारी के लिए, Types API से जुड़ा दस्तावेज़ देखें.

chrome.proxy.settings.get(
  {'incognito': false},
  function(config) {
    console.log(JSON.stringify(config));
  }
);

ध्यान दें कि set() को पास किया गया value ऑब्जेक्ट, get() के कॉलबैक फ़ंक्शन को पास किए गए value ऑब्जेक्ट से अलग होता है. बाद वाले में rules.proxyForHttp.port एलिमेंट शामिल होगा.

टाइप

Mode

Chrome 54 या इसके बाद का वर्शन

Enum

"direct"

"auto_detect"

"pac_script"

"fixed_servers"

"system"

PacScript

यह एक ऐसा ऑब्जेक्ट है जिसमें प्रॉक्सी के अपने-आप कॉन्फ़िगर होने की जानकारी होती है. इनमें से किसी एक फ़ील्ड की वैल्यू खाली नहीं होनी चाहिए.

प्रॉपर्टी

  • डेटा

    string ज़रूरी नहीं है

    PAC स्क्रिप्ट.

  • ज़रूरी है

    boolean ज़रूरी नहीं है

    अगर इस नीति को 'सही है' पर सेट किया जाता है, तो अमान्य पीएसी स्क्रिप्ट, नेटवर्क स्टैक को सीधे कनेक्शन पर वापस जाने से रोकेगी. डिफ़ॉल्ट रूप से, यह 'गलत' पर सेट होती है.

  • url

    string ज़रूरी नहीं है

    इस्तेमाल की जाने वाली PAC फ़ाइल का यूआरएल.

ProxyConfig

यह एक ऐसा ऑब्जेक्ट होता है जिसमें प्रॉक्सी कॉन्फ़िगरेशन की पूरी जानकारी होती है.

प्रॉपर्टी

  • मोड

    'direct' = कभी भी प्रॉक्सी का इस्तेमाल न करें 'auto_detect' = प्रॉक्सी सेटिंग का अपने-आप पता लगाएं 'pac_script' = तय की गई PAC स्क्रिप्ट का इस्तेमाल करें 'fixed_servers' = प्रॉक्सी सर्वर को मैन्युअल तरीके से तय करें 'system' = सिस्टम की प्रॉक्सी सेटिंग का इस्तेमाल करें

  • pacScript

    PacScript ज़रूरी नहीं है

    इस कॉन्फ़िगरेशन के लिए प्रॉक्सी ऑटो-कॉन्फ़िगरेशन (पीएसी) स्क्रिप्ट. 'pac_script' मोड के लिए इसका इस्तेमाल करें.

  • नियम

    ProxyRules ज़रूरी नहीं है

    इस कॉन्फ़िगरेशन के बारे में बताने वाले प्रॉक्सी के नियम. 'fixed_servers' मोड के लिए इसका इस्तेमाल करें.

ProxyRules

यह एक ऐसा ऑब्जेक्ट है जिसमें सभी प्रोटोकॉल के लिए प्रॉक्सी के नियमों का सेट शामिल होता है. 'singleProxy' या 'proxyForHttp', 'proxyForHttps', 'proxyForFtp', और 'fallbackProxy' में से किसी एक का इस्तेमाल करें.

प्रॉपर्टी

  • bypassList

    string[] ज़रूरी नहीं है

    उन सर्वर की सूची जिनसे प्रॉक्सी सर्वर के बिना कनेक्ट किया जा सकता है.

  • fallbackProxy

    ProxyServer ज़रूरी नहीं है

    इस प्रॉक्सी सर्वर का इस्तेमाल अन्य सभी कामों के लिए किया जाता है. इसके अलावा, अगर proxyFor... में से कोई भी प्रॉक्सी सर्वर तय नहीं किया गया है, तो भी इसका इस्तेमाल किया जाता है.

  • proxyForFtp

    ProxyServer ज़रूरी नहीं है

    एफ़टीपी अनुरोधों के लिए इस्तेमाल किया जाने वाला प्रॉक्सी सर्वर.

  • proxyForHttp

    ProxyServer ज़रूरी नहीं है

    एचटीटीपी अनुरोधों के लिए इस्तेमाल किया जाने वाला प्रॉक्सी सर्वर.

  • proxyForHttps

    ProxyServer ज़रूरी नहीं है

    एचटीटीपीएस अनुरोधों के लिए इस्तेमाल किया जाने वाला प्रॉक्सी सर्वर.

  • singleProxy

    ProxyServer ज़रूरी नहीं है

    हर यूआरएल के अनुरोधों (जैसे, http, https, और ftp) के लिए इस्तेमाल किया जाने वाला प्रॉक्सी सर्वर.

ProxyServer

यह एक ऐसा ऑब्जेक्ट है जिसमें किसी एक प्रॉक्सी सर्वर की जानकारी शामिल होती है.

प्रॉपर्टी

  • होस्ट

    स्ट्रिंग

    प्रॉक्सी सर्वर का होस्टनेम या आईपी पता. होस्टनेम, ASCII (Punycode फ़ॉर्मैट में) में होने चाहिए. फ़िलहाल, आईडीएनए का इस्तेमाल नहीं किया जा सकता.

  • पोर्ट

    number optional

    प्रॉक्सी सर्वर का पोर्ट. डिफ़ॉल्ट रूप से, यह स्कीम पर निर्भर करने वाला पोर्ट होता है.

  • स्कीम

    स्कीम ज़रूरी नहीं है

    प्रॉक्सी सर्वर का स्कीम (प्रोटोकॉल). डिफ़ॉल्ट रूप से, यह 'http' पर सेट होता है.

Scheme

Chrome 54 या इसके बाद का वर्शन

Enum

"http"

"https"

"quic"

"socks4"

"socks5"

प्रॉपर्टी

settings

इस्तेमाल की जाने वाली प्रॉक्सी सेटिंग. इस सेटिंग की वैल्यू, ProxyConfig ऑब्जेक्ट होती है.

इवेंट

onProxyError

chrome.proxy.onProxyError.addListener(
  callback: function,
)

यह कुकी, प्रॉक्सी से जुड़ी गड़बड़ियों के बारे में सूचना देती है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर ऐसा दिखता है:

    (details: object) => void

    • ब्यौरा

      ऑब्जेक्ट

      • ब्यौरा

        स्ट्रिंग

        गड़बड़ी के बारे में ज़्यादा जानकारी, जैसे कि JavaScript रनटाइम की गड़बड़ी.

      • गड़बड़ी

        स्ट्रिंग

        गड़बड़ी की जानकारी.

      • fatal

        बूलियन

        अगर यह वैल्यू सही है, तो इसका मतलब है कि गड़बड़ी गंभीर थी और नेटवर्क ट्रांज़ैक्शन को रद्द कर दिया गया था. ऐसा न होने पर, डायरेक्ट कनेक्शन का इस्तेमाल किया जाता है.