VPN Otomatik Bağlantı


39

Gnome ile Ubuntu 13.04 kullanıyorum ve son zamanlarda (açık) bir VPN kurdum. Varsayılan olarak etkinleştirmek için herhangi bir yolu var mı? Bağlantımı her başlattığımda veya hatta kaybetsem, VPN'yi manuel olarak etkinleştirmem gerekiyor. Kaçırdığım bir seçenek var mı?

Yanıtlar:


66

Ağ Yöneticisi göstergesi nm-applet'i (varsayılan olarak yüklenen GNOME veya Unity ağ tepsisi uygulaması) aracılığıyla, NetworkManager'ı bir ağ bağlandığında otomatik olarak bir VPN'ye bağlanacak şekilde yapılandırabilirsiniz.

  1. Ağ tepsisi uygulamasını tıklayın ve "Bağlantıları düzenle ..." seçeneğini tıklayın veya çalıştırın nm-connection-editor.
  2. Bir ağ bağlantısı seçin ve "Düzenle" yi tıklayın.
  3. "Bu bağlantıyı kullanırken otomatik olarak VPN'e bağlan" seçeneğini işaretleyin ve açılır listeden istediğiniz VPN'i seçin.
  4. Kayıt etmek.

nm-connection-editor ekran görüntüsü


Bu etkinleştirildiğinde, NetworkManager'da "bu ağa otomatik olarak bağlan" işlevini kırabilecek bir hata var . ( Düzenleme : bu hata şimdi Ubuntu 16.04'te "düzeltme yayımlandı" olarak işaretlendi). NetworkManager otomatik olarak bağlanmaya çalışır ve başarısız olursa, aşağıdaki gibi bir satır göreceksiniz /var/log/syslog:

<error> [1401130450.367538] [nm-vpn-connection.c:1374] get_secrets_cb(): Failed to request VPN secrets #2: (6) No agents were available for this request.

NetworkManager kullanıcının VPN şifresini alamadığı anlaşılıyor gnome-keyring-daemon. Çözümlerden biri, NetworkManager'ın parolanızı yapılandırma dosyasında düz metin olarak saklamasına izin vermektir /etc/NetworkManager/system-connections/. Bunu yapmak için:

  1. Bir terminal aç.
  2. sudoedit /etc/NetworkManager/system-connections/<VPN>VPN'iniz <VPN>için yapılandırma dosyası nerede (dosya adı genellikle VPN'inize atadığınız addır).
  3. Çizgiyi olarak password-flags=1değiştirpassword-flags=0
  4. Kaydet ve çık.

NetworkManager şimdi VPN şifresini kendisi saklayacak ( man nm-settingsayrıntılar için bakınız) ve otomatik ağ bağlantısı bir kez daha çalışacaktır.


5
GNOME ağ yöneticisinde yoktur.
Paul Woitaschek

4
Açarken genel sekmesinde nm-connection-editorbir bağlantı düzenlerken bunu bulabilirsiniz .
Lode

1
Bu, bağlantının kendisinin benim için otomatik olarak bağlanmamasına neden olur. Bunun herhangi bir çözümü var mı?
Tamás Barta

@Barta Bu NetworkManager'da bir hatadır. Cevabım için bir geçici çözüm ekledim.
Vincent Yu,

8

Vpnautoconnect bir göz atın.

vpnautoconnect, ağ yöneticisi ile bir vpn oluşturduğunuzda (otomatik olarak yeniden bağlanmanıza izin veren) bir servistir. Çok hızlı bir şekilde yeniden bağlanabilir ve bant genişliğini izleyebilir, pptp ve openvpn bağlantısı ile çalışır.

Daha fazla bilgi ve indirmek için Web sitesini ziyaret edin .

Bunu da dene:

AUTOSTART özelliğini kullanın. /etc/default/openvpn

Veya

VPN bağlantınızın UUID'sini bulun.

nmcli con list | grep -i vpn

UUID; harfler, sayılar ve kısa çizgiler içeren ikinci sütundur.

Bağlantıyı bir terminalde başlatın. Terminal'i açmak için klavyenizdeki Ctrl+ Alt+ tuşlarına basın T. Açıldığında, aşağıdaki komutları çalıştırın:

nmcli con up uuid <put you UUID here>

Bunu başlangıçta çalışacak şekilde ayarlayın.

