Açıklama
Bir VPN istemcisini uygulamak için chrome.vpnProvider
API'yi kullanın.
İzinler
vpnProvider
Kullanılabilirlik
Kullanım
vpnProvider'ın tipik kullanımı aşağıdaki gibidir:
createConfig
yöntemini kullanarak VPN yapılandırmaları oluşturun. VPN yapılandırması, yerel bir ChromeOS kullanıcı arayüzünde kullanıcıya gösterilen kalıcı bir giriştir. Kullanıcı listeden bir VPN yapılandırması seçip bu yapılandırmaya bağlanabilir veya bağlantısını kesebilir.onPlatformMessage
,onPacketReceived
veonConfigRemoved
etkinliklerine dinleyici ekleyin.Kullanıcı VPN yapılandırmasına bağlandığında
onPlatformMessage
,"connected"
mesajıyla birlikte alınır."connected"
ile"disconnected"
mesajları arasındaki süreyi VPN oturumu olarak adlandırırız. Bu dönemde, mesajı alan uzantının VPN oturumunun sahibi olduğu söylenir.VPN sunucusuyla bağlantıyı başlatın ve VPN istemcisini başlatın.
setParameters
kullanarak bağlantının parametrelerini ayarlayın.notifyConnectionStateChanged
özelliğini kullanarak bağlantı durumunu"connected"
olarak bildirin.Yukarıdaki adımlar hatasız şekilde tamamlandığında ChromeOS'in ağ yığını için sanal bir tünel oluşturulur. IP paketleri,
sendPacket
kullanılarak tünelden gönderilebilir ve ChromeOS cihazdan gelen paketleronPacketReceived
etkinliği kullanılarak alınır.Kullanıcı, VPN yapılandırmasıyla olan bağlantıyı kestiğinde
onPlatformMessage
uygulaması"disconnected"
mesajıyla etkinleştirilir.VPN yapılandırması artık gerekli değilse
destroyConfig
kullanılarak kaldırılabilir.
Türler
Parameters
Özellikler
-
adres
dize
CIDR gösteriminde VPN arayüzü için IP adresi. Şu anda desteklenen tek mod IPv4'tür.
-
broadcastAddress
dize isteğe bağlı
VPN arayüzü için yayın adresi. (varsayılan: IP adresinden ve maskeden çıkarılmıştır)
-
dnsServers
dize[]
DNS sunucularının IP'lerinin listesi.
-
domainSearch
string[] isteğe bağlı
Arama ağı alan adlarının bir listesi. (varsayılan: arama alanı yok)
-
exclusionList
dize[]
Tünelden CIDR gösterimindeki IP blokları listesine ağ trafiğini hariç tutun. Bu, VPN sunucusuna gelen ve VPN sunucusundan giden trafiği atlamak için kullanılabilir. Bir hedefle eşleşen birden fazla kural olduğunda, eşleşen en uzun ön eke sahip kural kazanır. Aynı CIDR bloğuna karşılık gelen girişler kopya olarak kabul edilir. Birleştirilmiş (exclusionList + includeList) listesindeki bu tür kopyalar kaldırılır ve kaldırılacak olan tam yinelenen giriş tanımlanmamış olur.
-
inclusionList
dize[]
Tüneldeki CIDR gösterimindeki IP blokları listesine ağ trafiğini ekleyin. Bu parametre, bölünmüş tünel oluşturmak için kullanılabilir. Varsayılan olarak tünele trafik yönlendirilmez. "0.0.0.0/0" girişini ekleme eklemek, tünele yönlendirilen tüm kullanıcı trafiğini alır. Bir hedefle eşleşen birden fazla kural olduğunda, eşleşen en uzun ön eke sahip kural kazanır. Aynı CIDR bloğuna karşılık gelen girişler kopya olarak kabul edilir. Birleştirilmiş (exclusionList + includeList) listesindeki bu tür kopyalar kaldırılır ve kaldırılacak olan tam yinelenen giriş tanımlanmamış olur.
-
mtu
dize isteğe bağlı
VPN arayüzünün MTU ayarı. (varsayılan: 1500 bayt)
-
yeniden bağlan
dize isteğe bağlı
Chrome 51 ve sonraki sürümler 'nı inceleyin.VPN uzantısının otomatik yeniden bağlantı uygulayıp uygulamadığı.
Doğru değerine ayarlanırsa ilgili etkinlikleri belirtmek için
linkDown
,linkUp
,linkChanged
,suspend
veresume
platform mesajları kullanılır. Yanlış değerine ayarlanırsa ağ topolojisi değişirse sistem, VPN bağlantısını kesmeye zorlar ve kullanıcının manuel olarak yeniden bağlanması gerekir. (varsayılan: yanlış)Bu özellik, Chrome 51'de yenidir; önceki sürümlerde bir istisna oluşturur. özelliği, tarayıcı desteğine bağlı olarak koşullu olarak etkinleştirmek için dene/yakala kullanılabilir.
PlatformMessage
Sıralama, platform tarafından istemciyi VPN oturumu durumu hakkında bilgilendirmek için kullanılır.
Enum
"connected"
VPN yapılandırmasının bağlandığını gösterir.
"disconnected"
VPN yapılandırmasının bağlantısının kesildiğini gösterir.
"error"
VPN bağlantısında bir hata oluştuğunu (ör. zaman aşımı) belirtir. Hatanın açıklaması, onPlatformMessage'a hata bağımsız değişkeni olarak verilir.
"linkDown"
Varsayılan fiziksel ağ bağlantısının kapalı olduğunu gösterir.
"linkUp"
Varsayılan fiziksel ağ bağlantısının yedeklendiğini gösterir.
"linkChanged"
Varsayılan fiziksel ağ bağlantısının değiştiğini (ör. kablosuz->mobil
"suspend"
İşletim sisteminin askıya almaya hazırlandığını, bu nedenle VPN'nin bağlantısını kesmesi gerektiğini belirtir. Uzatmanın, askıya alınmadan önce bu etkinliği alacağı garanti edilmez.
"resume"
İşletim sisteminin devam ettirildiğini ve kullanıcının tekrar giriş yaptığını, bu nedenle VPN'nin yeniden bağlanmayı denemesi gerektiğini belirtir.
UIEvent
Sıralama, platform tarafından onUIEvent
öğesini tetikleyen etkinliği belirtmek için kullanılır.
Enum
"showAddDialog"
VPN istemcisinin kullanıcıya yapılandırma ekleme iletişim kutusunu göstermesini ister.
"showConfigureDialog"
VPN istemcisinin, kullanıcıya yapılandırma ayarları iletişim kutusunu göstermesini ister.
VpnConnectionState
Sıralama, VPN istemcisi tarafından platforma mevcut durumu hakkında bilgi vermek için kullanılır. Bu, kullanıcıya anlamlı mesajlar sağlamaya yardımcı olur.
Enum
"connected"
VPN bağlantısının başarılı olduğunu belirtir.
"failure"
VPN bağlantısının başarısız olduğunu belirtir.
Yöntemler
createConfig()
chrome.vpnProvider.createConfig(
name: string,
callback?: function,
)
Kullanıcının birden fazla giriş oturumunda devam eden yeni bir VPN yapılandırması oluşturur.
Parametreler
-
ad
dize
VPN yapılandırmasının adı.
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(id: string) => void
-
id
dize
Oluşturulan yapılandırma için benzersiz bir kimlik veya hata durumunda
undefined
.
-
İadeler
-
Promise<dize>
Chrome 96 ve sonraki sürümler 'nı inceleyin.Vaatler yalnızca Manifest V3 ve sonraki sürümler için desteklenir. Diğer platformların geri çağırma yapması gerekir.
destroyConfig()
chrome.vpnProvider.destroyConfig(
id: string,
callback?: function,
)
Uzantı tarafından oluşturulan bir VPN yapılandırmasını kaldırır.
Parametreler
-
id
dize
Kaldırılacak VPN yapılandırmasının kimliği.
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:() => void
İadeler
-
Taahhüt<void>
Chrome 96 ve sonraki sürümler 'nı inceleyin.Vaatler yalnızca Manifest V3 ve sonraki sürümler için desteklenir. Diğer platformların geri çağırma yapması gerekir.
notifyConnectionStateChanged()
chrome.vpnProvider.notifyConnectionStateChanged(
state: VpnConnectionState,
callback?: function,
)
VPN oturum durumunu platforma bildirir. Bu işlem yalnızca VPN oturumunun sahibi uzantı olduğunda başarılı olur.
Parametreler
-
durum
VPN istemcisinin VPN oturum durumu.
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:() => void
İadeler
-
Taahhüt<void>
Chrome 96 ve sonraki sürümler 'nı inceleyin.Vaatler yalnızca Manifest V3 ve sonraki sürümler için desteklenir. Diğer platformların geri çağırma yapması gerekir.
sendPacket()
chrome.vpnProvider.sendPacket(
data: ArrayBuffer,
callback?: function,
)
VPN oturumu için oluşturulan tünel üzerinden bir IP paketi gönderir. Bu işlem yalnızca VPN oturumunun sahibi uzantı olduğunda başarılı olur.
Parametreler
-
veri
DiziArabelleği
Platforma gönderilecek IP paketi.
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:() => void
İadeler
-
Taahhüt<void>
Chrome 96 ve sonraki sürümler 'nı inceleyin.Vaatler yalnızca Manifest V3 ve sonraki sürümler için desteklenir. Diğer platformların geri çağırma yapması gerekir.
setParameters()
chrome.vpnProvider.setParameters(
parameters: Parameters,
callback?: function,
)
VPN oturumu için parametreleri ayarlar. Bu, platformdan "connected"
alındıktan hemen sonra çağrılmalıdır. Bu işlem yalnızca VPN oturumunun sahibi uzantı olduğunda başarılı olur.
Parametreler
-
parametreler
VPN oturumu parametreleri.
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:() => void
İadeler
-
Taahhüt<void>
Chrome 96 ve sonraki sürümler 'nı inceleyin.Vaatler yalnızca Manifest V3 ve sonraki sürümler için desteklenir. Diğer platformların geri çağırma yapması gerekir.
Etkinlikler
onConfigCreated
chrome.vpnProvider.onConfigCreated.addListener(
callback: function,
)
Uzantı için platform tarafından bir yapılandırma oluşturulduğunda tetiklenir.
Parametreler
-
geri çağırma
işlev
callback
parametresi şu şekilde görünür:(id: string, name: string, data: object) => void
-
id
dize
-
ad
dize
-
veri
nesne
-
onConfigRemoved
chrome.vpnProvider.onConfigRemoved.addListener(
callback: function,
)
Uzantı tarafından oluşturulan bir yapılandırma, platform tarafından kaldırıldığında tetiklenir.
Parametreler
-
geri çağırma
işlev
callback
parametresi şu şekilde görünür:(id: string) => void
-
id
dize
-
onPacketReceived
chrome.vpnProvider.onPacketReceived.addListener(
callback: function,
)
Uzantının sahip olduğu VPN oturumu için tünel üzerinden bir IP paketi alındığında tetiklenir.
Parametreler
-
geri çağırma
işlev
callback
parametresi şu şekilde görünür:(data: ArrayBuffer) => void
-
veri
DiziArabelleği
-
onPlatformMessage
chrome.vpnProvider.onPlatformMessage.addListener(
callback: function,
)
Uzantının sahip olduğu bir VPN yapılandırmasıyla ilgili platformdan mesaj alındığında tetiklenir.
Parametreler
-
geri çağırma
işlev
callback
parametresi şu şekilde görünür:(id: string, message: PlatformMessage, error: string) => void
-
id
dize
-
mesaj
-
hata
dize
-
onUIEvent
chrome.vpnProvider.onUIEvent.addListener(
callback: function,
)
Uzantı için bir kullanıcı arayüzü etkinliği olduğunda tetiklenir. Kullanıcı arayüzü etkinlikleri, platformdan gelen ve uygulamaya bir kullanıcı arayüzü iletişim kutusunun gösterilmesi gerektiğini bildiren sinyallerdir.