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:
directdirectmodunda tüm bağlantılar, proxy kullanılmadan doğrudan oluşturulur. Bu modProxyConfignesnesinde başka parametre yok.auto_detectauto_detectmodunda proxy yapılandırması, indirilebilecek bir PAC komut dosyası tarafından belirlenir http://wpad/wpad.dat adresine gidin. Bu mod,ProxyConfignesnesinde daha fazla parametreye izin vermez.pac_scriptpac_scriptmodunda proxy yapılandırması,proxy.PacScriptnesnesinde belirtilen veya tam anlamıyladataöğesinden alınan URL'denproxy.PacScriptnesnesinde belirtilir. Bunun yanı sıra, bu mod başka parametrelere izin vermez:ProxyConfignesnesinin içinde olur.fixed_serversfixed_serversmodunda proxy yapılandırması birproxy.ProxyRulesnesnesinde kodlanır. Bu yapısı, Proxy kuralları bölümünde açıklanmıştır. Bunun yanı sıra,fixed_serversmodu parametreleriniProxyConfignesnesinde saklar.systemsystemmodunda proxy yapılandırması işletim sisteminden alınır. Bu moddaProxyConfignesnesine başka parametreler de ekler.systemmodunun ş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:
| Şema | Bağlantı noktası |
|---|---|
| http | 80 |
| https | 443 |
| socks4 | 1080 |
| socks5 | 1080 |
Atlama listesi
Tek tek sunucular bypassList ile proxy'den hariç tutulabilir. Bu liste şunları içerebilir:
şu girişler:
[SCHEME://]HOST_PATTERN[:PORT]HOST_PATTERNkalı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]:443IP_LITERAL/PREFIX_LENGTH_IN_BITSBelirtilen
IP_LITERALaralığı. 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ğinexamplevelocalhostbasit 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
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
Enum
"http"
"https"
"quic"
"socks4"
"socks5"
Özellikler
settings
Kullanılacak proxy ayarları. Bu ayarın değeri bir ProxyConfig nesnesidir.
Tür
types.ChromeSetting<ProxyConfig>
Etkinlikler
onProxyError
chrome.proxy.onProxyError.addListener(
callback: function,
)
Proxy hataları hakkında bilgi verir.
Parametreler
-
geri çağırma
işlev
callbackparametresi ş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.
-
-