Deskripsi
Gunakan chrome.proxy
API untuk mengelola setelan proxy Chrome. API ini bergantung pada prototipe ChromeSetting dari jenis API untuk mendapatkan dan menyetel konfigurasi proxy.
Izin
proxy
Anda harus mendeklarasikan "proxy" izin di manifes ekstensi untuk menggunakan setelan proxy Compute Engine API. Contoh:
{
"name": "My extension",
...
"permissions": [
"proxy"
],
...
}
Konsep dan penggunaan
Setelan proxy ditentukan dalam objek proxy.ProxyConfig
. Bergantung pada setelan proxy Chrome,
setelan mungkin berisi proxy.ProxyRules
atau proxy.PacScript
.
Mode proxy
Atribut mode
objek ProxyConfig menentukan perilaku Chrome secara keseluruhan dalam
penggunaan proxy. Kolom ini dapat berisi nilai berikut:
direct
- Dalam mode
direct
, semua koneksi dibuat secara langsung, tanpa melibatkan proxy. Mode ini memungkinkan parameter lebih lanjut dalam objekProxyConfig
. auto_detect
- Dalam mode
auto_detect
, konfigurasi proxy ditentukan oleh skrip PAC yang dapat didownload di http://wpad/wpad.dat. Mode ini tidak mengizinkan parameter lebih lanjut dalam objekProxyConfig
. pac_script
- Dalam mode
pac_script
, konfigurasi proxy ditentukan oleh skrip PAC yang diambil dari URL yang ditentukan dalam objekproxy.PacScript
atau diambil secara harfiah dari elemendata
yang ditentukan dalam objekproxy.PacScript
. Selain itu, mode ini tidak memungkinkan parameter lebih lanjut dalam objekProxyConfig
. fixed_servers
- Dalam mode
fixed_servers
, konfigurasi proxy dikodifikasi dalam objekproxy.ProxyRules
. Ini dijelaskan dalam Aturan proxy. Selain itu, modefixed_servers
tidak memungkinkan parameter dalam objekProxyConfig
. system
- Dalam mode
system
, konfigurasi proxy diambil dari sistem operasi. Mode ini tidak mengizinkan parameter lebih lanjut dalam objekProxyConfig
. Perhatikan bahwa modesystem
berbeda dengan tanpa menetapkan konfigurasi proxy. Dalam kasus yang terakhir, Chrome akan kembali ke setelan sistem hanya jika tidak ada opsi command line yang memengaruhi konfigurasi proxy.
Aturan proxy
Objek proxy.ProxyRules
dapat berisi atribut singleProxy
atau subset dari
proxyForHttp
, proxyForHttps
, proxyForFtp
, dan fallbackProxy
.
Dalam kasus pertama, traffic HTTP, HTTPS, dan FTP di-proxy-kan melalui server proxy yang ditentukan. Yang lain
traffic dikirim secara langsung. Dalam kasus yang terakhir, perilakunya sedikit lebih halus: Jika server proxy
dikonfigurasikan untuk protokol HTTP, HTTPS, atau FTP,
lalu lintas masing-masing di-proxy-kan melalui
server tertentu. Jika tidak ada server {i>proxy<i} yang ditentukan atau lalu lintas menggunakan protokol yang berbeda dengan
HTTP, HTTPS, atau FTP, fallbackProxy
yang digunakan. Jika fallbackProxy
tidak ditentukan, traffic akan dikirim
secara langsung tanpa server {i>proxy<i}.
Objek server proxy
Server proxy dikonfigurasi dalam objek proxy.ProxyServer
. Koneksi ke server {i>proxy<i}
(ditentukan oleh atribut host
) menggunakan protokol yang ditentukan dalam atribut scheme
. Jika tidak
scheme
telah ditentukan, koneksi proxy akan ditetapkan secara default ke http
.
Jika tidak ada port
yang ditentukan dalam objek proxy.ProxyServer
, port tersebut akan berasal dari skema.
Port defaultnya adalah:
Skema | Port |
---|---|
http | 80 |
https | 443 |
socks4 | 1080 |
socks5 | 1080 |
Daftar pengabaian
Masing-masing server mungkin dikecualikan agar tidak di-proxy-kan dengan bypassList
. Daftar ini mungkin berisi
entri berikut:
[SCHEME://]HOST_PATTERN[:PORT]
Cocokkan semua nama host yang cocok dengan pola
HOST_PATTERN
."."
utama ditafsirkan sebagai"*."
.Contoh:
"foobar.com", "*foobar.com", "*.foobar.com", "*foobar.com:99", "https://x.*.y.com:99"
.Pola Kecocokan Tidak cocok ".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]
Mencocokkan URL yang merupakan literal alamat IP. Secara konseptual ini mirip dengan kasus pertama, tetapi khusus untuk menangani kanonikalisasi IP literal. Misalnya, mencocokkan "[0:0:0::1]" sama dengan pencocokan pada "[::1]" karena kanonikalisasi IPv6 dilakukan secara internal.
Contoh:
127.0.1
,[0:0::1]
,[::1]:80
,https://[::1]:443
IP_LITERAL/PREFIX_LENGTH_IN_BITS
Cocokkan URL apa pun yang berisi literal IP (
IP_LITERAL
) dalam atribut yang diberikan {i>range<i}. Rentang IP (PREFIX_LENGTH_IN_BITS
) ditentukan menggunakan CIDR notasi.Mencocokkan URL apa pun yang berisi literal IP dalam rentang yang diberikan. Rentang IP ditentukan menggunakan CIDR notasi standar. Contoh:
"192.168.1.1/16", "fefe:13::abc/33"
<local>
String literal
<local>
cocok dengan nama host sederhana. Nama {i>host<i} sederhana adalah nama {i>host<i} yang tidak berisi titik dan bukan literal IP. Misalnya,example
danlocalhost
adalah nama host sederhana, sedangkanexample.com
,example.
, dan[::1]
tidak.Contoh:
"<local>"
Contoh
Kode berikut menetapkan proxy SOCKS 5 untuk koneksi HTTP ke semua server kecuali foobar.com dan menggunakan koneksi langsung untuk semua protokol lainnya. Setelan ini berlaku untuk jendela reguler dan samaran, jendela samaran mewarisi pengaturan dari jendela biasa. Lihat juga Types API dokumentasi layanan.
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() {}
);
Kode berikut menetapkan skrip PAC kustom.
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() {}
);
Cuplikan berikutnya mengajukan kueri setelan proxy yang efektif saat ini. Pengaturan {i>proxy<i} yang efektif dapat ditentukan oleh ekstensi lain atau oleh kebijakan. Lihat dokumentasi Types API untuk mengetahui detailnya.
chrome.proxy.settings.get(
{'incognito': false},
function(config) {
console.log(JSON.stringify(config));
}
);
Perlu diketahui bahwa objek value
yang diteruskan ke set()
tidak sama dengan objek value
yang diteruskan ke
fungsi callback dari get()
. Yang kedua akan berisi elemen rules.proxyForHttp.port
.
Jenis
Mode
Enum
"direct"
"auto_detect"
"pac_script"
"fixed_servers"
"sistem"
PacScript
Objek yang menyimpan informasi konfigurasi otomatis proxy. Persis satu kolom tidak boleh kosong.
Properti
-
data
string opsional
Skrip PAC.
-
wajib
boolean opsional
Jika true (benar), skrip PAC yang tidak valid akan mencegah tumpukan jaringan beralih kembali ke koneksi langsung. Nilai defaultnya adalah false (salah).
-
url
string opsional
URL file PAC yang akan digunakan.
ProxyConfig
Objek yang merangkum konfigurasi proxy lengkap.
Properti
-
mode
'langsung' = Jangan pernah menggunakan proxy 'auto_detect' = Deteksi otomatis setelan proxy {i>'pac_script'<i} = Gunakan skrip PAC yang ditetapkan '{i>fixed_servers<i}' = Menentukan server proxy secara manual 'sistem' = Gunakan setelan proxy sistem
-
pacScript
PacScript opsional
Skrip proxy auto-config (PAC) untuk konfigurasi ini. Gunakan ini untuk 'pac_script' mode.
-
rules
ProxyRules opsional
Aturan proxy yang menjelaskan konfigurasi ini. Gunakan ini untuk 'fixed_servers' mode.
ProxyRules
Objek yang mengenkapsulasi rangkaian aturan proxy untuk semua protokol. Gunakan 'singleProxy' atau (subset dari) 'proxyForHttp', 'proxyForHttps', 'proxyForFtp' dan 'fallbackProxy'.
Properti
-
bypassList
string[] opsional
Daftar server yang dapat dihubungkan tanpa server proxy.
-
fallbackProxy
ProxyServer opsional
Server proxy yang akan digunakan untuk hal lain atau jika salah satu proxyFor... tertentu tidak ditentukan.
-
proxyForFtp
ProxyServer opsional
Server proxy yang akan digunakan untuk permintaan FTP.
-
proxyForHttp
ProxyServer opsional
Server proxy yang akan digunakan untuk permintaan HTTP.
-
proxyForHttps
ProxyServer opsional
Server proxy yang akan digunakan untuk permintaan HTTPS.
-
singleProxy
ProxyServer opsional
Server proxy yang akan digunakan untuk semua permintaan per URL (yaitu http, https, dan ftp).
ProxyServer
Objek yang merangkum spesifikasi server proxy tunggal.
Properti
-
host
string
Nama host atau alamat IP server proxy. Nama host harus dalam ASCII (dalam format Punycode). IDNA belum didukung.
-
port
angka opsional
Port server proxy. Setelan defaultnya adalah port yang bergantung pada skema.
-
skema
Skema opsional
Skema (protokol) dari server proxy itu sendiri. Default-nya adalah 'http'.
Scheme
Enum
"http"
"https"
"quic"
"socks4"
"socks5"
Properti
settings
Setelan proxy yang akan digunakan. Nilai setelan ini adalah objek ProxyConfig.
Jenis
types.ChromeSetting<ProxyConfig>
Acara
onProxyError
chrome.proxy.onProxyError.addListener(
callback: function,
)
Memberi tahu tentang error proxy.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti ini:(details: object) => void
-
detail
objek
-
detail
string
Detail tambahan tentang error, seperti error runtime JavaScript.
-
error
string
Deskripsi error.
-
fatal
boolean
Jika true (benar), error bersifat fatal dan transaksi jaringan dibatalkan. Jika tidak, koneksi langsung akan digunakan.
-
-