Bağlantı kesildiğinde VPN'ye otomatik olarak yeniden bağlanılsın mı?


16

Ben bir Ubuntu GNOME kullanıcısıyım ve bağlantı kesildiğinde bir VPN'ye otomatik olarak yeniden bağlanmanın bir yolu olup olmadığını merak ediyordum . OpenVPN protokolünü kullanıyorum .

Ağ Yöneticisi'ni iyice kontrol ettim ancak böyle bir seçeneği bulamadım, yalnızca belirli bir WiFi'ye bağlandığında VPN'ye bağlanmak için.

Yanıtlar:


20

18.10'dan itibaren (önceki sürümlerde kontrol edilemez) NetworkManager'daki VPN bağlantılarında, aşağıdakileri yapan bir ayar vpn.persistentvardır: manuel olarak bağlantıyı kesene kadar bağlantı kaybı durumunda bir VPN'ye yeniden bağlanır. "no"Varsayılan olarak ayarlanmıştır ve ne yazık ki ne Gnome Ağ Ayarları'nda ne de nm-bağlantı-düzenleyicide gösterilmez.

Ancak aşağıdaki gibi bir CLI aracılığıyla ayarlayabilirsiniz:

nmcli connection modify <Your VPN connection name> vpn.persistent yes

Bağlantı bunu yapmadan önce olmalı, elbette


2
Bu istediğim budur. Bir milyon teşekkürler
Wyatt8740

Bu ayar kullanılabilir olduğundan, ağ ayarları neden gösterilmiyor? Nerede / nasıl buldun? Developer.gnome.org/NetworkManager/stable/nmcli.html adresinde bundan bahsedilmiyor, ancak komutu çalıştırmak başarılı görünüyor sanırım işe yarıyor ...
Al F

@alf Bu ayarı sadece terminaldeki nmcli'ye atarak bulduğumu düşünüyorum, ancak geliştirici.gnome.org/
NetworkManager/stable/…

19

OpenVPN, ölü bağlantıları otomatik olarak algılamak ve yeniden bağlanmak için yerleşik bir mekanizmaya sahiptir. Ağ Yöneticisi'nde "Bağlantıları Düzenle" ye gidin, VPN bağlantınızı seçin ve "Düzenle" yi seçin. "VPN" sekmesinde "Gelişmiş ..." i tıklayın ve "Genel" Sekmesine gidin. Burada iki alakalı seçeneğiniz var:

"Ping aralığını belirtin" OpenVPN'e bağlantının hala hayatta olup olmadığını ne sıklıkta kontrol edeceğini söyleyin. "Çıkmayı veya yeniden başlatmayı belirtin", eyleme geçmesi için ne kadar bekleyeceğini ve hangi eylemi gerçekleştireceğini belirtir.

Örnek: Ayarlarım "30 / ping-restart / 300" şeklindedir. Bu, OpenVPN'in bağlantı hala aktif olup olmadığını her 30 saniyede bir kontrol ettiği anlamına gelir. Bağlantı 300 saniye boyunca kesilirse, yeniden başlatma başlatır.

Bu şekilde harici komut dosyalarına gerek kalmaz ...


1
Bu kabul edilen cevap olmalı.
necbot

5
Bu en azından Ubuntu 18.04 için geçerli değil. Ping aralığı ve ping-restart var ama yine de kendini devre dışı bırakacak.
Görünen Ad

@SargeBorsch: m0NKey bR4in tarafından cevap çalışması (ayar görünüyor vpn.persistentiçin yes).
kontextify

1

Biraz kazdıktan sonra bu cevabı buldum , test ettim (Ubuntu GNOME 15.04'te) ve şimdiye kadar çalışıyor gibi görünüyor.

Ekleyebileceğim tek şey, komut dosyası oluşturulduktan sonra mutlaka / home klasörünüze kaydedilmesi gerekmemesidir. İstediğiniz yere kaydedebilir, yürütülebilir hale getirebilir ve başlangıç ​​programları listesine ekleyebilirsiniz.


0

Bir SMOP (Basit Programlama Meselesi) olduğunu iddia ettikten sonra, "Link Down" ı izleyen bir bash betiği yazdım, sonra bir kullanıcı betiği çalıştırdım. Daha az CPU kullanımı, while true....sleep 30yönteme göre daha duyarlı . Cevabımı burada gör . "Dönen WiFi bağlantıları" ile ilgili, ancak muhtemelen sizin için de işe yarayacak


0

bu komut dosyası artık çalışmayan 16.04'te nmcli con statusçalışacaktır:

#!/bin/bash
CON="purple"
STATUS=`nmcli con show --active | grep purple | cut -f1 -d " "`
if [ -z "$STATUS" ]; then
    nmcli con up $CON
fi

Biraz daha kısa STATUS="$(nmcli con show -f name | grep purple)". Veya sadece gerçek bağlantının etkin olup olmadığını kontrol edebilirsiniznmcli con show --active id 'purple'
smac89

0

Bence diğer cevaplara dayalı tam cevap aşağıdaki gibidir:

#!/bin/bash +x
  while [ "true" ]
   do
        CON="Your-VPN-Name"
        STATUS=`nmcli con show --active | grep $CON | cut -f1 -d " "`
        if [ -z "$STATUS" ]; then
                echo "Disconnected, trying to reconnect..."
                (sleep 1s && nmcli con up $CON)
        else
                echo "Already connected !"
        fi
        sleep 30
   done
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.