refresh date: 2026-09-25 robots: noindex
Beschrijving
Gebruik de chrome.proxy API om de proxyinstellingen van Chrome te beheren. Deze API is afhankelijk van het ChromeSetting-prototype van het type API om de proxyconfiguratie op te halen en in te stellen.
Rechten
proxyManifest
Je moet het recht 'proxy' definiëren in het extensiemanifest om de API voor proxyinstellingen te gebruiken. Voorbeeld:
{
"name": "My extension",
...
"permissions": [
"proxy"
],
...
}
Objecten en eigenschappen
Proxyinstellingen worden gedefinieerd in een proxy.ProxyConfig-object. Afhankelijk van de proxyinstellingen van Chrome kunnen de instellingen proxy.ProxyRules of een proxy.PacScript bevatten.
Proxy-modi
Het kenmerk mode van een ProxyConfig-object bepaalt het algemene gedrag van Chrome met betrekking tot proxygebruik. Deze kan de volgende waarden hebben:
direct- In de modus
directworden alle verbindingen rechtstreeks gemaakt, zonder proxy. In deze modus zijn geen verdere parameters in hetProxyConfig-object toegestaan. auto_detect- In de modus
auto_detectwordt de proxyconfiguratie bepaald door een PAC-script dat kan worden gedownload via http://wpad/wpad.dat. In deze modus zijn geen verdere parameters toegestaan in het objectProxyConfig. pac_script- In de modus
pac_scriptwordt de proxyconfiguratie bepaald door een PAC-script dat wordt opgehaald uit de URL die is opgegeven in het objectproxy.PacScriptof letterlijk wordt overgenomen uit het elementdatadat is opgegeven in het objectproxy.PacScript. Daarnaast staat deze modus geen verdere parameters toe in hetProxyConfig-object. fixed_servers- In de modus
fixed_serverswordt de proxyconfiguratie gecodificeerd in eenproxy.ProxyRules-object. De structuur wordt beschreven in Proxyregels. Daarnaast staat de modusfixed_serversgeen verdere parameters toe in het objectProxyConfig. system- In de modus
systemwordt de proxyconfiguratie overgenomen van het besturingssysteem. In deze modus zijn geen verdere parameters in hetProxyConfig-object toegestaan. De modussystemis anders dan de instelling Geen proxyconfiguratie. In het laatste geval valt Chrome alleen terug op de systeeminstellingen als er geen opdrachtregelopties zijn die de proxyconfiguratie beïnvloeden.
Proxyregels
Het object proxy.ProxyRules kan een kenmerk singleProxy of een subset van proxyForHttp, proxyForHttps, proxyForFtp en fallbackProxy bevatten.
In het eerste geval wordt HTTP-, HTTPS- en FTP-verkeer via de opgegeven proxyserver geleid. Ander verkeer wordt rechtstreeks gestuurd. In het laatste geval is het gedrag iets subtieler: Als er een proxyserver is ingesteld voor het HTTP-, HTTPS- of FTP-protocol, wordt het betreffende verkeer via de aangegeven server geleid. Als er geen proxyserver is opgegeven of als het verkeer een ander protocol gebruikt dan HTTP, HTTPS of FTP, wordt de fallbackProxy gebruikt. Als er geen fallbackProxy is opgegeven, wordt verkeer rechtstreeks gestuurd zonder proxyserver.
Proxyserverobjecten
Er is een proxyserver ingesteld in een proxy.ProxyServer-object. De verbinding met de proxyserver (gedefinieerd door het kenmerk host) gebruikt het protocol dat is gedefinieerd in het kenmerk scheme. Als er geen scheme is opgegeven, is de proxyverbinding standaard http.
Als er geen port is gedefinieerd in een proxy.ProxyServer-object, wordt de poort afgeleid van het schema.
Dit zijn de standaardpoorten:
| Schema | Poort |
|---|---|
| http | 80 |
| https | 443 |
| socks4 | 1080 |
| socks5 | 1080 |
Lijst met uitzonderingen
Afzonderlijke servers kunnen worden uitgesloten van proxying met de bypassList. Deze lijst kan de volgende items bevatten:
[SCHEME://]HOST_PATTERN[:PORT]Komt overeen met alle hostnamen die overeenkomen met het patroon
HOST_PATTERN. Een voorloop-"."wordt geïnterpreteerd als een"*.".Voorbeelden:
"foobar.com", "*foobar.com", "*.foobar.com", "*foobar.com:99", "https://x.*.y.com:99".Patroon Combinaties Komt niet overeen ".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]Overeenkomen met URL's die letterlijke IP-adressen zijn. Conceptueel is dit vergelijkbaar met het eerste geval, maar met speciale gevallen om de canonisatie van IP-literals af te handelen. Een overeenkomst met [0:0:0::1] is bijvoorbeeld hetzelfde als een overeenkomst met [::1], omdat de IPv6-canonicalisatie intern wordt uitgevoerd.
Voorbeelden:
127.0.1,[0:0::1],[::1]:80,https://[::1]:443IP_LITERAL/PREFIX_LENGTH_IN_BITSKomt overeen met elke URL die een IP-letterlijke waarde (
IP_LITERAL) bevat binnen het aangegeven bereik. Het IP-bereik (PREFIX_LENGTH_IN_BITS) is ingevoerd met de CIDR-notatie.Komt overeen met elke URL die een IP-letterlijke waarde bevat binnen het aangegeven bereik. Het IP-bereik wordt aangegeven met de CIDR-notatie. Voorbeelden:
"192.168.1.1/16", "fefe:13::abc/33"<local>De letterlijke tekenreeks
<local>komt overeen met eenvoudige hostnamen. Een eenvoudige hostnaam is een hostnaam die geen punten bevat en geen IP-literal is.exampleenlocalhostzijn bijvoorbeeld eenvoudige hostnamen, maarexample.com,example.en[::1]zijn dat niet.Voorbeeld:
"<local>"
Voorbeelden
Met de volgende code wordt een SOCKS 5-proxy ingesteld voor HTTP-verbindingen met alle servers behalve foobar.com en worden directe verbindingen gebruikt voor alle andere protocollen. De instellingen zijn van toepassing op normale en incognitovensters, omdat incognitovensters instellingen overnemen van normale vensters. Neem ook de documentatie van de Types API door.
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() {}
);
Met de volgende code wordt een aangepast PAC-script ingesteld.
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() {}
);
Het volgende fragment vraagt de huidige effectieve proxyinstellingen op. De effectieve proxyinstellingen kunnen worden bepaald door een andere extensie of door een beleidsregel. Ga naar de documentatie van de Types API voor meer informatie.
chrome.proxy.settings.get(
{'incognito': false},
function(config) {
console.log(JSON.stringify(config));
}
);
Het value-object dat wordt doorgegeven aan set() is niet identiek aan het value-object dat wordt doorgegeven aan de callbackfunctie van get(). De laatste bevat een rules.proxyForHttp.port-element.
Typen
Mode
Enum
"direct"
"auto_detect"
"pac_script"
"fixed_servers"
"system"
PacScript
Een object met informatie over automatische proxyconfiguratie. Precies één van de velden mag niet leeg zijn.
Eigenschappen
-
gegevens
tekenreeks optioneel
Een PAC-script.
-
verplicht
booleaans optioneel
Als dit beleid is ingesteld op True, voorkomt een ongeldig PAC-script dat de netwerkstack terugvalt op rechtstreekse verbindingen. De standaard is onwaar.
-
url
tekenreeks optioneel
URL van het PAC-bestand dat moet worden gebruikt.
ProxyConfig
Een object dat een volledige proxyconfiguratie bevat.
Eigenschappen
-
modus
'direct' = Nooit een proxy gebruiken 'auto_detect' = Proxyinstellingen automatisch detecteren 'pac_script' = Opgegeven PAC-script gebruiken 'fixed_servers' = Proxyservers handmatig opgeven 'system' = Systeeminstellingen voor proxy gebruiken
-
pacScript
PacScript optioneel
Het PAC-script (Proxy Auto-Config) voor deze configuratie. Gebruik dit voor de modus pac_script.
-
regels
ProxyRules optioneel
De proxyregels die deze configuratie beschrijven. Gebruik dit voor de modus fixed_servers.
ProxyRules
Een object dat de set proxyregels voor alle protocollen bevat. Gebruik 'singleProxy' of (een subset van) 'proxyForHttp', 'proxyForHttps', 'proxyForFtp' en 'fallbackProxy'.
Eigenschappen
-
bypassList
string[] optioneel
Lijst met servers waarmee verbinding moet worden gemaakt zonder proxyserver.
-
fallbackProxy
ProxyServer optioneel
De proxyserver die voor alles moet worden gebruikt of als een van de specifieke proxyFor... niet is opgegeven.
-
proxyForFtp
ProxyServer optioneel
De proxyserver die moet worden gebruikt voor FTP-verzoeken.
-
proxyForHttp
ProxyServer optioneel
De proxyserver die moet worden gebruikt voor HTTP-verzoeken.
-
proxyForHttps
ProxyServer optioneel
De proxyserver die moet worden gebruikt voor HTTPS-verzoeken.
-
singleProxy
ProxyServer optioneel
De proxyserver die moet worden gebruikt voor alle verzoeken per URL (dat wil zeggen http, https en ftp).
ProxyServer
Een object dat de specificatie van één proxyserver inkapselt.
Eigenschappen
-
host
tekenreeks
De hostnaam of het IP-adres van de proxyserver. Hostnamen moeten in ASCII zijn (in Punycode-indeling). IDNA wordt nog niet ondersteund.
-
poort
number optioneel
De poort van de proxyserver. Standaard is dit een poort die afhankelijk is van het schema.
-
schema
Scheme optioneel
Het schema (protocol) van de proxyserver zelf. De standaardwaarde is 'http'.
Scheme
Enum
"http"
"https"
"quic"
"socks4"
"socks5"
Eigenschappen
settings
De proxyinstellingen die moeten worden gebruikt. De waarde van deze instelling is een ProxyConfig-object.
Evenementen
onProxyError
chrome.proxy.onProxyError.addListener(
callback: function,
)
Stuurt meldingen over proxyfouten.
Parameters
-
callback
functie
De parameter
callbackziet er zo uit:(details: object) => void
-
details
object
-
details
tekenreeks
Aanvullende informatie over de fout, zoals een JavaScript-runtimefout.
-
fout
tekenreeks
De foutbeschrijving.
-
fatal
booleaans
Als dit waar is, was de fout fataal en is de netwerktransactie afgebroken. Anders wordt er een rechtstreekse verbinding gebruikt.
-
-