Cara terhubung secara otomatis ke VPN dengan Network-Manager


17

Saya memiliki koneksi VPN yang berfungsi. Sekarang saya ingin koneksi VPN ini aktif secara otomatis ketika saya berada di jaringan nirkabel tertentu. Apakah ada cara grafis non-intrusif menggunakan network-manager-applet? Jika saya ingat dengan benar itu bekerja untuk sementara waktu dan tidak lagi.

Saya membuat koneksi nirkabel yang dipermasalahkan tersedia untuk semua pengguna karena tidak harus memasukkan kata sandi setiap waktu.

Program CLI yang digunakan adalah vpnc dengan Hybrid-Auth enabled (cisco VPN-client compatible) dari sroecker's PPA

EDIT: Saya dapat 'mencoba jawaban lagi (karena eduroam) dan karena tidak ada jawaban yang tampaknya mendapatkan suara terbanyak, saya hanya akan membiarkannya tidak dijawab untuk saat ini sampai ada yang ter-upgrade maka saya akan menerimanya.


bagaimana kabarmu?
rlemon

Saya tidak membutuhkannya untuk waktu yang lama sekarang. Mungkin datang pada bulan april di universitas baru.
turbo


@ fossfreedom bukan duplikat persis karena pertanyaan saya adalah tentang vpnc daripada openconnect.
turbo

Saya menulis posting blok pendek tentang cara memblokir koneksi internet Anda kecuali VPN sudah aktif: mentat.za.net/blog/2015/01/24/vpn-only-internet
Stefan van der Walt

Jawaban:


18

Solusi yang disarankan oleh con-f-useharus bekerja tetapi tidak, karena bug lama:

https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/280571

Ada beberapa solusi meskipun. Untuk versi NetworkManager terbaru, ada utitility commandline,, nmcliyang dapat diedit dan disimpan sebagai sesuatu seperti /etc/NetworkManager/dispatcher.d/vpn-up:

#! /bin/bash

REQUIRED_CONNECTION_NAME="<name-of-connection>"
VPN_CONNECTION_NAME="<name-of-vpn-connection>"


activ_con=$(nmcli con status | grep "${REQUIRED_CONNECTION_NAME}")
activ_vpn=$(nmcli con status | grep "${VPN_CONNECTION_NAME}")
if [ "${activ_con}" -a ! "${activ_vpn}" ];
then
    nmcli con up id "${VPN_CONNECTION_NAME}"
fi

[Saya belum menguji ini - jangan ragu untuk menguji dan mengedit sesuai hasil]

Lihat: https://wiki.archlinux.org/index.php/NetworkManager#Use_dispatcher_to_connect_to_a_vpn_after_a_network-connection_is_established memiliki info lebih lanjut.


perhatikan bahwa pada 13.04 saya harus meletakkan skrip itu di /etc/network/if-up.d dan memperbaiki / etc / NetworkManager / system-koneksi / koneksi-nama sesuai dengan askubuntu.com/questions/198136/… untuk menghindari "Tidak kesalahan VPN rahasia "valid
OlegYch

Retas wiki Arch benar-benar berfungsi! Saya mencoba skrip pada wiki lengkung pada 11 Juli 2013, dan memodifikasinya dari 'nmcli ...' menjadi 'su [pengguna] -c "nmcli ..."' tidak berfungsi! ikuti instruksi seperti di wiki dan jangan lupa chmod + x;) tepuk tangan!

Bug yang disebutkan oleh Hugo Eden ( bugs.launchpad.net/ubuntu/+source/network-manager/+bug/280571 ) telah diperbaiki di hulu lebih dari 5 bulan lalu. Namun, saya masih mengalaminya di Precise ... Apa yang terjadi?
iGadget

Ini tidak bekerja untuk saya, jadi saya memutuskan untuk melihat ke dalam /var/log/syslog, dan melihat kesalahan berikut: Mar 4 13:49:51 oleg-HP nm-dispatcher.action: Cannot execute /etc/NetworkManager/dispatcher.d/vpn-up ': tidak dapat dieksekusi oleh pemilik.` Solusinya adalahsudo chmod 755 /etc/NetworkManager/dispatcher.d/vpn-up
Oleg Belousov

