chrome.proxy

refresh date: 2026-09-25 robots: noindex

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 ChromeSetting tür API'sinin prototipine dayanır.

İzinler

proxy

Manifest

Proxy ayarları API'sini kullanmak için uzantı manifestinde "proxy" iznini beyan etmeniz gerekir. Örneğin:

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

Nesneler ve özellikler

Proxy ayarları, proxy.ProxyConfig nesnesinde tanımlanır. Chrome'un proxy ayarlarına bağlı olarak, ayarlarda proxy.ProxyRules veya proxy.PacScript bulunabilir.

Proxy modları

Bir ProxyConfig nesnesinin mode özelliği, Chrome'un proxy kullanımıyla ilgili genel davranışını belirler. Aşağıdaki değerleri alabilir:

direct
direct modunda tüm bağlantılar doğrudan oluşturulur ve proxy kullanılmaz. Bu mod, ProxyConfig nesnesinde başka parametreye izin vermez.
auto_detect
auto_detect modunda proxy yapılandırması, http://wpad/wpad.dat adresinden indirilebilen bir PAC komut dosyası tarafından belirlenir. Bu mod, ProxyConfig nesnesinde başka parametreye izin vermez.
pac_script
pac_script modunda proxy yapılandırması, proxy.PacScript nesnesinde belirtilen URL'den alınan veya proxy.PacScript nesnesinde belirtilen data öğesinden kelimesi kelimesine alınan bir PAC komut dosyası tarafından belirlenir. Ayrıca bu mod, ProxyConfig nesnesinde başka parametrelere izin vermez.
fixed_servers
fixed_servers modunda proxy yapılandırması, proxy.ProxyRules nesnesinde kodlanır. Yapısı Proxy kuralları bölümünde açıklanmıştır. Bunun dışında, fixed_servers modu ProxyConfig nesnesinde başka parametrelere izin vermez.
system
system modunda proxy yapılandırması işletim sisteminden alınır. Bu mod, ProxyConfig nesnesinde başka parametreye izin vermez. system modunun, proxy yapılandırması ayarlamaktan farklı olduğunu unutmayın. İkinci durumda Chrome, yalnızca komut satırı seçenekleri proxy yapılandırmasını etkilemiyorsa sistem ayarlarına geri döner.

Proxy kuralları

proxy.ProxyRules nesnesi, singleProxy özelliğini veya proxyForHttp, proxyForHttps, proxyForFtp ve fallbackProxy özelliklerinin bir alt kümesini içerebilir.

İlk durumda, HTTP, HTTPS ve FTP trafiği belirtilen proxy sunucusu üzerinden proxy'lenir. Diğer trafik doğrudan gönderilir. İkinci durumda davranış biraz daha farklıdır: HTTP, HTTPS veya FTP protokolü için bir proxy sunucusu yapılandırılırsa ilgili trafik, belirtilen sunucu üzerinden proxy'lenir. Böyle bir proxy sunucu belirtilmemişse veya trafik HTTP, HTTPS ya da FTP'den farklı bir protokol kullanıyorsa fallbackProxy kullanılır. fallbackProxy belirtilmemişse trafik, proxy sunucu olmadan doğrudan gönderilir.

Proxy sunucu nesneleri

Proxy sunucu, proxy.ProxyServer nesnesinde yapılandırılır. Proxy sunucusuna bağlantı (host özelliğiyle tanımlanır) scheme özelliğinde tanımlanan protokolü kullanır. scheme belirtilmezse proxy bağlantısı varsayılan olarak http olur.

Bir 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

Belirli sunucular, bypassList ile proxy'lenmenin dışında tutulabilir. Bu listede aşağıdaki girişler yer alabilir:

