Koneksi Otomatis VPN

39

Saya menggunakan Ubuntu 13,04 dengan Gnome dan saya baru-baru ini mengatur VPN (terbuka). Apakah ada cara untuk mengaktifkannya secara default? Setiap kali saya boot atau bahkan kehilangan koneksi saya, saya harus mengaktifkan VPN secara manual. Apakah ada opsi yang saya lewatkan?

Paul Woitaschek
sumber

Jawaban:

66

Melalui indikator Network Manager nm-applet (applet baki jaringan GNOME atau Unity diinstal secara default), Anda dapat mengkonfigurasi NetworkManager untuk secara otomatis terhubung ke VPN ketika jaringan terhubung.

  1. Klik applet baki jaringan dan klik "Edit koneksi ...", atau jalankan nm-connection-editor.
  2. Pilih koneksi jaringan dan klik "Edit ..."
  3. Centang "Sambungkan secara otomatis ke VPN saat menggunakan koneksi ini" dan pilih VPN yang diinginkan dalam daftar drop-down.
  4. Menyimpan.

tangkapan layar nm-connection-editor


Ketika ini diaktifkan, ada bug di NetworkManager yang dapat merusak fungsi "secara otomatis terhubung ke jaringan ini". ( Sunting : bug ini sekarang telah ditandai sebagai "perbaikan dirilis" di Ubuntu 16.04). Jika NetworkManager mencoba terhubung secara otomatis dan gagal, Anda akan melihat baris seperti berikut ini di /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.

Tampaknya NetworkManager gagal mendapatkan kata sandi VPN pengguna dari gnome-keyring-daemon. Salah satu solusinya adalah membiarkan NetworkManager menyimpan kata sandi dalam plaintext dalam file konfigurasi /etc/NetworkManager/system-connections/. Untuk melakukan ini:

  1. Buka terminal.
  2. sudoedit /etc/NetworkManager/system-connections/<VPN>, di mana <VPN>file konfigurasi untuk VPN Anda (nama file biasanya nama yang Anda tetapkan untuk VPN Anda).
  3. Ubah baris password-flags=1kepassword-flags=0
  4. Simpan dan keluar.

NetworkManager sekarang akan menyimpan kata sandi VPN itu sendiri (lihat man nm-settingsdetailnya), dan autoconnect jaringan akan berfungsi sekali lagi.

Vincent Yu
sumber
5
Itu tidak ada di manajer jaringan gnome.
Paul Woitaschek
4
Saat membuka nm-connection-editorAnda dapat menemukan ini saat mengedit koneksi di tab umum .
Lode
1
Ini menyebabkan koneksi itu sendiri tidak terhubung secara otomatis untuk saya. Apakah ada solusi untuk ini?
Tamás Barta
@Barta Itu adalah bug di NetworkManager. Saya telah menambahkan solusi untuk jawaban saya.
Vincent Yu
8

Lihatlah vpnautoconnect.

vpnautoconnect adalah daemon yang memungkinkan Anda untuk terhubung kembali secara otomatis (saat startup juga) sebuah vpn dibuat dengan manajer jaringan. Ini dapat terhubung kembali dengan sangat cepat dan memonitor bandwith, Ini bekerja dengan koneksi pptp dan openvpn.

Untuk info lebih lanjut, dan untuk mengunduh, kunjungi Situs web .

Coba ini juga:

gunakan fitur AUTOSTART di /etc/default/openvpn

Atau

Cari tahu UUID koneksi VPN Anda.

nmcli con list | grep -i vpn

UUID adalah kolom kedua dengan huruf, angka, dan garis putus-putus.

Mulai koneksi di terminal. Cukup tekan Ctrl+ Alt+ Tdi keyboard Anda untuk membuka Terminal. Saat terbuka, jalankan perintah di bawah ini:

nmcli con up uuid <put you UUID here>

Setel ini untuk dijalankan saat start-up.

Pergi ke Dash, ketik dan pilih Startup Applications, klik Add, dan tambahkan perintah nmcli di atas (dengan UUID). Klik "Tambah". Dalam nama ketik apa nama yang ingin Anda gunakan, dan di Command taruh seluruh baris nmcli di atas. Klik "Tambahkan" lagi. Sekarang, reboot dan coba.

Sumber: SourceForge

Mitch
sumber
Saya menginstal dan mengkonfigurasinya, mem-boot ulang komputer saya tetapi tidak berfungsi.
Paul Woitaschek
Saya telah menambahkan beberapa info dalam jawaban saya.
Mitch
Apakah ada dokumentasi yang tersedia untuk vpnautoconnect? Situs web mereka adalah halaman proyek SourceForge yang ditinggalkan, dan paket itu tidak menyediakan halaman manual. Sulit kedengarannya menjanjikan.
Tamás Barta
Saya tidak dapat menemukan apa pun, tetapi saya akan terus mencari.
Mitch
Daftar tindakan telah diubah namanya untuk ditampilkan di 15.04 atau 15.10
Croll
2

Saya akan merekomendasikan memeriksa skrip dalam artikel ini :

#!/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

Untuk mengetahui nilai YourVPNUUID$ VPNNAME, jalankan saja yang berikut;

nmcli con list | grep -i vpn
rhoover
sumber
2

vpnautoconnect tidak berfungsi untuk saya dalam 12,04 LTS, dan sepertinya saya bukan satu-satunya.

