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ündeki API'nin ChromeSetting prototipine dayanır.
İzinler
proxyManifest
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:
directdirectmodunda tüm bağlantılar doğrudan oluşturulur ve herhangi bir proxy kullanılmaz. Bu mod,ProxyConfignesnesinde başka parametrelere izin vermez.auto_detect-
auto_detectmodunda proxy yapılandırması, http://wpad/wpad.dat adresinden indirilebilen bir PAC komut dosyası tarafından belirlenir. Bu mod,ProxyConfignesnesinde başka parametreye izin vermez. pac_script-
pac_scriptmodunda, proxy yapılandırmasıproxy.PacScriptnesnesinde belirtilen URL'den alınan veyaproxy.PacScriptnesnesinde belirtilendataöğesinden olduğu gibi alınan bir PAC komut dosyası tarafından belirlenir. Bunun dışında, bu moddaProxyConfignesnesine başka parametre eklenemez. fixed_serversfixed_serversmodunda proxy yapılandırması birproxy.ProxyRulesnesnesinde kodlanır. Yapısı Proxy kuralları başlıklı makalede açıklanmıştır. Bunun dışında,fixed_serversmoduProxyConfignesnesinde başka parametrelere izin vermez.system- modunda, proxy yapılandırması işletim sisteminden alınır.
systemBu mod,ProxyConfignesnesinde başka parametreye izin vermez.systemmodunun, 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: Bir proxy sunucusu HTTP, HTTPS veya FTP protokolü için yapılandırılmışsa ilgili trafik, belirtilen sunucu üzerinden proxy'lenir. Böyle bir proxy sunucusu belirtilmemişse veya trafik HTTP, HTTPS ya da FTP'den farklı bir protokol kullanıyorsa fallbackProxy kullanılır. fallbackProxy belirtilmezse trafik doğrudan proxy sunucu olmadan gönderilir.
Proxy sunucu nesneleri
Proxy sunucusu, proxy.ProxyServer nesnesinde yapılandırılır. Proxy sunucuya 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.
proxy.ProxyServer nesnesinde port tanımlanmamışsa bağlantı noktası şemadan türetilir.
Varsayılan bağlantı noktaları şunlardır:
| Şema | Bağlantı noktası |
|---|---|
| http | 80 |
| https | 443 |
| socks4 | 1080 |
| socks5 | 1080 |
İstisna listesi
Belirli sunucular, bypassList ile proxy oluşturulmanın dışında tutulabilir. Bu listede aşağıdaki girişler yer alabilir:
[SCHEME://]HOST_PATTERN[:PORT]HOST_PATTERNdü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ıp Eşleşmeler 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]IP adresi değişmez değerleri olan URL'lerle eşleşir. Bu, kavramsal olarak ilk duruma benzer ancak IP değişmez değerinin standartlaştırılmasıyla ilgili özel durumlar vardır. Ö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]:443IP_LITERAL/PREFIX_LENGTH_IN_BITSBelirtilen aralıkta (
IP_LITERAL) IP değişmezi 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><local>değişmez dizesi, 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,examplevelocalhostbasit 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 yönelik HTTP bağlantıları için foobar.com hariç bir SOCKS 5 proxy'si ayarlar ve diğer tüm protokoller için doğrudan bağlantıları kullanır. Ayarlar, normal pencerelerden ayarları devralan gizli pencereler için de 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));
}
);
value öğesinin set() öğesine iletilen value öğesiyle aynı olmadığını unutmayın.get() İkincisi rules.proxyForHttp.port öğesini içerir.
Türler
Mode
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ırmanın 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ı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... seçeneklerinden herhangi biri belirtilmemişse 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 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ıdır.
Proxy sunucunun şeması (protokolü). Varsayılan olarak "http" değerine ayarlanır.
Scheme
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
callbackparametresi ş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
boolean
Doğruysa hata kritiktir ve ağ işlemi iptal edilmiştir. Aksi takdirde, bunun yerine doğrudan bağlantı kullanılır.
-
-