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 ไปยังอุโมงค์ พารามิเตอร์นี้ใช้เพื่อตั้งค่าการแยกอุโมงค์ได้ โดยค่าเริ่มต้น ระบบจะไม่กำหนดเส้นทางการเข้าชมไปยังอุโมงค์ การเพิ่มรายการ "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 ให้ไคลเอ็นต์ทราบ

ค่าแจกแจง

"เชื่อมต่อแล้ว"
แสดงว่าการกำหนดค่า VPN เชื่อมต่อแล้ว

"ยกเลิกการเชื่อมต่อแล้ว"
ระบุว่าการกำหนดค่า VPN ยกเลิกการเชื่อมต่อแล้ว

"error"
ระบุว่าเกิดข้อผิดพลาดในการเชื่อมต่อ VPN เช่น หมดเวลา คำอธิบายของข้อผิดพลาดจะแสดงเป็นอาร์กิวเมนต์ข้อผิดพลาดใน onPlatformMessage

"linkDown"
ระบุว่าการเชื่อมต่อเครือข่ายจริงเริ่มต้นหยุดทำงาน

"linkUp"
แสดงว่าการเชื่อมต่อเครือข่ายจริงเริ่มต้นกลับมาทำงานอีกครั้ง

"linkChanged"
ระบุว่าการเชื่อมต่อเครือข่ายจริงเริ่มต้นมีการเปลี่ยนแปลง เช่น wifi->mobile

"suspend"
บ่งบอกว่าระบบปฏิบัติการกำลังเตรียมที่จะระงับ ดังนั้น VPN ควรยกเลิกการเชื่อมต่อ เราไม่รับประกันว่าส่วนขยายจะได้รับเหตุการณ์นี้ก่อนที่จะระงับ

"resume"
ระบุว่าระบบปฏิบัติการกลับมาทำงานอีกครั้งและผู้ใช้ได้เข้าสู่ระบบอีกครั้ง ดังนั้น VPN ควรพยายามเชื่อมต่อใหม่

UIEvent

แพลตฟอร์มใช้ Enum เพื่อระบุเหตุการณ์ที่ทริกเกอร์ onUIEvent

ค่าแจกแจง

"showAddDialog"
คำขอให้ไคลเอ็นต์ VPN แสดงกล่องโต้ตอบการกำหนดค่าเพิ่มเติมต่อผู้ใช้

"showConfigureDialog"
คำขอให้ไคลเอ็นต์ VPN แสดงกล่องโต้ตอบการตั้งค่าการกำหนดค่าต่อผู้ใช้

VpnConnectionState

ไคลเอ็นต์ VPN ใช้ Enum เพื่อแจ้งให้แพลตฟอร์มทราบสถานะปัจจุบัน ซึ่งจะช่วยให้ส่งข้อความที่มีความหมายไปยังผู้ใช้ได้

ค่าแจกแจง

"เชื่อมต่อแล้ว"
ระบุว่าเชื่อมต่อ VPN สำเร็จ

"failure"
ระบุว่าการเชื่อมต่อ VPN ล้มเหลว

เมธอด

createConfig()

Promise
chrome.vpnProvider.createConfig(
  name: string,
  callback?: function,
)
: Promise<string>

สร้างการกำหนดค่า VPN ใหม่ที่คงอยู่ตลอดเซสชันการเข้าสู่ระบบหลายเซสชันของผู้ใช้

พารามิเตอร์

  • name

    สตริง

    ชื่อของการกำหนดค่า VPN

  • callback

    ฟังก์ชัน ไม่บังคับ

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

    (id: string) => void

    • id

      สตริง

      รหัสที่ไม่ซ้ำกันสำหรับการกำหนดค่าที่สร้างขึ้น หรือ undefined ในกรณีที่ล้มเหลว