Saya meneliti sedikit dan menggabungkan beberapa kode yang ada untuk membuat skrip bash pertama saya. Ia memeriksa apakah koneksi VPN yang diberikan aktif, dan akan terhubung jika tidak. Jika terhubung, ia akan tidur selama waktu tertentu, misalnya 1 menit, dan ulangi proses tanpa batas.

#! /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

Instruksi:

  1. Buat file teks kosong bernama mis vpn-auto-connector.sh (saya menyimpannya di folder rumah saya. Klik kanan file dan pilih Properties-> Izin dan centang "Izinkan mengeksekusi file sebagai program". (Anda mungkin harus menyimpan file tersebut di tempat lain dan / atau ubah izin baca / tulis / execture juga jika komputer Anda memiliki banyak pengguna.)

  2. Salin kode dari atas ke file yang Anda buat. Ganti nilai dari tiga variabel berikut:

    connection = "Auto Ethernet"

    vpn_connection = "Koneksi VPN saya"

    run_interval = "60"

    Mereka dapat ditemukan dengan membuka manajer jaringan. Dalam kasus saya koneksi = "Auto Ethernet" adalah koneksi kabel aktif saya (belum diuji dengan nirkabel) dan vpn_connection = "Koneksi VPN saya" adalah nama koneksi VPN saya. run_interval = "60" adalah interval waktu dalam detik untuk kapan harus mengulangi skrip.

  3. Buka Aplikasi-> Alat Sistem-> Preferensi-> Aplikasi Startup. Tambahkan nama yang sesuai, mis. "VPN Auto Connector", dan untuk perintah pilih file .sh yang Anda simpan sebelumnya. Sekarang skrip bash akan berjalan saat startup dan akan terus memeriksa apakah koneksi VPN aktif. Anda dapat mencobanya dengan memutuskan koneksi VPN dan itu harus diaktifkan secara otomatis lagi.

PinkMistGenerator
sumber
Terima kasih banyak. Script ini mudah dimengerti.
Evan Hu
0

Vpnautoconnect berfungsi dengan baik di Ubuntu 12.04, 13.04 dan 13.10 (saya pikir di 13.10 opsi "hubungkan secara otomatis" di Network-Manager telah diperbaiki dan berfungsi sekarang)

Jadi, jika Anda memiliki masalah untuk menginstalnya atau membuatnya bekerja, atau tidak menemukan opsi "openvpn" di menu drop-down Network-Manager untuk membuat koneksi vpn terbuka, Anda dapat mengikuti tuto ini, yang memberi Anda Semua langkah-langkahnya, sangat jelas dan mudah diterapkan.

Lihat DI SINI

Dan beri tahu saya :-)

Kantung
sumber
0

Berikut ini adalah skrip yang sangat kuat dan andal yang akan:

  • Periksa apakah Anda terhubung ke VPN apa pun
  • Jika tidak, sambungkan ke VPN terbaru yang aktif

Ini sangat berguna jika Anda secara rutin terhubung ke VPN yang berbeda karena Anda tidak harus menentukan satu koneksi VPN untuk menyambung kembali.

#!/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
Tamu
sumber
Ini sangat menarik, tetapi ada beberapa kesalahan pada: $ nmcli -version nmcli tool, versi 0.9.10.0 $ lsb_release -a Tidak ada modul LSB yang tersedia. ID Distributor: Ubuntu Keterangan: Ubuntu 15.04 Rilis: 15.04 Codename: vivid
gare
0

Saya di Ubuntu 14,04 LTS pada beberapa mesin. Karena kenyataan, bahwa saya memiliki beberapa prasyarat khusus:

  1. Saya tidak ingin menyimpan kata sandi di pengelola kata sandi
  2. Saya menggunakan tamu VirtualBox yang kehilangan VPN pada koneksi ulang jaringan
  3. Dialog kata sandi terbuka beberapa kali saat terhubung kembali
  4. Saya menggunakan server VPN cadangan (failover)
  5. Menggunakan file konfigurasi untuk uuids saya

Saya bekerja dengan skrip yang sangat terbukti dan sangat andal ini:

Namun - ada beberapa peringatan dengan applet pengelola jaringan yang dapat saya selesaikan sementara waktu (lihat bagian Pemecahan Masalah artikel).

vpnautoconnect tidak berfungsi untuk saya.

apos
sumber
0

jawaban oleh @vincentYo terlihat lurus ke depan, tetapi saya tidak bisa menyelesaikannya, jadi saya telah melakukan seperti di bawah ini.

langkah1: buat skrip shell dan tambahkan perintah vpn

vim auto_vpn.sh

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

step2: buka file sudoer dan beri tahu kernel untuk tidak meminta kata sandi untuk file ini.

sudo vim / etc / sudoers

sebagian besar hal dalam file ini akan dikomentari, cukup tambahkan seperti di bawah ini

username ALL = (root) NOPASSWD: your_shell_script.sh

contoh:

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

step3: mengatur pekerjaan cron, yang akan memicu skrip shell ini, di bawah tugas cron akan berjalan setiap menit (bcz internet saya terus-menerus mati, jadi setiap menit)

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

saya menggunakan ini dari beberapa hari, bekerja dengan baik di ubuntu 16.04 LTS ..Chears !!

Sharath BJ
sumber