refresh date: 2026-09-25 robots: noindex
Opis
Użyj interfejsu chrome.proxy API, aby zarządzać ustawieniami serwera proxy Chrome. Ten interfejs API korzysta z prototypu ChromeSetting typu API do pobierania i ustawiania konfiguracji serwera proxy.
Uprawnienia
proxyPlik manifestu
Aby korzystać z interfejsu API ustawień serwera proxy, musisz zadeklarować uprawnienie „proxy” w pliku manifestu rozszerzenia. Na przykład:
{
"name": "My extension",
...
"permissions": [
"proxy"
],
...
}
Obiekty i właściwości
Ustawienia serwera proxy są zdefiniowane w obiekcie proxy.ProxyConfig. W zależności od ustawień serwera proxy w Chrome ustawienia mogą zawierać proxy.ProxyRules lub proxy.PacScript.
Tryby serwera proxy
Atrybut mode obiektu ProxyConfig określa ogólne zachowanie Chrome w zakresie korzystania z serwera proxy. Może przyjmować te wartości:
direct- W trybie
directwszystkie połączenia są tworzone bezpośrednio, bez użycia serwera proxy. W tym trybieProxyConfignie może zawierać żadnych dodatkowych parametrów. auto_detect- W
auto_detecttrybie konfiguracja serwera proxy jest określana przez skrypt PAC, który można pobrać pod adresem http://wpad/wpad.dat. W tym trybie obiektProxyConfignie może zawierać żadnych dodatkowych parametrów. pac_script- W trybie
pac_scriptkonfiguracja serwera proxy jest określana przez skrypt PAC, który jest pobierany z adresu URL podanego w obiekcieproxy.PacScriptlub dosłownie z elementudatapodanego w obiekcieproxy.PacScript. Poza tym ten tryb nie zezwala na żadne inne parametry w obiekcieProxyConfig. fixed_servers- W trybie
fixed_serverskonfiguracja serwera proxy jest skodyfikowana w obiekcieproxy.ProxyRules. Jego struktura została opisana w sekcji Reguły proxy. Poza tym w trybiefixed_serversobiektProxyConfignie może zawierać żadnych innych parametrów. system- W trybie
systemkonfiguracja serwera proxy jest pobierana z systemu operacyjnego. W tym trybie obiektProxyConfignie może zawierać żadnych dodatkowych parametrów. Pamiętaj, że trybsystemróżni się od braku konfiguracji serwera proxy. W tym drugim przypadku Chrome wraca do ustawień systemowych tylko wtedy, gdy na konfigurację serwera proxy nie mają wpływu żadne opcje wiersza poleceń.
Reguły serwera proxy
Obiekt proxy.ProxyRules może zawierać atrybut singleProxy lub podzbiór atrybutów proxyForHttp, proxyForHttps, proxyForFtp i fallbackProxy.
W pierwszym przypadku ruch HTTP, HTTPS i FTP jest przekierowywany przez określony serwer proxy. Inny ruch jest wysyłany bezpośrednio. W tym drugim przypadku zachowanie jest nieco bardziej subtelne: jeśli serwer proxy jest skonfigurowany dla protokołu HTTP, HTTPS lub FTP, odpowiedni ruch jest przekazywany przez określony serwer. Jeśli taki serwer proxy nie jest określony lub ruch korzysta z innego protokołu niż HTTP, HTTPS lub FTP, używany jest symbol fallbackProxy. Jeśli nie określono właściwości fallbackProxy, ruch jest wysyłany bezpośrednio bez serwera proxy.
Obiekty serwera proxy
Serwer proxy jest skonfigurowany w obiekcie proxy.ProxyServer. Połączenie z serwerem proxy (zdefiniowane przez atrybut host) używa protokołu zdefiniowanego w atrybucie scheme. Jeśli nie określono parametru scheme, połączenie proxy domyślnie przyjmuje wartość http.
Jeśli w obiekcie proxy.ProxyServer nie zdefiniowano parametru port, port jest wyodrębniany ze schematu.
Domyślne porty to:
| [język] Scheme | Port |
|---|---|
| http | 80 |
| https | 443 |
| socks4 | 1080 |
| socks5 | 1080 |
Lista pomijanych
Poszczególne serwery można wykluczyć z przekazywania przez serwer proxy za pomocą znaku bypassList. Ta lista może zawierać te wpisy:
[SCHEME://]HOST_PATTERN[:PORT]Dopasuj wszystkie nazwy hostów pasujące do wzorca
HOST_PATTERN. Początkowy znak"."jest interpretowany jako"*.".Przykłady:
"foobar.com", "*foobar.com", "*.foobar.com", "*foobar.com:99", "https://x.*.y.com:99".Wzór Dopasowania Nie pasuje ".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]Dopasowuje adresy URL, które są literałami adresów IP. Koncepcyjnie jest to podobne do pierwszego przypadku, ale z wyjątkami dotyczącymi kanonizacji literałów IP. Na przykład dopasowanie do „[0:0:0::1]” jest takie samo jak dopasowanie do „[::1]”, ponieważ kanonizacja adresów IPv6 jest wykonywana wewnętrznie.
Przykłady:
127.0.1,[0:0::1],[::1]:80,https://[::1]:443IP_LITERAL/PREFIX_LENGTH_IN_BITSDopasowanie do dowolnego adresu URL zawierającego literał IP (
IP_LITERAL) w podanym zakresie. Zakres adresów IP (PREFIX_LENGTH_IN_BITS) jest określany za pomocą notacji CIDR.Dopasowanie do dowolnego adresu URL zawierającego literał IP w podanym zakresie. Zakres adresów IP jest określony za pomocą notacji CIDR. Przykłady:
"192.168.1.1/16", "fefe:13::abc/33"<local>Ciąg znaków
<local>pasuje do prostych nazw hostów. Prosta nazwa hosta to nazwa, która nie zawiera kropek i nie jest literałem IP. Na przykładexampleilocalhostto proste nazwy hostów, aexample.com,example.i[::1]– nie.Przykład:
"<local>"
Przykłady
Poniższy kod ustawia serwer proxy SOCKS 5 dla połączeń HTTP ze wszystkimi serwerami z wyjątkiem foobar.com i używa bezpośrednich połączeń dla wszystkich innych protokołów. Ustawienia dotyczą okien zwykłych i incognito, ponieważ okna incognito dziedziczą ustawienia z okien zwykłych. Zapoznaj się też z dokumentacją interfejsu Types API.
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() {}
);
Poniższy kod ustawia niestandardowy skrypt PAC.
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() {}
);
Następny fragment kodu wysyła zapytanie o obecnie obowiązujące ustawienia serwera proxy. Obowiązujące ustawienia serwera proxy mogą być określone przez inne rozszerzenie lub zasadę. Szczegółowe informacje znajdziesz w dokumentacji interfejsu Types API.
chrome.proxy.settings.get(
{'incognito': false},
function(config) {
console.log(JSON.stringify(config));
}
);
Pamiętaj, że obiekt value przekazywany do set() nie jest identyczny z obiektem value przekazywanym do funkcji wywołania zwrotnego get(). Ten ostatni będzie zawierać element rules.proxyForHttp.port.
Typy
Mode
Typ wyliczeniowy
„direct”
"auto_detect"
"pac_script"
"fixed_servers"
„system”
PacScript
Obiekt zawierający informacje o automatycznej konfiguracji serwera proxy. Dokładnie jedno z tych pól powinno być niepuste.
Właściwości
-
dane
ciąg znaków opcjonalny
skrypt PAC;
-
obowiązkowe
wartość logiczna opcjonalna
Jeśli wartość to „true”, nieprawidłowy skrypt PAC uniemożliwi stosowi sieciowemu powrót do połączeń bezpośrednich. Wartość domyślna to fałsz.
-
URL
ciąg znaków opcjonalny
Adres URL pliku PAC, który ma być używany.
ProxyConfig
Obiekt zawierający pełną konfigurację serwera proxy.
Właściwości
-
tryb
„direct” = nigdy nie używaj serwera proxy „auto_detect” = automatyczne wykrywanie ustawień serwera proxy „pac_script” = używaj określonego skryptu PAC „fixed_servers” = ręczne określanie serwerów proxy „system” = używaj systemowych ustawień serwera proxy
-
pacScript
PacScript opcjonalny
Skrypt automatycznej konfiguracji serwera proxy (PAC) dla tej konfiguracji. Użyj tego trybu w przypadku trybu „pac_script”.
-
reguły
ProxyRules opcjonalne
Reguły serwera proxy opisujące tę konfigurację. Używaj tego w trybie „fixed_servers”.
ProxyRules
Obiekt zawierający zbiór reguł serwera proxy dla wszystkich protokołów. Użyj „singleProxy” lub (podzbioru) „proxyForHttp”, „proxyForHttps”, „proxyForFtp” i „fallbackProxy”.
Właściwości
-
bypassList
string[] opcjonalnie
Lista serwerów, z którymi można się połączyć bez serwera proxy.
-
fallbackProxy
ProxyServer opcjonalny
Serwer proxy, który ma być używany do wszystkich innych celów lub jeśli nie określono żadnego z serwerów proxyFor...
-
proxyForFtp
ProxyServer opcjonalny
Serwer proxy, który ma być używany w przypadku żądań FTP.
-
proxyForHttp
ProxyServer opcjonalny
Serwer proxy, który ma być używany w przypadku żądań HTTP.
-
proxyForHttps
ProxyServer opcjonalny
Serwer proxy, który ma być używany w przypadku żądań HTTPS.
-
singleProxy
ProxyServer opcjonalny
Serwer proxy, który ma być używany w przypadku wszystkich żądań dotyczących poszczególnych adresów URL (czyli http, https i ftp).
ProxyServer
Obiekt zawierający specyfikację pojedynczego serwera proxy.
Właściwości
-
host
tekst
Nazwa hosta lub adres IP serwera proxy. Nazwy hostów muszą być w formacie ASCII (w formacie Punycode). IDNA nie jest jeszcze obsługiwany.
-
port
number opcjonalny
Port serwera proxy. Domyślnie jest to port zależny od schematu.
-
schemat
Scheme opcjonalny
Schemat (protokół) samego serwera proxy. Domyślna wartość to „http”.
Scheme
Typ wyliczeniowy
"http"
"https"
„quic”
"socks4"
"socks5"
Właściwości
settings
Ustawienia serwera proxy, które mają być używane. Wartością tego ustawienia jest obiekt ProxyConfig.
Wydarzenia
onProxyError
chrome.proxy.onProxyError.addListener(
callback: function,
)
Powiadamia o błędach proxy.
Parametry
-
callback
funkcja
Parametr
callbackwygląda tak:(details: object) => void
-
szczegóły
obiekt
-
szczegóły
tekst
Dodatkowe informacje o błędzie, np. błąd środowiska wykonawczego JavaScript.
-
błąd
tekst
Opis błędu.
-
fatal
wartość logiczna
Jeśli wartość to „true”, błąd był krytyczny i transakcja sieciowa została przerwana. W przeciwnym razie używane jest połączenie bezpośrednie.
-
-