การคืนสินค้า

  • Promise<string>

    Chrome 96 ขึ้นไป

    ส่งคืน Promise ซึ่งจะได้รับการแก้ไขเมื่อสร้างการกำหนดค่าแล้ว หรือปฏิเสธหากมีข้อผิดพลาด

    ระบบรองรับเฉพาะ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

destroyConfig()

Promise
chrome.vpnProvider.destroyConfig(
  id: string,
  callback?: function,
)
: Promise<void>

ทำลายการกำหนดค่า VPN ที่สร้างโดยส่วนขยาย

พารามิเตอร์

  • id

    สตริง

    รหัสของการกำหนดค่า VPN ที่จะทำลาย

  • callback

    ฟังก์ชัน ไม่บังคับ

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

    () => void

การคืนสินค้า

  • Promise<void>

    Chrome 96 ขึ้นไป

    แสดงผล Promise ซึ่งจะได้รับการแก้ไขเมื่อทำลายการกำหนดค่า หรือปฏิเสธหากมีข้อผิดพลาด

    ระบบรองรับเฉพาะ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

notifyConnectionStateChanged()

Promise
chrome.vpnProvider.notifyConnectionStateChanged(
  state: VpnConnectionState,
  callback?: function,
)
: Promise<void>

แจ้งสถานะเซสชัน VPN ไปยังแพลตฟอร์ม การดำเนินการนี้จะสำเร็จเมื่อเซสชัน VPN เป็นของส่วนขยายเท่านั้น

พารามิเตอร์

  • รัฐ

    สถานะเซสชัน VPN ของไคลเอ็นต์ VPN

  • callback

    ฟังก์ชัน ไม่บังคับ

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

    () => void

การคืนสินค้า

  • Promise<void>

    Chrome 96 ขึ้นไป

    แสดงผล Promise ซึ่งจะทำงานเมื่อการแจ้งเตือนเสร็จสมบูรณ์ หรือปฏิเสธหากมีข้อผิดพลาด

    ระบบรองรับเฉพาะ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

sendPacket()

Promise
chrome.vpnProvider.sendPacket(
  data: ArrayBuffer,
  callback?: function,
)
: Promise<void>

ส่งแพ็กเก็ต IP ผ่านอุโมงค์ที่สร้างขึ้นสำหรับเซสชัน VPN การดำเนินการนี้จะสำเร็จเมื่อเซสชัน VPN เป็นของส่วนขยายเท่านั้น

พารามิเตอร์

  • เพิ่มเติม

    ArrayBuffer

    แพ็กเก็ต IP ที่จะส่งไปยังแพลตฟอร์ม

  • callback

    ฟังก์ชัน ไม่บังคับ

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

    () => void

การคืนสินค้า

  • Promise<void>

    Chrome 96 ขึ้นไป

    แสดงผล Promise ซึ่งจะได้รับการแก้ไขเมื่อส่งแพ็กเก็ต หรือปฏิเสธหากมีข้อผิดพลาด

    ระบบรองรับเฉพาะ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

setParameters()

Promise
chrome.vpnProvider.setParameters(
  parameters: Parameters,
  callback?: function,
)
: Promise<void>

ตั้งค่าพารามิเตอร์สําหรับเซสชัน VPN ควรเรียกใช้ทันทีหลังจากได้รับ "connected" จากแพลตฟอร์ม การดำเนินการนี้จะสำเร็จเมื่อเซสชัน VPN เป็นของส่วนขยายเท่านั้น

พารามิเตอร์

  • พารามิเตอร์

    พารามิเตอร์สำหรับเซสชัน VPN

  • callback

    ฟังก์ชัน ไม่บังคับ

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

    () => void

การคืนสินค้า

  • Promise<void>

    Chrome 96 ขึ้นไป

    แสดงผล Promise ซึ่งจะได้รับการแก้ไขเมื่อตั้งค่าพารามิเตอร์ หรือปฏิเสธหากมีข้อผิดพลาด

    ระบบรองรับเฉพาะ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

กิจกรรม

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

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