refresh date: 2026-09-25 robots: noindex
Описание
Используйте API chrome.vpnProvider, чтобы реализовать VPN-клиент.
Разрешения
vpnProviderДоступность
Использование
Обычно vpnProvider используется следующим образом:
Создайте конфигурации VPN с помощью метода
createConfig. Конфигурация VPN – это постоянная запись, которая показывается пользователю в интерфейсе ChromeOS. Пользователь может выбрать конфигурацию VPN из списка и подключиться к ней или отключиться от нее.Добавьте прослушиватели для событий
onPlatformMessage,onPacketReceivedиonConfigRemoved.Когда пользователь подключается к конфигурации VPN,
onPlatformMessageбудет получен с сообщением"connected". Период между сообщениями"connected"и"disconnected"называется сеансом VPN. В течение этого периода расширение, которое получает сообщение, считается владельцем сеанса VPN.Установите подключение к VPN-серверу и запустите клиент VPN.
Задайте параметры подключения с помощью
setParameters.Уведомлять о статусе подключения
"connected"с помощьюnotifyConnectionStateChanged.Если все шаги выполнены без ошибок, создается виртуальный туннель к сетевому стеку ChromeOS. IP-пакеты можно отправлять через туннель с помощью
sendPacket, а любые пакеты, исходящие от устройства с ChromeOS, будут приниматься с помощью событияonPacketReceived.Когда пользователь отключается от VPN, запускается
onPlatformMessageс сообщением"disconnected".Если конфигурация VPN больше не нужна, ее можно удалить с помощью метода
destroyConfig.
Типы
Parameters
Свойства
-
Обращаться (к определенному вопросу)
string
IP-адрес интерфейса VPN в нотации CIDR. В настоящее время поддерживается только режим IPv4.
-
broadcastAddress
строка необязательно
Широковещательный адрес для интерфейса VPN. (по умолчанию определяется по IP-адресу и маске)
-
dnsServers
string[]
Список IP-адресов DNS-серверов.
-
domainSearch
string[] необязательно
Список доменов поиска. (по умолчанию домен для поиска не задан);
-
exclusionList
string[]
Исключить сетевой трафик для списка блоков IP-адресов в формате CIDR из туннеля. Это можно использовать для обхода трафика, идущего к VPN-серверу и от него. Если целевому адресу соответствует несколько правил, применяется правило с самым длинным подходящим префиксом. Записи, соответствующие одному и тому же блоку CIDR, считаются дубликатами. Такие дубликаты в объединенном списке (exclusionList + inclusionList) удаляются, и точная запись дубликата, которая будет удалена, не определена.
-
inclusionList
string[]
Включите сетевой трафик в список блоков IP-адресов в формате CIDR для туннеля. Этот параметр можно использовать для настройки раздельного туннелирования. По умолчанию трафик не направляется в туннель. Если добавить в этот список запись "0.0.0.0/0", весь пользовательский трафик будет перенаправляться в туннель. Если пункту назначения соответствует несколько правил, применяется правило с самым длинным совпадающим префиксом. Записи, соответствующие одному и тому же блоку CIDR, считаются дубликатами. Такие дубликаты в объединенном списке (exclusionList + inclusionList) удаляются, и точная запись дубликата, которая будет удалена, не определена.
-
mtu
Строка (необязательно)
Настройка MTU для интерфейса VPN. (по умолчанию: 1500 байт)
-
reconnect
строка необязательно
Chrome 51 и более поздние версииРеализует ли расширение VPN автоматическое повторное подключение.
Если задано значение true, то для передачи сигналов о соответствующих событиях будут использоваться сообщения платформы
linkDown,linkUp,linkChanged,suspendиresume. Если задано значение False, система принудительно отключит VPN при изменении топологии сети, и пользователю потребуется подключиться вручную. (по умолчанию: false)Это свойство появилось в Chrome 51. В более ранних версиях оно вызовет исключение. Чтобы условно включить функцию в зависимости от поддержки браузера, можно использовать try/catch.
PlatformMessage
Перечисление используется платформой для уведомления клиента о статусе сеанса VPN.
Перечисление
Подключено
Указывает, что конфигурация VPN подключена.
"disconnected"
Указывает, что конфигурация VPN отключена.
"error"
Указывает, что при VPN-подключении произошла ошибка, например истекло время ожидания. Описание ошибки передается в качестве аргумента error функции onPlatformMessage.
linkDown
Указывает, что физическое сетевое подключение по умолчанию не работает.
linkUp
Указывает, что физическое сетевое подключение по умолчанию восстановлено.
"linkChanged"
Указывает, что физическое сетевое подключение по умолчанию изменилось, например с Wi-Fi на мобильную сеть.
"suspend"
Указывает, что ОС готовится к приостановке, поэтому VPN-подключение должно быть разорвано. Расширение может не получить это событие до приостановки.
"resume"
Указывает, что ОС возобновила работу и пользователь снова вошел в систему, поэтому VPN-клиент должен попытаться повторно подключиться.
UIEvent
Перечисление используется платформой, чтобы указать событие, которое активировало onUIEvent.
Перечисление
"showAddDialog"
Запрашивает у клиента VPN показ диалогового окна добавления конфигурации.
"showConfigureDialog"
Запрашивает у VPN-клиента показ диалогового окна с настройками конфигурации.
VpnConnectionState
Перечисление используется VPN-клиентом, чтобы сообщить платформе о своем текущем состоянии. Это помогает предоставлять пользователю значимые сообщения.
Перечисление
connected
Указывает, что VPN-подключение установлено.
"failure"
Указывает, что VPN-подключение не удалось установить.
Методы
createConfig()
chrome.vpnProvider.createConfig(
name: string,
callback?: function,
): Promise<string>
Создает новую конфигурацию VPN, которая сохраняется в течение нескольких сеансов входа пользователя.
Параметры
-
name
string
Название конфигурации VPN.
-
обратный вызов
function необязательно
Параметр
callbackвыглядит следующим образом:(id: string) => void
-
id
string
Уникальный идентификатор созданной конфигурации или
undefinedв случае ошибки.
-
Возвраты
-
Promise<string>
Chrome 96 и более поздних версий.Возвращает объект Promise, который распознается, когда конфигурация создана, или отклоняется, если произошла ошибка.
Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.
destroyConfig()
chrome.vpnProvider.destroyConfig(
id: string,
callback?: function,
): Promise<void>
Удаляет конфигурацию VPN, созданную расширением.
Параметры
-
id
string
Идентификатор конфигурации VPN, которую нужно удалить.
-
обратный вызов
function необязательно
Параметр
callbackвыглядит следующим образом:() => void
Возвраты
-
Promise<void>
Chrome 96 и более поздних версий.Возвращает объект Promise, который распознается, когда конфигурация уничтожается, или отклоняется, если возникает ошибка.
Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.
notifyConnectionStateChanged()
chrome.vpnProvider.notifyConnectionStateChanged(
state: VpnConnectionState,
callback?: function,
): Promise<void>
Уведомляет платформу о состоянии сеанса VPN. Это возможно, только если сеанс VPN принадлежит расширению.
Параметры
-
штат
Статус сеанса VPN-клиента.
-
обратный вызов
function необязательно
Параметр
callbackвыглядит следующим образом:() => void
Возвраты
-
Promise<void>
Chrome 96 и более поздних версий.Возвращает объект Promise, который распознается, когда уведомление будет отправлено, или отклоняется в случае ошибки.
Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.
sendPacket()
chrome.vpnProvider.sendPacket(
data: ArrayBuffer,
callback?: function,
): Promise<void>
Отправляет пакет IP через туннель, созданный для сеанса VPN. Это возможно, только если сеанс VPN принадлежит расширению.
Параметры
-
делал.
ArrayBuffer
IP-пакет, который будет отправлен на платформу.
-
обратный вызов
function необязательно
Параметр
callbackвыглядит следующим образом:() => void
Возвраты
-
Promise<void>
Chrome 96 и более поздние версииВозвращает объект Promise, который распознается, когда пакет отправлен, или отклоняется, если произошла ошибка.
Обещания поддерживаются только в Manifest V3 и более поздних версиях. На других платформах необходимо использовать обратные вызовы.
setParameters()
chrome.vpnProvider.setParameters(
parameters: Parameters,
callback?: function,
): Promise<void>
Задает параметры для сеанса VPN. Этот метод должен вызываться сразу после получения "connected" от платформы. Это можно сделать, только если сеанс VPN принадлежит расширению.
Параметры
-
Параметры
Параметры сеанса VPN.
-
обратный вызов
function необязательно
Параметр
callbackвыглядит следующим образом:() => void
Возвраты
-
Promise<void>
Chrome 96 и более поздние версииВозвращает объект Promise, который распознается, когда заданы параметры, и отклоняется в случае ошибки.
Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.
События
onConfigCreated
chrome.vpnProvider.onConfigCreated.addListener(
callback: function,
)
Срабатывает, когда платформа создает конфигурацию для расширения.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(id: string, name: string, data: object) => void
-
id
string
-
name
string
-
делал.
Объект
-
onConfigRemoved
chrome.vpnProvider.onConfigRemoved.addListener(
callback: function,
)
Срабатывает, когда платформа удаляет конфигурацию, созданную расширением.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(id: string) => void
-
id
string
-
onPacketReceived
chrome.vpnProvider.onPacketReceived.addListener(
callback: function,
)
Срабатывает, когда через туннель для сеанса VPN, принадлежащего расширению, получен IP-пакет.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(data: ArrayBuffer) => void
-
делал.
ArrayBuffer
-
onPlatformMessage
chrome.vpnProvider.onPlatformMessage.addListener(
callback: function,
)
Активируется, когда от платформы поступает сообщение для конфигурации VPN, принадлежащей расширению.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(id: string, message: PlatformMessage, error: string) => void
-
id
string
-
Сообщение
-
ошибка
string
-
onUIEvent
chrome.vpnProvider.onUIEvent.addListener(
callback: function,
)
Срабатывает при событии интерфейса расширения. События интерфейса – это сигналы от платформы, которые указывают приложению, что пользователю нужно показать диалоговое окно.