chrome.proxy

refresh date: 2026-09-25 robots: noindex

Opis

Użyj interfejsu API chrome.proxy, aby zarządzać ustawieniami serwera proxy w Chrome. Ten interfejs API korzysta z prototypu ChromeSetting interfejsu API typu do pobierania i ustawiania konfiguracji serwera proxy.

Uprawnienia

proxy

Plik 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 mogą one 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 direct wszystkie połączenia są tworzone bezpośrednio, bez użycia serwera proxy. W tym trybie nie można używać żadnych dodatkowych parametrów w obiekcie ProxyConfig.
auto_detect
W trybie auto_detect konfiguracja serwera proxy jest określana przez skrypt PAC, który można pobrać ze strony http://wpad/wpad.dat. Ten tryb nie zezwala na żadne dodatkowe parametry w obiekcie ProxyConfig.
pac_script
W trybie pac_script konfiguracja serwera proxy jest określana przez skrypt PAC, który jest pobierany z adresu URL określonego w obiekcie proxy.PacScript lub pobierany dosłownie z elementu data określonego w obiekcie proxy.PacScript. Poza tym ten tryb nie zezwala na żadne dodatkowe parametry w obiekcie ProxyConfig.
fixed_servers
W trybie fixed_servers konfiguracja serwera proxy jest skodyfikowana w obiekcie proxy.ProxyRules. Jego struktura jest opisana w sekcji Reguły serwera proxy. Poza tym tryb fixed_servers nie zezwala na żadne inne parametry w obiekcie ProxyConfig.
system
W trybie system konfiguracja serwera proxy jest pobierana z systemu operacyjnego. Ten tryb nie zezwala na żadne dodatkowe parametry w obiekcie ProxyConfig. Pamiętaj, że tryb system różni się od braku konfiguracji serwera proxy. W tym drugim przypadku Chrome wraca do ustawień systemowych tylko wtedy, gdy żadne opcje wiersza poleceń nie wpływają na konfigurację serwera proxy.

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 przekazywany 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 nie określono takiego serwera proxy lub ruch korzysta z innego protokołu niż HTTP, HTTPS lub FTP, używany jest 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 właściwości scheme, połączenie proxy domyślnie używa właściwości http.

Jeśli w obiekcie proxy.ProxyServer nie zdefiniowano właściwości port, port jest określany na podstawie schematu. Domyślne porty:

[język] SchemePort
http80
https443
socks41080
socks51080

Lista omijających paywalla

Poszczególne serwery można wykluczyć z obsługi przez serwer proxy za pomocą bypassList. Ta lista może zawierać te wpisy:

[SCHEME://]HOST_PATTERN[:PORT]

Dopasuj wszystkie nazwy hostów, które pasują 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órDopasowaniaNie 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]

Dopasowywanie adresów URL, które są literałami adresów IP. Koncepcyjnie jest to podobne do pierwszego przypadku, ale z przypadkami specjalnymi do obsługi kanonizacji literału IP. Na przykład dopasowanie do „[0:0:0::1]” jest takie samo jak dopasowanie do „[::1]”, ponieważ kanonizacja IPv6 jest wykonywana wewnętrznie.

Przykłady: 127.0.1, [0:0::1], [::1]:80, https://[::1]:443

IP_LITERAL/PREFIX_LENGTH_IN_BITS

Dopasowanie do dowolnego adresu URL zawierającego literał IP (IP_LITERAL) w podanym zakresie. Zakres adresów IP (PREFIX_LENGTH_IN_BITS) jest określony za pomocą notacji CIDR.

Dopasowanie do dowolnego adresu URL zawierającego literał IP w podanym zakresie. Zakres adresów IP jest określany 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 nie zawiera kropek i nie jest adresem IP. Na przykład example i localhost to proste nazwy hostów, a example.com, example. i [::1] nie są prostymi nazwami hostów.

Przykład: "<local>"

Przykłady

Poniższy kod ustawia serwer proxy SOCKS 5 dla połączeń HTTP ze wszystkimi serwerami oprócz foobar.com i używa połączeń bezpośrednich dla wszystkich innych protokołów. Ustawienia dotyczą okien zwykłych i incognito, ponieważ okna incognito dziedziczą ustawienia ze zwykłych okien. Zapoznaj się też z dokumentacją 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 aktualnie obowiązujące ustawienia serwera proxy. Ustawienia serwera proxy mogą być określane 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 przekazany do set() nie jest identyczny z obiektem value przekazanym do wywołania zwrotnego get(). Ten ostatni będzie zawierać element rules.proxyForHttp.port.

Typy

Mode

Chrome 54 lub nowsza wersja

Typ wyliczeniowy

"direct"

"auto_detect"

"pac_script"

"fixed_servers"

"system"

PacScript

Obiekt zawierający informacje o automatycznej konfiguracji serwera proxy. Dokładnie jedno z pól nie może być puste.

Właściwości

  • dane

    ciąg znaków opcjonalny

    Skrypt PAC.

  • obowiązkowe

    boolean opcjonalne

    Jeśli zasada ma wartość Prawda, 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' = Automatycznie wykrywaj ustawienia serwera proxy 'pac_script' = Używaj określonego skryptu PAC 'fixed_servers' = Ręcznie określ serwery proxy 'system' = Używaj systemowych ustawień serwera proxy

  • pacScript

    PacScript opcjonalny

    Skrypt automatycznej konfiguracji serwera proxy (PAC) dla tej konfiguracji. Użyj tego w trybie „pac_script”.

  • reguły

    ProxyRules opcjonalne

    Reguły serwera proxy opisujące tę konfigurację. Użyj tego w trybie „fixed_servers”.

ProxyRules

Obiekt zawierający zestaw reguł serwera proxy dla wszystkich protokołów. Użyj „singleProxy” lub (podzbioru) „proxyForHttp”, „proxyForHttps”, „proxyForFtp” i „fallbackProxy”.

Właściwości

  • bypassList

    string[] opcjonalne

    Lista serwerów, z którymi można się łączyć bez serwera proxy.

  • fallbackProxy

    ProxyServer opcjonalny

    Serwer proxy, który ma być używany we wszystkich innych przypadkach lub gdy nie określono żadnego z konkretnych serwerów proxyFor...

  • proxyForFtp

    ProxyServer opcjonalny

    Serwer proxy, który ma być używany do obsługi żądań FTP.

  • proxyForHttp

    ProxyServer opcjonalny

    Serwer proxy, który ma być używany do żądań HTTP.

  • proxyForHttps

    ProxyServer opcjonalny

    Serwer proxy, który ma być używany do żądań HTTPS.

  • singleProxy

    ProxyServer opcjonalny

    Serwer proxy, który ma być używany we wszystkich żądaniach dotyczących 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ć zapisane w formacie ASCII (w formacie Punycode). IDNA nie jest jeszcze obsługiwany.

  • port

    number optional

    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

Chrome 54 lub nowsza wersja

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 callback wygląda tak:

    (details: object) => void

    • szczegóły

      obiekt

      • szczegóły

        tekst

        Dodatkowe informacje o błędzie, np. błąd środowiska wykonawczego JavaScriptu.

      • błąd

        tekst

        Opis błędu.

      • fatal

        wartość logiczna

        Jeśli ma wartość „prawda”, błąd był krytyczny i transakcja sieciowa została przerwana. W przeciwnym razie używane jest połączenie bezpośrednie.