설명
chrome.vpnProvider
API를 사용하여 VPN 클라이언트를 구현합니다.
권한
vpnProvider
가용성
사용
vpnProvider의 일반적인 사용법은 다음과 같습니다.
createConfig
메서드를 사용하여 VPN 구성을 만듭니다. VPN 구성은 기본 ChromeOS UI에서 사용자에게 표시되는 영구 항목입니다. 사용자는 목록에서 VPN 구성을 선택하고 이에 연결하거나 연결을 해제할 수 있습니다.onPlatformMessage
,onPacketReceived
,onConfigRemoved
이벤트에 리스너를 추가합니다.사용자가 VPN 구성에 연결하면
"connected"
메시지와 함께onPlatformMessage
이 수신됩니다."connected"
및"disconnected"
메시지 사이의 기간을 VPN 세션이라고 합니다. 이 시간 동안 메시지를 수신하는 확장 프로그램이 VPN 세션을 소유한다고 합니다.VPN 서버 연결을 시작하고 VPN 클라이언트를 시작합니다.
setParameters
를 사용하여 연결의 매개변수를 설정합니다.notifyConnectionStateChanged
를 사용하여 연결 상태를"connected"
로 알립니다.위의 단계가 오류 없이 완료되면 ChromeOS의 네트워크 스택에 가상 터널이 생성됩니다. IP 패킷은
sendPacket
를 사용하여 터널을 통해 전송할 수 있으며 ChromeOS 기기에서 발생하는 모든 패킷은onPacketReceived
이벤트를 사용하여 수신됩니다.사용자가 VPN 구성에서 연결을 해제하면
"disconnected"
메시지와 함께onPlatformMessage
가 실행됩니다.VPN 구성이 더 이상 필요하지 않으면
destroyConfig
를 사용하여 삭제할 수 있습니다.
유형
Parameters
속성
-
주소
문자열
CIDR 표기법으로 표시된 VPN 인터페이스의 IP 주소입니다. 현재 지원되는 유일한 모드는 IPv4입니다.
-
broadcastAddress
문자열(선택사항)
VPN 인터페이스의 브로드캐스트 주소입니다. (기본값: IP 주소 및 마스크에서 추론)
-
dnsServers
문자열[]
DNS 서버의 IP 목록입니다.
-
domainSearch
string[] 선택사항
검색 도메인 목록입니다. (기본값: 검색 도메인 없음)
-
exclusionList
문자열[]
CIDR 표기법으로 표시된 IP 블록 목록에 대한 네트워크 트래픽을 터널에서 제외합니다. 이는 VPN 서버에서 주고받는 트래픽을 우회하는 데 사용할 수 있습니다. 여러 규칙이 대상 하나와 일치하면 일치하는 가장 긴 접두사가 있는 규칙이 우선합니다. 동일한 CIDR 블록에 해당하는 항목은 중복으로 취급됩니다. 대조된 (exclusionList + inclusionList) 목록에서 이러한 중복 항목은 제거되며, 제거될 정확한 중복 항목은 정의되지 않습니다.
-
inclusionList
문자열[]
터널에 대한 CIDR 표기법으로 IP 블록 목록에 네트워크 트래픽을 포함합니다. 이 매개변수를 사용하여 분할 터널을 설정할 수 있습니다. 기본적으로 트래픽은 터널로 전달되지 않습니다. '0.0.0.0/0' 항목 추가 터널로 리디렉션되는 모든 사용자 트래픽을 가져옵니다. 여러 규칙이 대상 하나와 일치하면 일치하는 가장 긴 접두사가 있는 규칙이 우선합니다. 동일한 CIDR 블록에 해당하는 항목은 중복으로 취급됩니다. 대조된 (exclusionList + inclusionList) 목록에서 이러한 중복 항목은 제거되며, 제거될 정확한 중복 항목은 정의되지 않습니다.
-
mtu
문자열(선택사항)
VPN 인터페이스의 MTU 설정입니다. (기본값: 1500바이트)
-
다시 연결
문자열(선택사항)
Chrome 51 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.VPN 확장 프로그램이 자동 재연결을 구현하는지 여부입니다.
true인 경우
linkDown
,linkUp
,linkChanged
,suspend
,resume
플랫폼 메시지가 각 이벤트에 신호를 보내는 데 사용됩니다. false인 경우 네트워크 토폴로지가 변경되면 시스템에서 VPN 연결을 강제로 해제하며 사용자는 수동으로 다시 연결해야 합니다. (기본값: false)이 속성은 Chrome 51에서 새로 도입되었습니다. 이전 버전에서는 예외가 생성됩니다. try/catch는 브라우저 지원에 따라 이 기능을 조건부로 사용 설정하는 데 사용할 수 있습니다.
PlatformMessage
enum은 플랫폼에서 VPN 세션 상태를 클라이언트에 알리는 데 사용됩니다.
열거형
"linked"
VPN 구성이 연결되었음을 나타냅니다.
"disconnect"
VPN 구성이 연결 해제되었음을 나타냅니다.
"error"
VPN 연결에 오류가 발생했음을 나타냅니다(예: 시간 초과). 오류 설명은 onPlatformMessage에 오류 인수로 제공됩니다.
"linkDown"
기본 물리적 네트워크 연결이 다운되었음을 나타냅니다.
"linkUp"
기본 물리적 네트워크 연결이 백업되었음을 나타냅니다.
"linkChanged"
기본 물리적 네트워크 연결이 변경되었음을 나타냅니다. 예: 있습니다.
"suspend"
OS가 정지할 준비를 하고 있으므로 VPN이 연결을 중단해야 함을 나타냅니다. 확장 프로그램은 정지되기 전에 이 이벤트를 수신하지 않을 수 있습니다.
"Resume"
OS가 재개되고 사용자가 다시 로그인했으므로 VPN에서 다시 연결을 시도해야 함을 나타냅니다.
UIEvent
enum은 플랫폼에서 onUIEvent
를 트리거한 이벤트를 나타내는 데 사용됩니다.
열거형
"showAddDialog"
VPN 클라이언트에서 사용자에게 구성 추가 대화상자를 표시하도록 요청합니다.
"showConfigureDialog"
VPN 클라이언트에서 사용자에게 구성 설정 대화상자를 표시하도록 요청합니다.
VpnConnectionState
enum은 VPN 클라이언트에서 현재 상태를 플랫폼에 알리는 데 사용합니다. 이렇게 하면 사용자에게 의미 있는 메시지를 제공하는 데 도움이 됩니다.
열거형
"Connected"
VPN 연결이 완료되었음을 지정합니다.
"failure"
VPN 연결이 실패했음을 지정합니다.
메서드
createConfig()
chrome.vpnProvider.createConfig(
name: string,
callback?: function,
)
사용자의 여러 로그인 세션에서 지속되는 새 VPN 구성을 만듭니다.
매개변수
-
이름
문자열
VPN 구성의 이름입니다.
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.(id: string) => void
-
id
문자열
생성된 구성의 고유 ID 또는 실패 시
undefined
입니다.
-
반환 값
-
프로미스<string>
Chrome 96 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
destroyConfig()
chrome.vpnProvider.destroyConfig(
id: string,
callback?: function,
)
확장 프로그램에서 만든 VPN 구성을 폐기합니다.
매개변수
-
id
문자열
폐기할 VPN 구성의 ID입니다.
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.() => void
반환 값
-
프로미스<void>
Chrome 96 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
notifyConnectionStateChanged()
chrome.vpnProvider.notifyConnectionStateChanged(
state: VpnConnectionState,
callback?: function,
)
VPN 세션 상태를 플랫폼에 알립니다. VPN 세션이 확장 프로그램에서 소유하는 경우에만 성공합니다.
매개변수
-
VPN 클라이언트의 VPN 세션 상태입니다.
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.() => void
반환 값
-
프로미스<void>
Chrome 96 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
sendPacket()
chrome.vpnProvider.sendPacket(
data: ArrayBuffer,
callback?: function,
)
VPN 세션을 위해 생성된 터널을 통해 IP 패킷을 전송합니다. VPN 세션이 확장 프로그램에서 소유하는 경우에만 성공합니다.
매개변수
-
데이터
배열 버퍼
플랫폼으로 전송될 IP 패킷입니다.
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.() => void
반환 값
-
프로미스<void>
Chrome 96 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
setParameters()
chrome.vpnProvider.setParameters(
parameters: Parameters,
callback?: function,
)
VPN 세션의 매개변수를 설정합니다. 플랫폼에서 "connected"
를 수신한 직후에 호출해야 합니다. VPN 세션이 확장 프로그램에서 소유하는 경우에만 성공합니다.
매개변수
-
매개변수
VPN 세션의 매개변수입니다.
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.() => void
반환 값
-
프로미스<void>
Chrome 96 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.
이벤트
onConfigCreated
chrome.vpnProvider.onConfigCreated.addListener(
callback: function,
)
플랫폼에서 확장 프로그램의 구성을 만들 때 트리거됩니다.
매개변수
-
콜백
함수
callback
매개변수는 다음과 같습니다.(id: string, name: string, data: object) => void
-
id
문자열
-
이름
문자열
-
데이터
객체
-
onConfigRemoved
chrome.vpnProvider.onConfigRemoved.addListener(
callback: function,
)
확장 프로그램으로 생성된 구성이 플랫폼에서 삭제될 때 트리거됩니다.
매개변수
-
콜백
함수
callback
매개변수는 다음과 같습니다.(id: string) => void
-
id
문자열
-
onPacketReceived
chrome.vpnProvider.onPacketReceived.addListener(
callback: function,
)
확장 프로그램에서 소유한 VPN 세션의 터널을 통해 IP 패킷이 수신될 때 트리거됩니다.
매개변수
-
콜백
함수
callback
매개변수는 다음과 같습니다.(data: ArrayBuffer) => void
-
데이터
배열 버퍼
-
onPlatformMessage
chrome.vpnProvider.onPlatformMessage.addListener(
callback: function,
)
확장 프로그램에서 소유한 VPN 구성에 대한 메시지가 플랫폼에서 수신될 때 트리거됩니다.
매개변수
-
콜백
함수
callback
매개변수는 다음과 같습니다.(id: string, message: PlatformMessage, error: string) => void
-
id
문자열
-
메시지
-
오류
문자열
-
onUIEvent
chrome.vpnProvider.onUIEvent.addListener(
callback: function,
)
확장 프로그램의 UI 이벤트가 있을 때 트리거됩니다. UI 이벤트는 사용자에게 UI 대화상자를 표시해야 한다고 앱에 나타내는 플랫폼의 신호입니다.