chrome.proxy

Açıklama

Chrome'un proxy ayarlarını yönetmek için chrome.proxy API'yi kullanın. Bu API, proxy yapılandırmasını almak ve ayarlamak için API türünün ChromeSetting prototipini kullanır.

İzinler

proxy

"Proxy"yi beyan etmeniz gerekir uzantı manifestinde proxy ayarlarını kullanma izni API'ye gidin. Örneğin:

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

Kavramlar ve kullanım

Proxy ayarları bir proxy.ProxyConfig nesnesinde tanımlanır. Chrome'un proxy ayarlarına bağlı olarak, Ayarlar proxy.ProxyRules veya proxy.PacScript içerebilir.

Proxy modları

ProxyConfig nesnesinin mode özelliği, proxy kullanımı hakkında daha fazla bilgi edinin. Aşağıdaki değerleri alabilir:

direct
direct modunda tüm bağlantılar, proxy kullanılmadan doğrudan oluşturulur. Bu mod ProxyConfig nesnesinde başka parametre yok.
auto_detect
auto_detect modunda proxy yapılandırması, indirilebilecek bir PAC komut dosyası tarafından belirlenir http://wpad/wpad.dat adresine gidin. Bu mod, ProxyConfig nesnesinde daha fazla parametreye izin vermez.
pac_script
pac_script modunda proxy yapılandırması, proxy.PacScript nesnesinde belirtilen veya tam anlamıyla data öğesinden alınan URL'den proxy.PacScript nesnesinde belirtilir. Bunun yanı sıra, bu mod başka parametrelere izin vermez: ProxyConfig nesnesinin içinde olur.
fixed_servers
fixed_servers modunda proxy yapılandırması bir proxy.ProxyRules nesnesinde kodlanır. Bu yapısı, Proxy kuralları bölümünde açıklanmıştır. Bunun yanı sıra, fixed_servers modu parametrelerini ProxyConfig nesnesinde saklar.
system
system modunda proxy yapılandırması işletim sisteminden alınır. Bu modda ProxyConfig nesnesine başka parametreler de ekler. system modunun şundan farklı olduğunu unutmayın: "proxy yapılandırması yok" ayarını seçin. İkinci durumda Chrome, yalnızca proxy yapılandırmasını hiçbir komut satırı seçeneği etkilemez.

Proxy kuralları

proxy.ProxyRules nesnesi, bir singleProxy özelliği veya proxyForHttp, proxyForHttps, proxyForFtp ve fallbackProxy.

İlk durumda HTTP, HTTPS ve FTP trafiği, belirtilen proxy sunucu üzerinden yönlendirilir. Diğer trafik doğrudan gönderilir. İkinci durumda davranış biraz daha belirgindir: Proxy sunucu HTTP, HTTPS veya FTP protokolü için yapılandırılmışsa ilgili trafik, belirtilen sunucudur. Böyle bir proxy sunucu belirtilmezse veya trafik, HTTP, HTTPS veya FTP ise fallbackProxy kullanılır. fallbackProxy belirtilmezse trafik gönderilir sunucu olmadan da yapabilirsiniz.

Proxy sunucu nesneleri

proxy.ProxyServer nesnesinde bir proxy sunucu yapılandırılır. Proxy sunucusuyla bağlantı (host özelliği tarafından tanımlanır), scheme özelliğinde tanımlanan protokolü kullanır. Yanıt hayır ise: scheme belirtildi, proxy bağlantısı varsayılan olarak http.

proxy.ProxyServer nesnesinde port tanımlanmamışsa bağlantı noktası şemadan türetilir. Varsayılan bağlantı noktaları şunlardır:

ŞemaBağlantı noktası
http80
https443
socks41080
socks51080

Atlama listesi

Tek tek sunucular bypassList ile proxy'den hariç tutulabilir. Bu liste şunları içerebilir: şu girişler:

[SCHEME://]HOST_PATTERN[:PORT]

HOST_PATTERN kalıbıyla eşleşen tüm ana makine adlarını eşleştir. Baştaki ".", "*.".

Örnekler: "foobar.com", "*foobar.com", "*.foobar.com", "*foobar.com:99", "https://x.*.y.com:99".

KalıpŞununla eşleşiyor:Eşleşmez
".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]

Değişmez IP adresi olan URL'lerle eşleştirin. Kavram olarak bu ilk duruma benzer, ancak . Örneğin, "[0:0:0::1]" ile eşleşiyor "[::1]" ile eşleştirmeyle aynıdır çünkü IPv6 standartlaştırması dahili olarak yapılıyor.

Örnekler: 127.0.1, [0:0::1], [::1]:80, https://[::1]:443

IP_LITERAL/PREFIX_LENGTH_IN_BITS

BelirtilenIP_LITERAL aralığı. IP aralığı (PREFIX_LENGTH_IN_BITS), CIDR kullanılarak belirtilir. notasyonu.

Verilen aralıkta bir sabit IP içeren herhangi bir URL ile eşleştirin. IP aralığı, CIDR kullanılarak belirtilir çok önemlidir. Örnekler: "192.168.1.1/16", "fefe:13::abc/33"

<local>

<local> düz dizesi, basit ana makine adlarıyla eşleşir. Basit ana makine adı, noktalara yer verilmelidir. Örneğin example ve localhost basit ana makine adlarıdır, example.com, example. ve [::1] ise değildir.

Örnek: "<local>"

Örnekler

Aşağıdaki kod, foobar.com dışındaki tüm sunuculara yönelik HTTP bağlantıları için bir SOCKS 5 proxy'si ayarlar ve tüm diğer protokoller için doğrudan bağlantılar. Bu ayarlar, normal ve gizli pencereler için geçerlidir; gizli pencereler, ayarları normal pencerelerden devralır. Types API'yi de inceleyin. belgelerinden faydalanabilirsiniz.

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() {}
);

