refresh date: 2026-09-25 robots: noindex
คำอธิบาย
ใช้ chrome.vpnProvider API เพื่อติดตั้งใช้งานไคลเอ็นต์ VPN
สิทธิ์
vpnProviderความพร้อมใช้งาน
การใช้งาน
การใช้งาน vpnProvider โดยทั่วไปมีดังนี้
สร้างการกำหนดค่า VPN โดยใช้เมธอด
createConfigการกำหนดค่า VPN เป็นรายการถาวรที่แสดงต่อผู้ใช้ใน UI ของ ChromeOS แบบเนทีฟ ผู้ใช้สามารถเลือกการกำหนดค่า VPN จากรายการและเชื่อมต่อหรือยกเลิกการเชื่อมต่อได้เพิ่ม Listener ลงในเหตุการณ์
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
พร็อพเพอร์ตี้
-
ที่อยู่
สตริง
ที่อยู่ 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 ไปยังทันเนล พารามิเตอร์นี้ใช้เพื่อตั้งค่า Split Tunnel ได้ โดยค่าเริ่มต้น ระบบจะไม่กำหนดเส้นทางการเข้าชมไปยังทันเนล การเพิ่มรายการ "0.0.0.0/0" ลงในรายการนี้จะเปลี่ยนเส้นทางการเข้าชมทั้งหมดของผู้ใช้ไปยังทันเนล เมื่อมีกฎหลายข้อตรงกับปลายทาง กฎที่มีคำนำหน้าที่ตรงกันยาวที่สุดจะเป็นกฎที่ชนะ ระบบจะถือว่ารายการที่สอดคล้องกับบล็อก CIDR เดียวกันเป็นรายการที่ซ้ำกัน ระบบจะกำจัดรายการที่ซ้ำกันดังกล่าวในรายการที่เปรียบเทียบ (exclusionList + inclusionList) และจะไม่มีการกำหนดรายการที่ซ้ำกันที่แน่นอนซึ่งจะถูกกำจัด
-
mtu
สตริง ไม่บังคับ
การตั้งค่า MTU สำหรับอินเทอร์เฟซ VPN (ค่าเริ่มต้น: 1,500 ไบต์)
-
เชื่อมต่อใหม่
สตริง ไม่บังคับ
Chrome 51 ขึ้นไปส่วนขยาย VPN ใช้การเชื่อมต่อใหม่อัตโนมัติหรือไม่
หากเป็นจริง ระบบจะใช้ข้อความแพลตฟอร์ม
linkDown,linkUp,linkChanged,suspendและresumeเพื่อส่งสัญญาณเหตุการณ์ที่เกี่ยวข้อง หากเป็นเท็จ ระบบจะบังคับให้ยกเลิกการเชื่อมต่อ VPN หากโทโพโลยีเครือข่ายมีการเปลี่ยนแปลง และผู้ใช้จะต้องเชื่อมต่อใหม่ด้วยตนเอง (ค่าเริ่มต้น: false)พร็อพเพอร์ตี้นี้เป็นพร็อพเพอร์ตี้ใหม่ใน Chrome 51 และจะสร้างข้อยกเว้นในเวอร์ชันก่อนหน้า คุณสามารถใช้ try/catch เพื่อเปิดใช้ฟีเจอร์ตามเงื่อนไขโดยอิงตามการรองรับของเบราว์เซอร์
PlatformMessage
แพลตฟอร์มจะใช้ enum เพื่อแจ้งสถานะเซสชัน VPN ให้ไคลเอ็นต์ทราบ
ค่าแจกแจง
"connected"
ระบุว่าการกำหนดค่า VPN เชื่อมต่อแล้ว
"disconnected"
ระบุว่าการกำหนดค่า VPN ยกเลิกการเชื่อมต่อแล้ว
"error"
ระบุว่าเกิดข้อผิดพลาดในการเชื่อมต่อ VPN เช่น หมดเวลา คำอธิบายข้อผิดพลาดจะแสดงเป็นอาร์กิวเมนต์ข้อผิดพลาดสำหรับ onPlatformMessage
"linkDown"
ระบุว่าการเชื่อมต่อเครือข่ายทางกายภาพเริ่มต้นไม่ทำงาน
"linkUp"
ระบุว่าการเชื่อมต่อเครือข่ายจริงเริ่มต้นกลับมาทำงานแล้ว
"linkChanged"
ระบุว่าการเชื่อมต่อเครือข่ายทางกายภาพเริ่มต้นมีการเปลี่ยนแปลง เช่น Wi-Fi -> อุปกรณ์เคลื่อนที่
"suspend"
ระบุว่าระบบปฏิบัติการกำลังเตรียมระงับ ดังนั้น VPN ควรยกเลิกการเชื่อมต่อ ไม่รับประกันว่าส่วนขยายจะได้รับเหตุการณ์นี้ก่อนที่จะระงับ
"resume"
ระบุว่าระบบปฏิบัติการกลับมาทำงานอีกครั้งและผู้ใช้ได้เข้าสู่ระบบอีกครั้ง ดังนั้น VPN ควรพยายามเชื่อมต่อใหม่
UIEvent
แพลตฟอร์มจะใช้ enum เพื่อระบุเหตุการณ์ที่ทริกเกอร์ onUIEvent
ค่าแจกแจง
"showAddDialog"
ส่งคำขอให้ไคลเอ็นต์ VPN แสดงกล่องโต้ตอบการเพิ่มการกำหนดค่าแก่ผู้ใช้
"showConfigureDialog"
ส่งคำขอให้ไคลเอ็นต์ VPN แสดงกล่องโต้ตอบการตั้งค่าการกำหนดค่าแก่ผู้ใช้
VpnConnectionState
ไคลเอ็นต์ VPN จะใช้ enum เพื่อแจ้งสถานะปัจจุบันให้แพลตฟอร์มทราบ ซึ่งจะช่วยให้ผู้ใช้ได้รับข้อความที่มีความหมาย
ค่าแจกแจง
"connected"
ระบุว่าการเชื่อมต่อ VPN สำเร็จ
"failure"
ระบุว่าการเชื่อมต่อ VPN ไม่สำเร็จ
เมธอด
createConfig()
chrome.vpnProvider.createConfig(
name: string,
callback?: function,
): Promise<string>
สร้างการกำหนดค่า VPN ใหม่ที่ยังคงอยู่ตลอดเซสชันการเข้าสู่ระบบหลายเซสชันของผู้ใช้
พารามิเตอร์
-
name
สตริง
ชื่อของการกำหนดค่า VPN
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(id: string) => void
-
id
สตริง
รหัสที่ไม่ซ้ำกันสำหรับการกำหนดค่าที่สร้างขึ้น หรือ
undefinedหากดำเนินการไม่สำเร็จ
-
การคืนสินค้า
-
Promise<string>
Chrome 96 ขึ้นไปแสดงผล Promise ซึ่งจะได้รับการแก้ไขเมื่อสร้างการกำหนดค่าหรือปฏิเสธหากมีข้อผิดพลาด
ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
destroyConfig()
chrome.vpnProvider.destroyConfig(
id: string,
callback?: function,
): Promise<void>
ทำลายการกำหนดค่า VPN ที่สร้างโดยส่วนขยาย
พารามิเตอร์
-
id
สตริง
รหัสของการกำหนดค่า VPN ที่จะทำลาย
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไปแสดงผล Promise ซึ่งจะได้รับการแก้ไขเมื่อการกำหนดค่าถูกทำลายหรือถูกปฏิเสธหากมีข้อผิดพลาด
ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
notifyConnectionStateChanged()
chrome.vpnProvider.notifyConnectionStateChanged(
state: VpnConnectionState,
callback?: function,
): Promise<void>
แจ้งสถานะเซสชัน VPN ไปยังแพลตฟอร์ม การดำเนินการนี้จะสำเร็จก็ต่อเมื่อส่วนขยายเป็นเจ้าของเซสชัน VPN เท่านั้น
พารามิเตอร์
-
สถานะเซสชัน VPN ของไคลเอ็นต์ VPN
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไปแสดงผล Promise ซึ่งจะได้รับการแก้ไขเมื่อการแจ้งเตือนเสร็จสมบูรณ์หรือปฏิเสธหากมีข้อผิดพลาด
ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
sendPacket()
chrome.vpnProvider.sendPacket(
data: ArrayBuffer,
callback?: function,
): Promise<void>
ส่งแพ็กเก็ต IP ผ่านอุโมงค์ข้อมูลที่สร้างขึ้นสำหรับเซสชัน VPN การดำเนินการนี้จะสำเร็จก็ต่อเมื่อส่วนขยายเป็นเจ้าของเซสชัน VPN เท่านั้น
พารามิเตอร์
-
เพิ่มเติม
ArrayBuffer
แพ็กเก็ต IP ที่จะส่งไปยังแพลตฟอร์ม
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไปแสดงผล Promise ซึ่งจะได้รับการแก้ไขเมื่อส่งแพ็กเก็ตหรือปฏิเสธหากมีข้อผิดพลาด
ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
setParameters()
chrome.vpnProvider.setParameters(
parameters: Parameters,
callback?: function,
): Promise<void>
ตั้งค่าพารามิเตอร์สำหรับเซสชัน VPN ควรเรียกใช้เมธอดนี้ทันทีหลังจากได้รับ "connected" จากแพลตฟอร์ม การดำเนินการนี้จะสำเร็จก็ต่อเมื่อส่วนขยายเป็นเจ้าของเซสชัน VPN เท่านั้น
พารามิเตอร์
-
พารามิเตอร์
พารามิเตอร์สำหรับเซสชัน VPN
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไปแสดงผล Promise ซึ่งจะได้รับการแก้ไขเมื่อมีการตั้งค่าพารามิเตอร์หรือปฏิเสธหากมีข้อผิดพลาด
ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
กิจกรรม
onConfigCreated
chrome.vpnProvider.onConfigCreated.addListener(
callback: function,
)
ทริกเกอร์เมื่อแพลตฟอร์มสร้างการกำหนดค่าสำหรับส่วนขยาย
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(id: string, name: string, data: object) => void
-
id
สตริง
-
name
สตริง
-
เพิ่มเติม
ออบเจ็กต์
-
onConfigRemoved
chrome.vpnProvider.onConfigRemoved.addListener(
callback: function,
)
ทริกเกอร์เมื่อแพลตฟอร์มนำการกำหนดค่าที่สร้างโดยส่วนขยายออก
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(id: string) => void
-
id
สตริง
-
onPacketReceived
chrome.vpnProvider.onPacketReceived.addListener(
callback: function,
)
ทริกเกอร์เมื่อได้รับแพ็กเก็ต IP ผ่านทันเนลสำหรับเซสชัน VPN ที่ส่วนขยายเป็นเจ้าของ
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(data: ArrayBuffer) => void
-
เพิ่มเติม
ArrayBuffer
-
onPlatformMessage
chrome.vpnProvider.onPlatformMessage.addListener(
callback: function,
)
ทริกเกอร์เมื่อได้รับข้อความจากแพลตฟอร์มสำหรับการกำหนดค่า VPN ที่ส่วนขยายเป็นเจ้าของ
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(id: string, message: PlatformMessage, error: string) => void
-
id
สตริง
-
ข้อความ
-
ข้อผิดพลาด
สตริง
-
onUIEvent
chrome.vpnProvider.onUIEvent.addListener(
callback: function,
)
ทริกเกอร์เมื่อมีเหตุการณ์ UI สำหรับส่วนขยาย เหตุการณ์ UI คือสัญญาณจากแพลตฟอร์มที่ระบุให้แอปทราบว่าต้องแสดงกล่องโต้ตอบ UI ต่อผู้ใช้