chrome.vpnProvider

refresh date: 2026-09-25 robots: noindex

คำอธิบาย

ใช้ chrome.vpnProvider API เพื่อติดตั้งใช้งานไคลเอ็นต์ VPN

สิทธิ์

vpnProvider

ความพร้อมใช้งาน

Chrome 43 ขึ้นไป ChromeOS เท่านั้น

การใช้งาน

การใช้งาน 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()

Promise
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()

Promise
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()

Promise
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()

Promise
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()

Promise
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 ต่อผู้ใช้

พารามิเตอร์

  • callback

    ฟังก์ชัน

    พารามิเตอร์ callback จะมีลักษณะดังนี้

    (event: UIEvent, id?: string) => void

    • เหตุการณ์
    • id

      สตริง ไม่บังคับ