Aşağıdaki kod özel bir PAC komut dosyası ayarlar.

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() {}
);

Sonraki snippet, mevcut etkin proxy ayarlarını sorgular. Etkili proxy ayarları tarafından belirlendiğini varsayalım. Ayrıntılar için Types API belgelerine bakın.

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

set() öğesine geçirilen value nesnesinin, iletilen value nesnesiyle aynı olmadığını unutmayın. get() geri çağırma işlevi. İkincisi, bir rules.proxyForHttp.port öğesi içerir.

Türler

Mode

Chrome 54 ve sonraki sürümler 'nı inceleyin.

Enum

"doğrudan"

"auto_detect"

"pac_script"

"fixed_servers"

"sistem"

PacScript

Proxy otomatik yapılandırma bilgilerini içeren bir nesne. Alanlardan tam olarak biri boş olmamalıdır.

Özellikler

  • veri

    dize isteğe bağlı

    PAC komut dosyası.

  • zorunlu

    boole isteğe bağlı

    Değer true ise geçersiz bir PAC komut dosyası, ağ yığınının doğrudan bağlantılara dönmesini engeller. Varsayılan olarak yanlış değerine ayarlanır.

  • url

    dize isteğe bağlı

    Kullanılacak PAC dosyasının URL'si.

ProxyConfig

Tam proxy yapılandırmasını kapsülleyen bir nesne.

Özellikler

  • mod

    "doğrudan" = Hiçbir zaman proxy kullanma "auto_detect" [otomatik_algıla] = Proxy ayarlarını otomatik olarak algıla "pac_script" = Belirtilen PAC komut dosyasını kullanın "fixed_servers" = Proxy sunucuları el ile belirt "system" [sistem] = Sistem proxy ayarlarını kullan

  • pacScript

    PacScript isteğe bağlı

    Bu yapılandırma için proxy otomatik yapılandırma (PAC) komut dosyası. Bunu "pac_script" için kullanın yatırım yapmanız önemlidir.

  • kurallar

    ProxyRules isteğe bağlı

    Bu yapılandırmayı açıklayan proxy kuralları. "fixed_servers" için bunu kullanın. yatırım yapmanız önemlidir.

ProxyRules

Tüm protokoller için proxy kuralları grubunu kapsayan bir nesne. "singleProxy"den birini kullanın veya (bir alt kümesi) 'proxyForHttp', 'proxyForHttps', 'proxyForFtp' ve "fallbackProxy" olur.

Özellikler

  • bypassList

    string[] isteğe bağlı

    Proxy sunucu olmadan bağlanılacak sunucuların listesi.

  • fallbackProxy

    ProxyServer isteğe bağlı

    Diğer her şey için veya belirli proxyFor... belirtilmediyse kullanılacak proxy sunucusu.

  • proxyForFtp

    ProxyServer isteğe bağlı

    FTP istekleri için kullanılacak proxy sunucusu.

  • proxyForHttp

    ProxyServer isteğe bağlı

    HTTP istekleri için kullanılacak proxy sunucusu.

  • proxyForHttps

    ProxyServer isteğe bağlı

    HTTPS istekleri için kullanılacak proxy sunucu.

  • singleProxy

    ProxyServer isteğe bağlı

    URL başına tüm istekler için kullanılacak proxy sunucusu (http, https ve ftp).

ProxyServer

Tek bir proxy sunucunun özelliklerini kapsayan nesne.

Özellikler

  • düzenleyen

    dize

    Proxy sunucunun ana makine adı veya IP adresi. Ana makine adları ASCII (Punnycode biçiminde) olmalıdır. IDNA henüz desteklenmemektedir.

  • bağlantı noktası

    sayı isteğe bağlı

    Proxy sunucunun bağlantı noktası. Varsayılan olarak, şemaya bağlı bir bağlantı noktası kullanılır.

  • şema

    Şema isteğe bağlı

    Proxy sunucunun şeması (protokol). Varsayılan olarak "http" kullanılır.

Scheme

Chrome 54 ve sonraki sürümler 'nı inceleyin.

Enum

"http"

"https"

"quic"

"socks4"

"socks5"

Özellikler

settings

Kullanılacak proxy ayarları. Bu ayarın değeri bir ProxyConfig nesnesidir.

Etkinlikler

onProxyError

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

Proxy hataları hakkında bilgi verir.

Parametreler

  • geri çağırma

    işlev

    callback parametresi şu şekilde görünür:

    (details: object) => void

    • ayrıntılar

      nesne

      • ayrıntılar

        dize

        Hatayla ilgili, JavaScript çalışma zamanı hatası gibi ek ayrıntılar.

      • hata

        dize

        Hata açıklaması.

      • fatal

        boolean

        True (doğru) ise hata kritik öneme sahiptir ve ağ işlemi iptal edilmiştir. Aksi takdirde doğrudan bağlantı kullanılır.