8

Di Ubuntu Trusty 14,04 VPN auto connect store pada GUI pada pengaturan wi-fi yang tersimpan secara individual. Pengaturan sistem - Jaringan - periksa Wi-Fi atau Lan yang tertarik - Pengaturan (tab Umum) - pilih "Sambungkan otomatis ke VPN ..."


3

Jika saya ingat dengan benar itu bekerja untuk sementara waktu dan tidak lagi.

  • Ini mungkin jelas, tetapi kadang-kadang saya tidak memikirkannya. Apakah Anda mencoba menginstal ulang seperti:

    sudo apt-get purge network-manager-vpn sudo apt-get install network-manager-vpnc Kemudian: masukkan deskripsi gambar di sini

Sekarang saya ingin koneksi VPN ini aktif secara otomatis ketika saya berada di jaringan nirkabel tertentu.

  • Ada cara untuk menekan "tidak dapat terhubung" -jenis pesan ketika pengguna Anda berada di jaringan yang salah, tetapi tidak bisa mengingat bagaimana hasilnya. Saya tidak melihat cara lain untuk terhubung secara otomatis dengan cara grafis. Mungkin Anda harus menulis skrip yang melakukan koneksi ketika di kata wlan-network.

Harapan itu membantu.


Saya masih belum datang untuk benar-benar menguji ini. Saya akan menandainya menjawab kapan saya mau. Janji.
turbo

dalam pengalaman saya ini tidak benar-benar berfungsi. Saya percaya ini menjadi bug di NetworkManager
Conor Rynne

3
Yap ini rusak, bahkan di Precise. Itu tidak terhubung secara otomatis O_o
eggonlegs

Yup - rusak. Tidak berfungsi (Ubunutu 12.04).
user48956

3

Saya dapat mengkonfirmasi solusi berikut ini berfungsi untuk saya. Saya menjalankan Ubuntu 14.04 LTS.

Saya pergi ke ikon shutdown dan kemudian pengaturan sistem.

Ketika layar pengaturan terbuka, saya pergi ke 'Jaringan' dan jaringan WiFi yang dengannya saya terhubung. Ada panah kecil di satu sisi nama jaringan.

Tangkapan layar pengaturan, ini dalam bahasa Arab

Klik ikon itu dan Anda akan melihat opsi yang disebut "pengaturan" atau "opsi" (atau yang serupa) di sini:

Klik pengaturan

Ketika jendela berikutnya terbuka, cukup buka tab 'Umum' dan Anda akan melihat opsi yang memberi Anda opsi untuk terhubung secara otomatis ke VPN. Pilih VPN yang ingin Anda sambungkan saat terhubung ke WiFi ini, dan booming! Setiap kali Anda terhubung ke jaringan ini, Ubuntu juga akan menghubungkan Anda ke VPN itu. :)

Bagi saya ini berfungsi. Saya harap ini bekerja untuk semua orang juga. Tidak memerlukan editor teks atau editor kode apa pun atau apa pun ..


0

Gunakan skrip Python berikut, Gist # 1547663 .

Parameter pertama ke skrip adalah nama koneksi VPN di NetworkManager dan yang kedua adalah nama jaringan yang dipisahkan koma yang harus diabaikan (mis. Menggunakan koneksi VPN di rumah tidak berguna).

Contoh untuk menginstal dan menjalankannya saat boot:

git clone git://gist.github.com/1547663.git /home/user/autovpn/
echo "python /home/user/autovpn/autovpn.py 'myvpn' 'Auto homenetwork,Auto worknetwork' > /var/log/autovpn.log&" > /etc/rc.local
/etc/rc.local

Sekarang jika Anda terhubung ke jaringan (baik wifi atau ethernet), itu juga akan mencoba mengatur koneksi VPN.


