Aktualisierungsdatum: 2026-09-25 robots: noindex
Beschreibung
Verwenden Sie die chrome.vpnProvider API, um einen VPN-Client zu implementieren.
Berechtigungen
vpnProviderVerfügbarkeit
Nutzung
Die typische Verwendung von vpnProvider sieht so aus:
Erstellen Sie VPN-Konfigurationen mit der Methode
createConfig. Eine VPN-Konfiguration ist ein dauerhafter Eintrag, der dem Nutzer in einer nativen ChromeOS-Benutzeroberfläche angezeigt wird. Der Nutzer kann eine VPN-Konfiguration aus einer Liste auswählen und eine Verbindung herstellen oder trennen.Fügen Sie Listener für die Ereignisse
onPlatformMessage,onPacketReceivedundonConfigRemovedhinzu.Wenn sich der Nutzer mit der VPN-Konfiguration verbindet, wird
onPlatformMessagemit der Meldung"connected"empfangen. Der Zeitraum zwischen den Nachrichten"connected"und"disconnected"wird als VPN-Sitzung bezeichnet. In diesem Zeitraum gehört die VPN-Sitzung der Erweiterung, die die Nachricht empfängt.Stellen Sie eine Verbindung zum VPN-Server her und starten Sie den VPN-Client.
Legen Sie die Parameter der Verbindung mit
setParametersfest.Benachrichtigen Sie den Verbindungsstatus als
"connected"mitnotifyConnectionStateChanged.Wenn die oben genannten Schritte ohne Fehler ausgeführt werden, wird ein virtueller Tunnel zum Netzwerk-Stack von ChromeOS erstellt. IP-Pakete können über den Tunnel mit
sendPacketgesendet werden. Alle Pakete, die vom ChromeOS-Gerät stammen, werden über das EreignisonPacketReceivedempfangen.Wenn die Verbindung des Nutzers zur VPN-Konfiguration getrennt wird, wird
onPlatformMessagemit der Meldung"disconnected"ausgelöst.Wenn die VPN-Konfiguration nicht mehr benötigt wird, kann sie mit
destroyConfiggelöscht werden.
Typen
Parameters
Attribute
-
Adresse
String
IP-Adresse für die VPN-Schnittstelle in CIDR-Notation. Derzeit wird nur IPv4 unterstützt.
-
broadcastAddress
String optional
Broadcast-Adresse für die VPN-Schnittstelle. (Standard: wird aus IP-Adresse und Maske abgeleitet)
-
dnsServers
String[]
Eine Liste der IP-Adressen für die DNS-Server.
-
domainSearch
string[] optional
Eine Liste mit Suchdomains. (Standardwert: keine Suchdomain)
-
exclusionList
String[]
Schließen Sie Netzwerkverkehr zu der Liste von IP-Blöcken in CIDR-Notation aus dem Tunnel aus. So kann der Traffic zum und vom VPN-Server umgangen werden. Wenn viele Regeln mit einem Ziel übereinstimmen, gewinnt die Regel mit dem längsten übereinstimmenden Präfix. Einträge, die demselben CIDR-Block entsprechen, werden als Duplikate behandelt. Solche Duplikate in der zusammengeführten Liste (exclusionList + inclusionList) werden entfernt. Es ist nicht definiert, welcher der doppelten Einträge entfernt wird.
-
inclusionList
String[]
Nehmen Sie Netzwerkverkehr in die Liste der IP-Blöcke in CIDR-Notation für den Tunnel auf. Mit diesem Parameter kann ein Split-Tunnel eingerichtet werden. Standardmäßig wird kein Traffic an den Tunnel weitergeleitet. Wenn Sie den Eintrag „0.0.0.0/0“ in diese Liste einfügen, wird der gesamte Nutzer-Traffic zum Tunnel umgeleitet. Wenn viele Regeln mit einem Ziel übereinstimmen, gewinnt die Regel mit dem längsten übereinstimmenden Präfix. Einträge, die demselben CIDR-Block entsprechen, werden als Duplikate behandelt. Solche Duplikate in der zusammengeführten Liste (exclusionList + inclusionList) werden entfernt. Es ist nicht definiert, welcher der doppelten Einträge entfernt wird.
-
mtu
String optional
MTU-Einstellung für die VPN-Schnittstelle. (Standard: 1.500 Byte)
-
wieder verbinden
String optional
Chrome 51 und höherGibt an, ob die VPN-Erweiterung die automatische Wiederverbindung implementiert.
Wenn „true“ festgelegt ist, werden die Plattformnachrichten
linkDown,linkUp,linkChanged,suspendundresumeverwendet, um die entsprechenden Ereignisse zu signalisieren. Wenn „false“ festgelegt ist, wird die VPN-Verbindung vom System getrennt, wenn sich die Netzwerktopologie ändert. Der Nutzer muss die Verbindung dann manuell wiederherstellen. (Standardeinstellung: false)Diese Eigenschaft ist neu in Chrome 51. In früheren Versionen wird eine Ausnahme generiert. Mit try/catch kann die Funktion basierend auf der Browserunterstützung bedingt aktiviert werden.
PlatformMessage
Die Enumeration wird von der Plattform verwendet, um den Client über den Status der VPN-Sitzung zu informieren.
Enum
„Verbunden“
Gibt an, dass die VPN-Konfiguration verbunden ist.
„disconnected“
Gibt an, dass die VPN-Konfiguration getrennt wurde.
„error“
Gibt an, dass bei der VPN-Verbindung ein Fehler aufgetreten ist, z. B. ein Zeitüberschreitungsfehler. Eine Beschreibung des Fehlers wird als Fehlerargument an onPlatformMessage übergeben.
„linkDown“
Gibt an, dass die physische Standardnetzwerkverbindung nicht aktiv ist.
„linkUp“
Gibt an, dass die physische Standardnetzwerkverbindung wieder aktiv ist.
„linkChanged“
Gibt an, dass sich die standardmäßige physische Netzwerkverbindung geändert hat, z.B. von WLAN zu Mobilfunk.
„suspend“
Gibt an, dass das Betriebssystem sich auf das Anhalten vorbereitet. Das VPN sollte also die Verbindung trennen. Es ist nicht garantiert, dass die Erweiterung dieses Ereignis vor der Sperrung erhält.
„resume“
Gibt an, dass das Betriebssystem fortgesetzt wurde und der Nutzer sich wieder angemeldet hat. Das VPN sollte also versuchen, die Verbindung wiederherzustellen.
UIEvent
Die Enumeration wird von der Plattform verwendet, um das Ereignis anzugeben, das onUIEvent ausgelöst hat.
Enum
„showAddDialog“
Fordert den VPN-Client auf, dem Nutzer das Dialogfeld zum Hinzufügen der Konfiguration anzuzeigen.
showConfigureDialog
Fordert den VPN-Client auf, dem Nutzer das Dialogfeld mit den Konfigurationseinstellungen anzuzeigen.
VpnConnectionState
Die Enumeration wird vom VPN-Client verwendet, um die Plattform über den aktuellen Status zu informieren. So können dem Nutzer aussagekräftige Nachrichten präsentiert werden.
Enum
„connected“
Gibt an, dass die VPN-Verbindung erfolgreich war.
„failure“
Gibt an, dass die VPN-Verbindung fehlgeschlagen ist.
Methoden
createConfig()
chrome.vpnProvider.createConfig(
name: string,
callback?: function,
): Promise<string>
Erstellt eine neue VPN-Konfiguration, die über mehrere Anmeldesitzungen des Nutzers hinweg bestehen bleibt.
Parameter
-
name
String
Der Name der VPN-Konfiguration.
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:(id: string) => void
-
id
String
Eine eindeutige ID für die erstellte Konfiguration oder
undefinedbei einem Fehler.
-
Ausgabe
-
Promise<string>
Chrome 96 und höherGibt ein Promise zurück, das aufgelöst wird, wenn die Konfiguration erstellt wird, oder abgelehnt wird, wenn ein Fehler auftritt.
Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
destroyConfig()
chrome.vpnProvider.destroyConfig(
id: string,
callback?: function,
): Promise<void>
Löscht eine von der Erweiterung erstellte VPN-Konfiguration.
Parameter
-
id
String
ID der VPN-Konfiguration, die gelöscht werden soll.
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:() => void
Ausgabe
-
Promise<void>
Chrome 96 und höherGibt ein Promise zurück, das aufgelöst wird, wenn die Konfiguration zerstört wird, oder abgelehnt wird, wenn ein Fehler auftritt.
Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
notifyConnectionStateChanged()
chrome.vpnProvider.notifyConnectionStateChanged(
state: VpnConnectionState,
callback?: function,
): Promise<void>
Benachrichtigt die Plattform über den VPN-Sitzungsstatus. Dies ist nur möglich, wenn die VPN-Sitzung der Erweiterung gehört.
Parameter
-
Bundesstaat
Der VPN-Sitzungsstatus des VPN-Clients.
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:() => void
Ausgabe
-
Promise<void>
Chrome 96 und höherGibt ein Promise zurück, das aufgelöst wird, wenn die Benachrichtigung abgeschlossen ist, oder abgelehnt wird, wenn ein Fehler auftritt.
Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
sendPacket()
chrome.vpnProvider.sendPacket(
data: ArrayBuffer,
callback?: function,
): Promise<void>
Sendet ein IP-Paket über den für die VPN-Sitzung erstellten Tunnel. Dies ist nur möglich, wenn die VPN-Sitzung der Erweiterung gehört.
Parameter
-
Daten
ArrayBuffer
Das IP-Paket, das an die Plattform gesendet werden soll.
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:() => void
Ausgabe
-
Promise<void>
Chrome 96 und höherGibt ein Promise zurück, das aufgelöst wird, wenn das Paket gesendet wird, oder abgelehnt wird, wenn ein Fehler auftritt.
Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
setParameters()
chrome.vpnProvider.setParameters(
parameters: Parameters,
callback?: function,
): Promise<void>
Legt die Parameter für die VPN-Sitzung fest. Diese Funktion sollte unmittelbar nach dem Empfang von "connected" von der Plattform aufgerufen werden. Dies ist nur möglich, wenn die VPN-Sitzung der Erweiterung gehört.
Parameter
-
Parameter
Die Parameter für die VPN-Sitzung.
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:() => void
Ausgabe
-
Promise<void>
Chrome 96 und höherGibt ein Promise zurück, das aufgelöst wird, wenn die Parameter festgelegt sind, oder abgelehnt wird, wenn ein Fehler auftritt.
Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
Ereignisse
onConfigCreated
chrome.vpnProvider.onConfigCreated.addListener(
callback: function,
)
Wird ausgelöst, wenn eine Konfiguration von der Plattform für die Erweiterung erstellt wird.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:(id: string, name: string, data: object) => void
-
id
String
-
name
String
-
Daten
Objekt
-
onConfigRemoved
chrome.vpnProvider.onConfigRemoved.addListener(
callback: function,
)
Wird ausgelöst, wenn eine von der Erweiterung erstellte Konfiguration von der Plattform entfernt wird.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:(id: string) => void
-
id
String
-
onPacketReceived
chrome.vpnProvider.onPacketReceived.addListener(
callback: function,
)
Wird ausgelöst, wenn ein IP-Paket über den Tunnel für die VPN-Sitzung empfangen wird, die der Erweiterung gehört.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:(data: ArrayBuffer) => void
-
Daten
ArrayBuffer
-
onPlatformMessage
chrome.vpnProvider.onPlatformMessage.addListener(
callback: function,
)
Wird ausgelöst, wenn eine Nachricht von der Plattform für eine VPN-Konfiguration empfangen wird, die der Erweiterung gehört.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:(id: string, message: PlatformMessage, error: string) => void
-
id
String
-
Nachricht
-
Fehler
String
-
onUIEvent
chrome.vpnProvider.onUIEvent.addListener(
callback: function,
)
Wird ausgelöst, wenn ein UI-Ereignis für die Erweiterung vorhanden ist. UI-Ereignisse sind Signale von der Plattform, die der App signalisieren, dass dem Nutzer ein UI-Dialog angezeigt werden muss.