[SCHEME://]HOST_PATTERN[:PORT]

HOST_PATTERN düzeniyle eşleşen tüm ana makine adlarını eşleştirin. Baştaki ".", "*." olarak yorumlanır.

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

KalıpEşleşmelerEş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" ve "foofoobar.com"
[SCHEME://]IP_LITERAL[:PORT]

IP adresi değişmez değerleri olan URL'lerle eşleşin. Bu, kavramsal olarak ilk duruma benzer ancak IP değişmez standartlaştırmayı işlemek için özel durumlar içerir. Örneğin, IPv6 standartlaştırması dahili olarak yapıldığından "[0:0:0::1]" ile eşleşme, "[::1]" ile eşleşmeyle aynıdır.

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

IP_LITERAL/PREFIX_LENGTH_IN_BITS

Belirtilen aralıkta IP değişmezi (IP_LITERAL) içeren herhangi bir URL ile eşleşir. IP aralığı (PREFIX_LENGTH_IN_BITS), CIDR gösterimi kullanılarak belirtilir.

Belirtilen aralıkta IP değişmez değeri içeren tüm URL'lerle eşleşir. IP aralığı, CIDR gösterimi kullanılarak belirtilir. Örnekler: "192.168.1.1/16", "fefe:13::abc/33"

<local>

Tam dize <local>, basit ana makine adlarıyla eşleşir. Basit ana makine adı, nokta içermeyen ve IP değişmezi olmayan bir addır. Örneğin, example ve localhost basit ana makine adlarıdır. example.com, example. ve [::1] ise basit ana makine adları değildir.

Örnek: "<local>"

Örnekler

Aşağıdaki kod, tüm sunuculara yapılan HTTP bağlantıları için SOCKS 5 proxy'si ayarlar ancak foobar.com için ayarlanmaz ve diğer tüm protokoller için doğrudan bağlantılar kullanılır. Ayarlar, normal pencerelerden ayarları devraldıkları için hem normal hem de gizli pencereler için geçerlidir. Lütfen Types API belgelerine de göz atın.

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

Aşağıdaki snippet, şu anda etkin olan proxy ayarlarını sorgular. Geçerli proxy ayarları başka bir uzantı veya politika tarafından belirlenebilir. Ayrıntılar için Types API belgelerine bakın.

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

set() işlevine iletilen value nesnesinin, get() geri çağırma işlevine iletilen value nesnesiyle aynı olmadığını unutmayın. İkincisi rules.proxyForHttp.port öğesini içerir.

Türler

Mode

Chrome 54 veya daha yeni bir sürüm

Enum

"direct"

"auto_detect"

"pac_script"

"fixed_servers"

"system"

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

    boolean isteğe bağlı

    Doğruysa geçersiz bir PAC komut dosyası, ağ yığınının doğrudan bağlantılara geri dönmesini engeller. Varsayılan olarak false değerine ayarlanır.

  • url

    dize isteğe bağlı

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

ProxyConfig

Tam bir proxy yapılandırmasını kapsayan bir nesne.

Özellikler

  • mod

    "direct" = Hiçbir zaman proxy kullanma "auto_detect" = Proxy ayarlarını otomatik olarak algıla "pac_script" = Belirtilen PAC komut dosyasını kullan "fixed_servers" = Proxy sunucuları manuel olarak belirt "system" = 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ı. "pac_script" modu için bunu kullanın.

  • kurallar

    ProxyRules isteğe bağlı

    Bu yapılandırmayı açıklayan proxy kuralları. Bu, "fixed_servers" modu için kullanılır.

ProxyRules

Tüm protokoller için proxy kuralları grubunu kapsayan bir nesne. "singleProxy" veya "proxyForHttp", "proxyForHttps", "proxyForFtp" ve "fallbackProxy" öğelerinin (bir alt kümesi) kullanılabilir.

Özellikler

  • bypassList

    string[] isteğe bağlı

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

  • fallbackProxy

    ProxyServer isteğe bağlı

    Diğer her şey için veya proxyFor... özelliklerinden herhangi biri belirtilmemişse kullanılacak proxy sunucu.

  • proxyForFtp

    ProxyServer isteğe bağlı

    FTP istekleri için kullanılacak proxy sunucu.

  • proxyForHttp

    ProxyServer isteğe bağlı

    HTTP istekleri için kullanılacak proxy sunucu.

  • proxyForHttps

    ProxyServer isteğe bağlı

    HTTPS istekleri için kullanılacak proxy sunucu.

  • singleProxy

    ProxyServer isteğe bağlı

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

ProxyServer

Tek bir proxy sunucusunun spesifikasyonunu kapsayan bir nesne.

Özellikler

  • düzenleyen

    dize

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

  • bağlantı noktası

    number isteğe bağlı

    Proxy sunucusunun 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" değerine ayarlanır.

Scheme

Chrome 54 veya daha yeni bir sürüm

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 bildirim gönderir.

Parametreler

  • callback

    işlev

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

    (details: object) => void

    • ayrıntılar

      nesne

      • ayrıntılar

        dize

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

      • hata

        dize

        Hata açıklaması

      • fatal

        boole

        Doğruysa hata ölümcüldür ve ağ işlemi iptal edilmiştir. Aksi takdirde bunun yerine doğrudan bağlantı kullanılır.