1
Saya pikir pendekatan ini kurang elegan, karena proses latar belakang aktif untuk ini sepanjang waktu, sementara itu bisa menjadi event-driven seperti pada jawaban @hugoheden.
gertvdijk

Ia melakukan lebih dari jawabannya: ia juga menangani koneksi ulang VPN dan kasus-kasus di mana pengguna secara manual menonaktifkan koneksi vpn (yang berarti seharusnya tidak mencoba menghubungkan kembali VPN dalam kasus itu)
iElectric

0

Anda tidak memerlukan skrip dispatcher lagi! Di 14,04 (Trusty Tahr) Anda hanya perlu mengambil langkah-langkah berikut setelah mengatur opsi koneksi otomatis di GUI NetworkManager.

Simpan vpn-secrets secara jelas dalam file konfigurasi untuk koneksi VPN di bawah /etc/NetworkManager/system-connections/YourVPNConnectionName .

Anda dapat mencapai ini dengan mengatur IPSec secret-flags=0dan Xauth password-flags=0dalam file konfigurasi. Lalu pergi ke NetworkManager GUI dan simpan kembali pengaturan koneksi VPN Anda. Sekarang bagian yang disebut [vpn-secrets] harus ada dalam file konfigurasi. Periksa dua kali dan autoconnection akan berfungsi sekarang!


0

Meskipun halaman manual berisi nmcli con statusperintah yang valid, solusi di atas disediakan dengan Hugo Hedenmengembalikan kesalahan"Error: Object 'status' is unknown, try 'nmcli help'"

Saya menggunakan nmcli 1.2.2 ( nmcli -v) dan saya telah menguji dan memodifikasi yang berikut untuk /etc/NetworkManager/dispatcher.d/vpn-updan itu bekerja seperti pesona.

#! /bin/bash

REQUIRED_CONNECTION_NAME="<name-of-connection>"
VPN_CONNECTION_NAME="<name-of-vpn-connection>"


default_conn=$(nmcli con show --active | grep "${REQUIRED_CONNECTION_NAME}")
vpn_conn=$(nmcli con show id | grep "${VPN_CONNECTION_NAME}")
if [ "${default_conn}" -a ! "${vpn_conn}" ];
then
    nmcli con up id "${VPN_CONNECTION_NAME}"
fi

Catatan: Anda dapat menggunakan nmcli con showuntuk melihat semua nama koneksi karena tidak selalu sama dengan apa yang tercantum dalam GUI Sambungan Jaringan


OP bertanya tentang Ubuntu.
fosslinux

Kali dan Ubuntu sama-sama berbasis Debian sehingga solusinya sering sama. Saya hanya melanjutkan dan menguji ini pada Ubuntu 15.10 misalnya dan kesalahan nmcli adalah sama seperti yang saya sebutkan di atas. Solusinya sama saja. Versi nmcli yang diinstal pada kotak 15.10 adalah 1.0.4.
jw00druff

0

Jika Anda lebih suka terminal, Anda dapat menggunakan nmcli, saya melakukannya dengan menggunakan perintah berikut:

Pertama, temukan dan buka koneksi VPN yang ingin Anda perbarui

➜  ~ nmcli c show --active |grep vpn
MyVPN           115ae594-aa91-4d13-8c92-421af245f935  vpn     wlp61s0         
➜  ~ nmcli c edit MyVPN

Ini akan membuka prompt nmcli, dari sini Anda dapat menanyakan nilai dan mengaturnya, seperti ini:

===| nmcli interactive connection editor |===
...
nmcli> print connection.autoconnect
connection.autoconnect: no
nmcli> set connection.autoconnect yes
nmcli> save persistent
Saving the connection with 'autoconnect=yes'. That might result in an immediate activation of the connection.
Do you still want to save? (yes/no) [yes] yes
Connection 'MyVPN' (115ae594-aa91-4d13-8c92-421af245f935) successfully updated.

Dan Anda harus selesai!


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.