chrome.proxy

refresh date: 2026-09-25 robots: noindex

Açıklama

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

İzinler

proxy

Manifest

Proxy ayarları API'sini kullanmak için uzantı manifest dosyasında "proxy" iznini belirtmeniz gerekir. Örneğin:

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

Nesneler ve özellikler

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, 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, herhangi bir proxy kullanılmadan doğrudan oluşturulur. 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 olduğu gibi alınan bir PAC komut dosyası tarafından belirlenir. Bunun dışında, bu modda ProxyConfig nesnesinde başka parametreye izin verilmez.
fixed_servers
fixed_servers modunda proxy yapılandırması bir proxy.ProxyRules nesnesinde kodlanır. Yapısı Proxy kuralları bölümünde açıklanmıştır. Bunun yanı sıra 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ı ayarlanmamasından farklı olduğunu unutmayın. İkinci durumda Chrome, yalnızca proxy yapılandırmasını etkileyen komut satırı seçeneği yoksa 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 yönlendirilir. 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ılmışsa ilgili trafik, belirtilen sunucu üzerinden proxy'ye yönlendirilir. Böyle bir proxy sunucu belirtilmezse veya trafik HTTP, HTTPS ya da FTP'den farklı bir protokol kullanıyorsa fallbackProxy kullanılır. fallbackProxy belirtilmezse trafik, proxy sunucusu olmadan doğrudan gönderilir.

Proxy sunucu nesneleri

Proxy sunucu, proxy.ProxyServer nesnesinde yapılandırılır. Proxy sunucusuyla 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

bypassList ile proxy sunucusu kullanılarak erişilen sunucular hariç tutulabilir. Bu liste aşağıdaki girişleri içerebilir:

[SCHEME://]HOST_PATTERN[:PORT]

HOST_PATTERN kalıbıyla eşleşen tüm ana makine adlarıyla eşleşir. 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'leri eşleştirin. Kavramsal olarak bu, ilk duruma benzer ancak IP değişmez değer standartlaştırmasını işlemek için özel durumlar vardır. Örneğin, IPv6 standartlaştırması dahili olarak yapıldığından "[0:0:0::1]" ile eşleştirme, "[::1]" ile eşleştirmeyle 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 tüm URL'lerle eşleştirin. IP aralığı (PREFIX_LENGTH_IN_BITS), CIDR gösterimi kullanılarak belirtilir.

Belirtilen aralıkta IP değişmezi 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>

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

Örnek: "<local>"

Örnekler

Aşağıdaki kod, foobar.com dışındaki tüm sunuculara HTTP bağlantıları için bir SOCKS 5 proxy'si ayarlar ve diğer tüm protokoller için doğrudan bağlantıları kullanır. Gizli pencereler ayarları normal pencerelerden devraldığı için ayarlar normal ve gizli pencereler için geçerlidir. Lütfen Types API belgelerini de inceleyin.

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, geçerli 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 bir rules.proxyForHttp.port öğesi içerir.

Türler

Mode

Chrome 54+

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

    string isteğe bağlı

    PAC komut dosyası.

  • zorunlu

    boole isteğe bağlı

    Bu politika, Doğru değerine ayarlanırsa geçersiz bir PAC komut dosyası, ağ yığınının doğrudan bağlantılara geri dönmesini engeller. Varsayılan olarak "false" (yanlış) değerine ayarlıdır.

  • url

    string isteğe bağlı

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

ProxyConfig

Tam bir proxy yapılandırmasını kapsayan 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ını 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ı. Bu ayarı "pac_script" modu için kullanın.

  • kurallar

    ProxyRules isteğe bağlı

    Bu yapılandırmayı açıklayan proxy kuralları. Bu ayarı "fixed_servers" modu için kullanın.

ProxyRules

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

Ö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 belirli proxyFor... değerlerinden 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 istekleri (http, https ve ftp) için kullanılacak proxy sunucu.

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 (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 sunucusunun şeması (protokolü). Varsayılan olarak "http" değerine ayarlanır.

Scheme

Chrome 54+

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

        Hatayla ilgili ek ayrıntılar (ör. JavaScript çalışma zamanı hatası).

      • hata

        dize

        Hata açıklaması.

      • fatal

        boole

        "Doğru" ise hata önemliydi ve ağ işlemi iptal edildi. Aksi takdirde doğrudan bağlantı kullanılır.