Dash seçeneğine gidin, Başlangıç ​​Uygulamaları'nı seçin, Ekle'yi tıklayın ve yukarıdaki nmcli komutunu ekleyin (UUID ile). "Ekle" ye tıklayın. Adına, kullanmak istediğiniz adı yazın ve Komut'ta tüm nmcli satırını yukarı koyun. Tekrar "Ekle" yi tıklayın. Şimdi, yeniden başlat ve dene.

Kaynak: SourceForge


Yükledim ve yapılandırdım, bilgisayarımı yeniden başlattım, ancak çalışmıyor.
Paul Woitaschek

Cevabımda biraz daha bilgi ekledim.
Mitch

Herhangi bir dokümantasyon var vpnautoconnectmı? Web siteleri terk edilmiş bir SourceForge proje sayfası ve pakette man sayfaları sunulmuyor. Zor, gelecek vaat eden geliyor.
Tamás Barta

Hiçbir şey bulamıyorum, ama aramaya devam edeceğim.
Mitch

Eylem listesi yeniden adlandırıldı gösterisi 15.04 veya 15.10
Croll

2

Bu makaledeki betiği incelemenizi tavsiye ederim :

#!/bin/bash

# YourVPN here is the name of desired vpn connection to monitor
# edit this line:
##################
VPNNAME=YourVPNUUID
# enter desired time between checks here (in seconds)
SLEEPTIME=15
##################

nice=0

for (( ; ; )); do

# creating infinite loop

tested=$(nmcli con status uuid $VPNNAME | grep -c UUID)
#possible results:
# 0 - no connection - need to start
# 1 - working connection, continue.

case $tested in
"0")
echo "Not connected - starting"

#increase nice counter
nice=$[nice+1]

#if "nice start" fails for 3 times
if [ $nice -ge 3 ];
then
#TRY to knock hard way, resetting the network-manager (sometimes it happens in my kubuntu 12.04).
      echo "HARD RESTART!"
      nmcli nm enable false
      nmcli nm enable true
      sleep 5
      nmcli con up uuid $VPNNAME
      nice=0
else
#not yet 3 falures - try starting normal way
      echo "trying to enable."
      nmcli con up uuid $VPNNAME
fi

;;

"1")
echo "VPN seems to work" 

;;
esac

sleep $SLEEPTIME

done

YourVPNUUID$ VPNNAME için değeri bulmak için aşağıdakini çalıştırın;

nmcli con list | grep -i vpn

2

vpnautoconnect benim için 12.04 LTS'de işe yaramadı ve tek kişi gibi görünmüyorum.

Onu biraz araştırdım ve ilk bash betiğimi yapmak için varolan bazı kodları birleştirdim. Belirli bir VPN bağlantısının etkin olup olmadığını kontrol eder ve değilse bağlar. Bağlanırsa, belirli bir süre, örneğin 1 dakika uyuyacak ve süresiz olarak işlemi tekrar edecektir.

#! /bin/bash

while true
do
   connection="Auto Ethernet"
   vpn_connection="My VPN connection"
   run_interval="60"

   active_connection=$(nmcli dev status | grep "${connection}")
   active_vpn=$(nmcli dev status | grep "${vpn_connection}")

   if [ "${active_connection}" -a ! "${active_vpn}" ];
   then
      nmcli con up id "${vpn_connection}"
   fi

   sleep $run_interval
done

Talimatlar:

  1. Vpn-auto-connector.sh adında boş bir metin dosyası oluşturun (Ana klasörüme kaydettim. Dosyayı sağ tıklayın ve Özellikler-> İzinler'i seçin ve "Dosyayı program olarak çalıştırmaya izin ver" i işaretleyin. (Dosyayı kaydetmeniz gerekebilir) başka bir yerde ve / veya bilgisayarınızda birden fazla kullanıcı varsa, okuma / yazma / inceleme izinlerini de değiştirin.)

  2. Kodu yukarıdan oluşturduğunuz dosyaya kopyalayın. Aşağıdaki üç değişkenin değerlerini değiştirin:

    bağlantı = "Otomatik Ethernet"

    vpn_connection = "VPN bağlantım"

    run_interval = "60"

    Şebeke yöneticisini açarak bulunabilirler. Benim durumumda bağlantım = "Otomatik Ethernet" benim aktif kablolu bağlantım (kablosuz ile test edilmemiş) ve vpn_connection = "VPN bağlantım", VPN bağlantımın adı. run_interval = "60", betiğin ne zaman tekrarlanacağı saniye cinsinden zaman aralığıdır.

  3. Uygulamalar-> Sistem Araçları-> Tercihler-> Başlangıç ​​Uygulamaları 'nı açın. "VPN Otomatik Konektör" gibi uygun bir ad ekleyin ve komut için daha önce kaydettiğiniz .sh dosyasını seçin. Şimdi bash betiği başlangıçta çalışacak ve VPN bağlantısının aktif olup olmadığını kontrol etmeye devam edecektir. VPN bağlantısını keserek deneyebilirsiniz ve otomatik olarak tekrar etkinleştirilmesi gerekir.


Çok teşekkürler. Bu betiğin anlaşılması kolaydır.
Evan Hu,

0

Vpnautoconnect , Ubuntu 12.04, 13.04 ve 13.10’da iyi çalışıyor (Bence 13.10’da , Ağ Yöneticisi’ndeki "otomatik olarak bağlan" seçeneğinin düzeltildiğini ve şimdi çalıştığını düşünüyorum)

Açık bir vpn bağlantısı oluşturmak için Network Manager'ın açılır menüsünde "openvpn" seçeneğini bulamazsanız, kurmakta ya da çalıştırmakta sorun yaşıyorsanız veya "openvpn" seçeneğini bulamıyorsanız, adımları çok net ve uygulaması kolaydır.

BURAYA bir göz atın

Ve bana haber ver :-)


