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ündeki ChromeSetting prototipini kullanır.
İzinler
proxy
Proxy ayarları API'sini kullanmak için uzantı manifestinde "proxy" iznini beyan etmeniz gerekir. Ö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ı
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 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 veya tam anlamıylaproxy.PacScript
nesnesinde belirtilendata
öğesinden alınan bir PAC komut dosyası tarafından belirlenir. Bunun yanı sıra, bu modProxyConfig
nesnesinde başka parametrelere izin vermez.fixed_servers
fixed_servers
modunda proxy yapılandırması birproxy.ProxyRules
nesnesinde kodlanır. Yapısı Proxy kuralları bölümünde açıklanmıştır. Bunun yanı sırafixed_servers
modu,ProxyConfig
nesnesinde başka parametreye izin vermez.system
system
modunda proxy yapılandırması işletim sisteminden alınır. Bu mod,ProxyConfig
nesnesinde başka parametrelere izin vermez.system
modunun proxy yapılandırması yok ayarlamaktan farklı olduğunu unutmayın. İkinci durumda, proxy yapılandırmasını hiçbir komut satırı seçeneği etkilemiyorsa Chrome sistem ayarlarına geri döner.
Proxy kuralları
proxy.ProxyRules
nesnesi, bir singleProxy
özelliğini veya proxyForHttp
, proxyForHttps
, proxyForFtp
ve fallbackProxy
öğelerinin bir alt kümesini içerebilir.
İlk örnekte HTTP, HTTPS ve FTP trafiğine, proxy sunucu üzerinden proxy uygulanır. Diğer trafik doğrudan gönderilir. İkinci durumda davranış biraz daha belirsizdir: Bir proxy sunucusu HTTP, HTTPS veya FTP protokolü için yapılandırılmışsa ilgili trafik, belirtilen sunucu üzerinden proxy sunucu üzerinden kullanılır. Böyle bir proxy sunucu belirtilmemişse veya trafik HTTP, HTTPS ya da FTP dışında bir protokol kullanıyorsa fallbackProxy
kullanılır. fallbackProxy
belirtilmezse trafik, proxy sunucu olmadan doğrudan gönderilir.
Proxy sunucu nesneleri
proxy.ProxyServer
nesnesinde bir proxy sunucu yapılandırılır. Proxy sunucu bağlantısı (host
özelliği tarafından tanımlanır), scheme
özelliğinde tanımlanan protokolü kullanır. scheme
belirtilmezse proxy bağlantısı varsayılan olarak http
değerine ayarlanır.
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 kullanımı dışında 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ını eşleştir. Baştaki"."
,"*."
olarak yorumlanır.Ö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]
IP adresi değişmez değeri olan URL'leri eşleştirin. Kavram olarak bu, ilk duruma benzer ancak IP değişmez standartlaştırmayı işlemek için özel durumlar vardır. Örneğin, IPv6 standartlaştırma dahili olarak yapıldığından "[0:0:0::1]" üzerindeki eşleştirme, "[::1]" üzerindeki eşleşmeyle aynıdır.
Örnekler:
127.0.1
,[0:0::1]
,[::1]:80
,https://[::1]:443
IP_LITERAL/PREFIX_LENGTH_IN_BITS
Verilen aralıkta IP sabit değeri (
IP_LITERAL
) içeren herhangi bir URL'yi eşleştirin. IP aralığı (PREFIX_LENGTH_IN_BITS
), CIDR gösterimi kullanılarak belirtilir.Verilen aralıkta IP değişmez değerini içeren herhangi bir URL'yi eşleştirin. 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 bir ana makine adı, nokta içermeyen ve IP değişmez değeri olan bir addır. Örneğin,example
velocalhost
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, foobar.com dışındaki tüm sunuculara yapılan 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ığından, ayarlar normal ve gizli pencerelere uygulanır. Types API belgelerine de bakı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() {}
);
Sonraki snippet, geçerli etkin proxy ayarlarını sorgular. Etkin proxy ayarları başka bir uzantı veya bir politika tarafından belirlenebilir. Ayrıntılı bilgi için Types API belgelerine bakın.
chrome.proxy.settings.get(
{'incognito': false},
function(config) {
console.log(JSON.stringify(config));
}
);
set()
nesnesine iletilen value
nesnesinin, get()
öğesinin geri çağırma işlevine geçirilen value
nesnesiyle aynı olmadığını unutmayın. İkinci kural, bir rules.proxyForHttp.port
öğesi 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ş bırakılamaz.
Özellikler
-
veri
string 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 false değerine ayarlanır.
-
url
string isteğe bağlı
Kullanılacak PAC dosyasının URL'si.
ProxyConfig
Tam proxy yapılandırmasını içeren 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ını el ile belirle '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ı. Bunu "pac_script" modu için kullanın.
-
kurallar
ProxyRules isteğe bağlı
Bu yapılandırmayı açıklayan proxy kuralları. Bunu "fixed_servers" modu için kullanın.
ProxyRules
Tüm protokoller için proxy kuralları grubunu kapsülleyen bir nesne. "singleProxy" veya "proxyForHttps", "proxyForHttps", "proxyForFtp" ve "fallbackProxy" alt gruplarından birini kullanın.
Özellikler
-
bypassList
string[] isteğe bağlı
Proxy sunucu olmadan bağlanılacak sunucuların listesi.
-
fallbackProxy
ProxyServer isteğe bağlı
Başka her şey için kullanılacak proxy sunucusu veya belirli proxyFor... değeri belirtilmemişse.
-
proxyForFtp
ProxyServer isteğe bağlı
FTP istekleri için kullanılacak proxy sunucudur.
-
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 sunucusu.
-
singleProxy
ProxyServer isteğe bağlı
Tüm URL başına istekler (yani http, https ve ftp) için kullanılacak proxy sunucudur.
ProxyServer
Tek bir proxy sunucunun spesifikasyonunu kapsayan bir nesne.
Özellikler
-
düzenleyen
dize
Proxy sunucunun ana makine adı veya IP adresi. Ana bilgisayar adları ASCII (Punnycode biçiminde) olmalıdır. IDNA henüz desteklenmemektedir.
-
bağlantı noktası
numara 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 kendisinin şeması (protokol). Varsayılan olarak "http" kullanılır.
Scheme
Enum
"http"
"https"
"quic"
"çoraplar4"
"çoraplar5"
Ö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 bilgilendirir.
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
Değer true ise, hata kritiktir ve ağ işlemi iptal edilmiştir. Aksi takdirde, bunun yerine doğrudan bağlantı kullanılır.
-
-