refresh date: 2026-09-25 robots: noindex
Mô tả
Sử dụng API chrome.vpnProvider để triển khai ứng dụng VPN.
Quyền
vpnProviderPhạm vi cung cấp
Cách sử dụng
Sau đây là cách sử dụng thông thường của vpnProvider:
Tạo cấu hình VPN bằng phương thức
createConfig. Cấu hình VPN là một mục nhập cố định mà người dùng nhìn thấy trong giao diện người dùng gốc của ChromeOS. Người dùng có thể chọn một cấu hình VPN trong danh sách rồi kết nối hoặc ngắt kết nối với cấu hình đó.Thêm trình nghe vào các sự kiện
onPlatformMessage,onPacketReceivedvàonConfigRemoved.Khi người dùng kết nối với cấu hình VPN,
onPlatformMessagesẽ nhận được thông báo"connected". Chúng tôi gọi khoảng thời gian giữa thông báo"connected"và"disconnected"là một phiên VPN. Trong khoảng thời gian này, tiện ích nhận được thông báo được cho là sở hữu phiên VPN.Bắt đầu kết nối với máy chủ VPN và khởi động ứng dụng VPN.
Đặt Tham số của kết nối bằng
setParameters.Thông báo trạng thái kết nối là
"connected"bằngnotifyConnectionStateChanged.Khi các bước trên hoàn tất mà không có lỗi, một đường hầm ảo sẽ được tạo cho bộ phần cứng và phần mềm mạng của ChromeOS. Bạn có thể gửi các gói IP qua đường hầm bằng cách sử dụng
sendPacketvà mọi gói bắt nguồn từ thiết bị ChromeOS sẽ được nhận bằng sự kiệnonPacketReceived.Khi người dùng ngắt kết nối khỏi cấu hình VPN,
onPlatformMessagesẽ được kích hoạt kèm theo thông báo"disconnected".Nếu không cần cấu hình VPN nữa, bạn có thể huỷ cấu hình đó bằng
destroyConfig.
Loại
Parameters
Thuộc tính
-
xử lý
chuỗi
Địa chỉ IP cho giao diện VPN theo ký hiệu CIDR. IPv4 hiện là chế độ duy nhất được hỗ trợ.
-
broadcastAddress
chuỗi không bắt buộc
Địa chỉ truyền tin cho giao diện VPN. (mặc định: được suy ra từ địa chỉ IP và mặt nạ)
-
dnsServers
string[]
Danh sách IP cho máy chủ DNS.
-
domainSearch
string[] không bắt buộc
Danh sách miền tìm kiếm. (mặc định: không có miền tìm kiếm)
-
exclusionList
string[]
Loại trừ lưu lượng truy cập mạng đến danh sách các khối IP theo ký hiệu CIDR khỏi đường hầm. Bạn có thể dùng chế độ này để bỏ qua lưu lượng truy cập đến và đi từ máy chủ VPN. Khi có nhiều quy tắc khớp với một đích đến, quy tắc có tiền tố khớp dài nhất sẽ được áp dụng. Các mục tương ứng với cùng một khối CIDR được coi là trùng lặp. Những mục trùng lặp như vậy trong danh sách đối chiếu (exclusionList + inclusionList) sẽ bị loại bỏ và mục trùng lặp chính xác sẽ bị loại bỏ là không xác định.
-
inclusionList
string[]
Thêm lưu lượng truy cập mạng vào danh sách khối IP theo ký hiệu CIDR vào đường hầm. Bạn có thể dùng tham số này để thiết lập đường hầm phân tách. Theo mặc định, không có lưu lượng truy cập nào được chuyển đến đường hầm. Khi bạn thêm mục "0.0.0.0/0" vào danh sách này, tất cả lưu lượng truy cập của người dùng sẽ được chuyển hướng đến đường hầm. Khi có nhiều quy tắc khớp với một đích đến, quy tắc có tiền tố khớp dài nhất sẽ được áp dụng. Các mục tương ứng với cùng một khối CIDR được coi là trùng lặp. Những mục trùng lặp như vậy trong danh sách đối chiếu (exclusionList + inclusionList) sẽ bị loại bỏ và mục trùng lặp chính xác sẽ bị loại bỏ là không xác định.
-
mtu
chuỗi không bắt buộc
Chế độ cài đặt MTU cho giao diện VPN. (mặc định: 1500 byte)
-
kết nối lại
chuỗi không bắt buộc
Chrome 51 trở lênLiệu tiện ích VPN có triển khai tính năng tự động kết nối lại hay không.
Nếu đúng, các thông báo nền tảng
linkDown,linkUp,linkChanged,suspendvàresumesẽ được dùng để báo hiệu các sự kiện tương ứng. Nếu bạn đặt thành false, hệ thống sẽ buộc ngắt kết nối VPN nếu cấu trúc liên kết mạng thay đổi và người dùng sẽ cần kết nối lại theo cách thủ công. (mặc định: false)Thuộc tính này mới có trong Chrome 51; thuộc tính này sẽ tạo ra một ngoại lệ trong các phiên bản cũ. Bạn có thể sử dụng try/catch để bật tính năng này theo điều kiện dựa trên khả năng hỗ trợ của trình duyệt.
PlatformMessage
Nền tảng sử dụng enum để thông báo cho ứng dụng về trạng thái phiên VPN.
Enum
"connected"
Cho biết cấu hình VPN đã kết nối.
"disconnected"
Cho biết cấu hình VPN đã ngắt kết nối.
"error"
Cho biết đã xảy ra lỗi trong kết nối VPN, ví dụ: hết thời gian chờ. Nội dung mô tả lỗi được cung cấp dưới dạng đối số lỗi cho onPlatformMessage.
"linkDown"
Cho biết kết nối mạng vật lý mặc định bị hỏng.
"linkUp"
Cho biết kết nối mạng vật lý mặc định đã được khôi phục.
"linkChanged"
Cho biết rằng kết nối mạng vật lý mặc định đã thay đổi, ví dụ: Wi-Fi -> di động.
"suspend"
Cho biết hệ điều hành đang chuẩn bị tạm ngưng, vì vậy VPN nên ngắt kết nối. Tiện ích không được đảm bảo sẽ nhận được sự kiện này trước khi tạm ngưng.
"resume"
Cho biết hệ điều hành đã tiếp tục và người dùng đã đăng nhập lại, vì vậy, VPN nên thử kết nối lại.
UIEvent
Nền tảng sử dụng enum để cho biết sự kiện đã kích hoạt onUIEvent.
Enum
"showAddDialog"
Yêu cầu ứng dụng VPN hiển thị hộp thoại thêm cấu hình cho người dùng.
"showConfigureDialog"
Yêu cầu ứng dụng VPN hiển thị hộp thoại cài đặt cấu hình cho người dùng.
VpnConnectionState
Ứng dụng VPN sử dụng enum để thông báo cho nền tảng về trạng thái hiện tại của ứng dụng. Điều này giúp cung cấp thông báo có ý nghĩa cho người dùng.
Enum
"connected"
Cho biết kết nối VPN đã thành công.
"failure"
Chỉ định rằng kết nối VPN không thành công.
Phương thức
createConfig()
chrome.vpnProvider.createConfig(
name: string,
callback?: function,
): Promise<string>
Tạo một cấu hình VPN mới, cấu hình này sẽ được duy trì trong nhiều phiên đăng nhập của người dùng.
Thông số
-
tên
chuỗi
Tên của cấu hình VPN.
-
callback
hàm không bắt buộc
Tham số
callbackcó dạng như sau:(id: string) => void
-
id
chuỗi
Mã nhận dạng duy nhất cho cấu hình đã tạo hoặc
undefinedkhi không thành công.
-
Giá trị trả về
-
<string> hứa hẹn
Chrome 96 trở lênTrả về một Promise được giải quyết khi cấu hình được tạo hoặc từ chối nếu có lỗi.
Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
destroyConfig()
chrome.vpnProvider.destroyConfig(
id: string,
callback?: function,
): Promise<void>
Huỷ cấu hình VPN do tiện ích tạo.
Thông số
-
id
chuỗi
Mã của cấu hình VPN cần huỷ.
-
callback
hàm không bắt buộc
Tham số
callbackcó dạng như sau:() => void
Giá trị trả về
-
Promise<void>
Chrome 96 trở lênTrả về một Lời hứa sẽ được thực hiện khi cấu hình bị huỷ hoặc bị từ chối nếu có lỗi.
Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
notifyConnectionStateChanged()
chrome.vpnProvider.notifyConnectionStateChanged(
state: VpnConnectionState,
callback?: function,
): Promise<void>
Thông báo trạng thái phiên VPN cho nền tảng. Thao tác này chỉ thành công khi tiện ích sở hữu phiên VPN.
Thông số
-
tiểu bang
Trạng thái phiên VPN của ứng dụng VPN.
-
callback
hàm không bắt buộc
Tham số
callbackcó dạng như sau:() => void
Giá trị trả về
-
Promise<void>
Chrome 96 trở lênTrả về một Lời hứa sẽ được thực hiện khi thông báo hoàn tất hoặc bị từ chối nếu có lỗi.
Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
sendPacket()
chrome.vpnProvider.sendPacket(
data: ArrayBuffer,
callback?: function,
): Promise<void>
Gửi một gói IP thông qua đường hầm được tạo cho phiên VPN. Thao tác này chỉ thành công khi tiện ích sở hữu phiên VPN.
Thông số
-
khác
ArrayBuffer
Gói IP sẽ được gửi đến nền tảng.
-
callback
hàm không bắt buộc
Tham số
callbackcó dạng như sau:() => void
Giá trị trả về
-
Promise<void>
Chrome 96 trở lênTrả về một Promise sẽ phân giải khi gói được gửi hoặc từ chối nếu có lỗi.
Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
setParameters()
chrome.vpnProvider.setParameters(
parameters: Parameters,
callback?: function,
): Promise<void>
Đặt tham số cho phiên VPN. Bạn nên gọi phương thức này ngay sau khi nhận được "connected" từ nền tảng. Thao tác này chỉ thành công khi tiện ích sở hữu phiên VPN.
Thông số
-
tham số
Các tham số cho phiên VPN.
-
callback
hàm không bắt buộc
Tham số
callbackcó dạng như sau:() => void
Giá trị trả về
-
Promise<void>
Chrome 96 trở lênTrả về một Promise sẽ phân giải khi các tham số được đặt hoặc từ chối nếu có lỗi.
Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
Sự kiện
onConfigCreated
chrome.vpnProvider.onConfigCreated.addListener(
callback: function,
)
Được kích hoạt khi nền tảng tạo cấu hình cho tiện ích.
Thông số
-
callback
hàm
Tham số
callbackcó dạng như sau:(id: string, name: string, data: object) => void
-
id
chuỗi
-
tên
chuỗi
-
khác
đối tượng
-
onConfigRemoved
chrome.vpnProvider.onConfigRemoved.addListener(
callback: function,
)
Được kích hoạt khi một cấu hình do tiện ích tạo bị nền tảng xoá.
Thông số
-
callback
hàm
Tham số
callbackcó dạng như sau:(id: string) => void
-
id
chuỗi
-
onPacketReceived
chrome.vpnProvider.onPacketReceived.addListener(
callback: function,
)
Được kích hoạt khi nhận được gói IP thông qua đường hầm cho phiên VPN do tiện ích sở hữu.
Thông số
-
callback
hàm
Tham số
callbackcó dạng như sau:(data: ArrayBuffer) => void
-
khác
ArrayBuffer
-
onPlatformMessage
chrome.vpnProvider.onPlatformMessage.addListener(
callback: function,
)
Được kích hoạt khi nhận được thông báo từ nền tảng cho cấu hình VPN do tiện ích sở hữu.
Thông số
-
callback
hàm
Tham số
callbackcó dạng như sau:(id: string, message: PlatformMessage, error: string) => void
-
id
chuỗi
-
tin nhắn
-
error
chuỗi
-
onUIEvent
chrome.vpnProvider.onUIEvent.addListener(
callback: function,
)
Được kích hoạt khi có sự kiện giao diện người dùng cho tiện ích. Sự kiện giao diện người dùng là tín hiệu từ nền tảng cho ứng dụng biết rằng cần hiển thị hộp thoại giao diện người dùng cho người dùng.