0

İşte olacak çok sağlam ve güvenilir bir komut dosyası:

  • Herhangi bir VPN'e bağlı olup olmadığınızı kontrol edin
  • Eğer değilse, en son kullanılan VPN'e bağlanın

Bu özellikle, yeniden bağlanmak için tek bir VPN bağlantısı belirtmeniz gerekmediğinden farklı VPN'lere düzenli olarak bağlanmanız durumunda kullanışlıdır.

#!/bin/bash

nmcli --mode multiline --fields uuid,vpn connection status | grep -qc "^VPN:.*yes" 1>/dev/null 2>&1

if [ $? -ne 0 ]; then
        last_vpn_uuid=`nmcli --mode tabular --fields uuid,type,timestamp connection list | grep -E "\s+vpn\s+" | sort -k3 -nr | head -n1 | awk '{ print $1 }'`

        nmcli connection up uuid "$last_vpn_uuid"
fi

Bu gerçekten ilginç, ancak birkaç hata veriyor: $ nmcli -version nmcli aracı, versiyon 0.9.10.0 $ lsb_release - a LSB modülü yok. Dağıtıcı ID: Ubuntu Açıklama: Ubuntu 15.04 Yayınlama: 15.04 Kod Adı: canlı
gare

0

Birkaç makinede Ubuntu 14.04 LTS'deyim. Bu nedenle, bazı özel önkoşullarım var:

  1. Şifreyi şifre yöneticisine kaydetmek istemiyorum
  2. Ağ bağlantısı yeniden VPN'i kaybeden bir VirtualBox konuğu kullanıyorum
  3. Parola diyaloğu yeniden bağlanmada birden çok kez açılıyor
  4. Yedek VPN sunucusu kullanıyorum (yerine çalışma)
  5. Kullanıcılarım için bir yapılandırma dosyası kullanma

Bu çok kanıtlanmış ve çok güvenilir senaryo ile çalışıyorum:

Ancak - geçici olarak çözebileceğim ağ yöneticisi uygulaması olan bazı uyarılar var (makalenin Sorun Giderme bölümüne bakın).

vpnautoconnect benim için çalışmıyor.


0

@vincentYo adlı kullanıcının yanıtı dümdüz görünüyor, ancak yapamadım, bu yüzden aşağıdaki gibi yaptım.

step1: bir kabuk betiği oluşturun ve vpn komutu ekleyin

vim Instagram Hesabındaki Resim ve Videoları auto_vpn.sh

#!/bin/sh vpnc --enable-1des

Adım 2: bir sudoer dosyası aç ve çekirdeğe bu dosya için şifre sormamasını söyle.

sudo vim / etc / sudoers

Bu dosyanın içindeki öğelerin çoğu yorumlanacak, aşağıdakine benzer

kullanıcı adı ALL = (root) NOPASSWD: your_shell_script.sh

örnek:

sharath ALL = (kök) NOPASSWD: /home/sharath/workspace/work/src/auto_vpn.sh

step3: bu kabuk betiğini tetikleyecek bir cron işi ayarlayın, cron işinin altında her dakika çalışacak (bcz internetim sürekli açık kalsın, yani her dakika)

* * * * * sudo / home / sharath/workspace/work/src/auto_vpn.sh

Bunu birçok gün kullanıyorum, ubuntu'da çalışıyorum 16.04 LTS ..Chears !!

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.