refresh date: 2026-09-25 robots: noindex
Beschreibung
Verwenden Sie die chrome.proxy API, um die Proxy-Einstellungen von Chrome zu verwalten. Diese API verwendet den ChromeSetting-Prototyp des Typs API, um die Proxykonfiguration abzurufen und festzulegen.
Berechtigungen
proxyManifest
Sie müssen die Berechtigung „proxy“ im Erweiterungsmanifest deklarieren, um die API für Proxy-Einstellungen zu verwenden. Beispiel:
{
"name": "My extension",
...
"permissions": [
"proxy"
],
...
}
Objekte und Eigenschaften
Proxy-Einstellungen werden in einem proxy.ProxyConfig-Objekt definiert. Je nach den Proxy-Einstellungen von Chrome können die Einstellungen proxy.ProxyRules oder eine proxy.PacScript enthalten.
Proxy-Modi
Das Attribut mode eines ProxyConfig-Objekts bestimmt das allgemeine Verhalten von Chrome in Bezug auf die Proxynutzung. Er kann die folgenden Werte annehmen:
direct- Im Modus
directwerden alle Verbindungen direkt erstellt, ohne dass ein Proxy beteiligt ist. In diesem Modus sind keine weiteren Parameter imProxyConfig-Objekt zulässig. auto_detect- Im Modus
auto_detectwird die Proxykonfiguration durch ein PAC-Skript bestimmt, das unter http://wpad/wpad.dat heruntergeladen werden kann. In diesem Modus sind keine weiteren Parameter imProxyConfig-Objekt zulässig. pac_script- Im Modus
pac_scriptwird die Proxy-Konfiguration durch ein PAC-Script bestimmt, das entweder von der im Objektproxy.PacScriptangegebenen URL abgerufen oder wörtlich aus dem im Objektproxy.PacScriptangegebenen Elementdataübernommen wird. Darüber hinaus sind in diesem Modus keine weiteren Parameter imProxyConfig-Objekt zulässig. fixed_servers- Im
fixed_servers-Modus wird die Proxykonfiguration in einemproxy.ProxyRules-Objekt codiert. Die Struktur wird unter Proxyregeln beschrieben. Darüber hinaus sind imfixed_servers-Modus keine weiteren Parameter imProxyConfig-Objekt zulässig. system- Im
system-Modus wird die Proxy-Konfiguration vom Betriebssystem übernommen. In diesem Modus sind keine weiteren Parameter imProxyConfig-Objekt zulässig. Beachten Sie, dass sich der Modussystemvon der Einstellung ohne Proxy-Konfiguration unterscheidet. Im letzteren Fall greift Chrome nur dann auf die Systemeinstellungen zurück, wenn keine Befehlszeilenoptionen die Proxy-Konfiguration beeinflussen.
Proxyregeln
Das Objekt proxy.ProxyRules kann entweder ein singleProxy-Attribut oder eine Teilmenge von proxyForHttp, proxyForHttps, proxyForFtp und fallbackProxy enthalten.
Im ersten Fall wird der HTTP-, HTTPS- und FTP-Traffic über den angegebenen Proxyserver geleitet. Anderer Traffic wird direkt gesendet. Im letzteren Fall ist das Verhalten etwas subtiler: Wenn ein Proxyserver für das HTTP-, HTTPS- oder FTP-Protokoll konfiguriert ist, wird der entsprechende Traffic über den angegebenen Server weitergeleitet. Wenn kein solcher Proxyserver angegeben ist oder der Traffic ein anderes Protokoll als HTTP, HTTPS oder FTP verwendet, wird die fallbackProxy verwendet. Wenn kein fallbackProxy angegeben ist, wird der Traffic direkt ohne Proxyserver gesendet.
Proxyserverobjekte
Ein Proxyserver wird in einem proxy.ProxyServer-Objekt konfiguriert. Für die Verbindung zum Proxyserver (definiert durch das Attribut host) wird das im Attribut scheme definierte Protokoll verwendet. Wenn kein scheme angegeben ist, wird standardmäßig http für die Proxy-Verbindung verwendet.
Wenn in einem proxy.ProxyServer-Objekt kein port definiert ist, wird der Port vom Schema abgeleitet.
Die Standardports sind:
| Schema | Port |
|---|---|
| http | 80 |
| https | 443 |
| socks4 | 1080 |
| socks5 | 1080 |
Umgehungsliste
Einzelne Server können mit bypassList vom Proxy ausgeschlossen werden. Diese Liste kann die folgenden Einträge enthalten:
[SCHEME://]HOST_PATTERN[:PORT]Alle Hostnamen abgleichen, die dem Muster
HOST_PATTERNentsprechen. Ein führendes"."wird als"*."interpretiert.Beispiele:
"foobar.com", "*foobar.com", "*.foobar.com", "*foobar.com:99", "https://x.*.y.com:99".Muster Übereinstimmungen Stimmt nicht überein ".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]URLs abgleichen, die IP-Adressliterale sind. Konzeptionell ähnelt dies dem ersten Fall, aber mit Sonderfällen für die Kanonisierung von IP-Literalen. Beispielsweise entspricht der Abgleich mit „[0:0:0::1]“ dem Abgleich mit „[::1]“, da die IPv6-Kanonisierung intern erfolgt.
Beispiele:
127.0.1,[0:0::1],[::1]:80,https://[::1]:443IP_LITERAL/PREFIX_LENGTH_IN_BITSÜbereinstimmung mit jeder URL, die ein IP-Literal (
IP_LITERAL) im angegebenen Bereich enthält. Der IP-Bereich (PREFIX_LENGTH_IN_BITS) wird in der CIDR-Notation angegeben.Entspricht jeder URL, die ein IP-Literal innerhalb des angegebenen Bereichs enthält. Der IP-Bereich wird in CIDR-Notation angegeben. Beispiele:
"192.168.1.1/16", "fefe:13::abc/33"<local>Der Literalstring
<local>stimmt mit einfachen Hostnamen überein. Ein einfacher Hostname enthält keine Punkte und ist kein IP-Literal. Beispielsweise sindexampleundlocalhosteinfache Hostnamen,example.com,example.und[::1]jedoch nicht.Beispiel:
"<local>"
Beispiele
Mit dem folgenden Code wird ein SOCKS 5-Proxy für HTTP-Verbindungen zu allen Servern außer foobar.com festgelegt und für alle anderen Protokolle werden direkte Verbindungen verwendet. Die Einstellungen gelten für normale und Inkognitofenster, da Inkognitofenster die Einstellungen von normalen Fenstern übernehmen. Weitere Informationen finden Sie in der Dokumentation zur 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() {}
);
Mit dem folgenden Code wird ein benutzerdefiniertes PAC-Skript festgelegt.
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() {}
);
Mit dem nächsten Snippet werden die aktuell gültigen Proxy-Einstellungen abgefragt. Die effektiven Proxy-Einstellungen können durch eine andere Erweiterung oder eine Richtlinie bestimmt werden. Weitere Informationen finden Sie in der Dokumentation zur Types API.
chrome.proxy.settings.get(
{'incognito': false},
function(config) {
console.log(JSON.stringify(config));
}
);
Das an set() übergebene value-Objekt ist nicht mit dem value-Objekt identisch, das an die Callback-Funktion von get() übergeben wird. Letzteres enthält ein rules.proxyForHttp.port-Element.
Typen
Mode
Enum
"direct"
"auto_detect"
"pac_script"
"fixed_servers"
"system"
PacScript
Ein Objekt mit Informationen zur automatischen Proxykonfiguration. Genau eines der Felder darf nicht leer sein.
Attribute
-
Daten
String optional
Ein PAC-Skript.
-
obligatorisch
Boolesch optional
Wenn die Richtlinie auf „true“ gesetzt ist, verhindert ein ungültiges PAC-Script, dass der Netzwerkstack auf direkte Verbindungen zurückgreift. Die Standardeinstellung ist "false".
-
URL
String optional
URL der zu verwendenden PAC-Datei.
ProxyConfig
Ein Objekt, das eine vollständige Proxy-Konfiguration kapselt.
Attribute
-
Modus
„direct“ = Nie Proxy verwenden „auto_detect“ = Proxy-Einstellungen automatisch erkennen „pac_script“ = Angegebenes PAC-Skript verwenden „fixed_servers“ = Proxyserver manuell angeben „system“ = Systemproxyeinstellungen verwenden
-
pacScript
PacScript optional
Das PAC-Script (Proxy Auto-Config) für diese Konfiguration. Verwenden Sie diese Option für den Modus „pac_script“.
-
Regeln
ProxyRules optional
Die Proxyregeln, die diese Konfiguration beschreiben. Verwenden Sie diese Option für den Modus „fixed_servers“.
ProxyRules
Ein Objekt, das die Proxyregeln für alle Protokolle enthält. Verwenden Sie entweder „singleProxy“ oder (eine Teilmenge von) „proxyForHttp“, „proxyForHttps“, „proxyForFtp“ und „fallbackProxy“.
Attribute
-
bypassList
string[] optional
Liste der Server, zu denen eine Verbindung ohne Proxyserver hergestellt werden soll.
-
fallbackProxy
ProxyServer optional
Der Proxyserver, der für alles andere verwendet werden soll, oder wenn einer der spezifischen proxyFor...-Werte nicht angegeben ist.
-
proxyForFtp
ProxyServer optional
Der Proxyserver, der für FTP-Anfragen verwendet werden soll.
-
proxyForHttp
ProxyServer optional
Der für HTTP-Anfragen zu verwendende Proxyserver.
-
proxyForHttps
ProxyServer optional
Der Proxyserver, der für HTTPS-Anfragen verwendet werden soll.
-
singleProxy
ProxyServer optional
Der Proxyserver, der für alle URL-Anfragen (http, https und ftp) verwendet werden soll.
ProxyServer
Ein Objekt, das die Spezifikation eines einzelnen Proxyservers enthält.
Attribute
-
Host
String
Der Hostname oder die IP-Adresse des Proxyservers. Hostnamen müssen im ASCII-Format (Punycode-Format) vorliegen. IDNA wird noch nicht unterstützt.
-
Port
number optional
Der Port des Proxyservers. Die Standardeinstellung ist ein Port, der vom Schema abhängt.
-
Schema
Schema optional
Das Schema (Protokoll) des Proxyservers selbst. Die Standardeinstellung ist „http“.
Scheme
Enum
"http"
"https"
"quic"
"socks4"
"socks5"
Attribute
settings
Zu verwendende Proxy-Einstellungen. Der Wert dieser Einstellung ist ein ProxyConfig-Objekt.
Ereignisse
onProxyError
chrome.proxy.onProxyError.addListener(
callback: function,
)
Benachrichtigt über Proxyfehler.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:(details: object) => void
-
Details
Objekt
-
Details
String
Zusätzliche Details zum Fehler, z. B. ein JavaScript-Laufzeitfehler.
-
Fehler
String
Die Fehlerbeschreibung.
-
fatal
boolean
Wenn „true“, war der Fehler schwerwiegend und die Netzwerktransaktion wurde abgebrochen. Andernfalls wird stattdessen eine direkte Verbindung verwendet.
-
-