Hubungkan / putuskan sambungan dari VPN dari baris perintah

132

Saya memiliki dua pengaturan VPN di mesin Ubuntu saya, satu menggunakan vpnc dan satu menggunakan PPTP. Keduanya adalah setup menggunakan antarmuka manajer jaringan GNOME dan berfungsi dengan baik. Namun kadang-kadang saya perlu mengakses mesin ini dari jarak jauh - apakah ada cara untuk menghubungkan atau memutuskan sambungan ke VPN ini dari baris perintah?

Air Mancur Tim
sumber
Apakah perintah vpnc yang dirinci di sini tidak bekerja untuk Anda? Juga, ada instruksi untuk mengkonfigurasi dan menghubungkan ke PPTP di sini. Apakah mereka tidak berfungsi?
Kris Harper

Jawaban:

192

Jika Anda ingin berinteraksi dengan NetworkManager dari baris perintah, Anda dapat menggunakan perintah "nmcli".

daftar semua koneksi NM: nmcli con

mulai koneksi (wifi, vpn, dll): nmcli con up id ConnectionName

koneksi bawah: nmcli con down id ConnectionName

(lebih banyak perintah nmcli di halaman nmcli ).


Perhatikan juga bahwa pengguna biasa biasanya tidak memiliki izin untuk mengontrol jaringan. Menggunakan perintah di atas dengan sudoharus berfungsi untuk sebagian besar koneksi, tetapi VPN secara khusus mungkin gagal dengan "Kesalahan: Aktivasi koneksi gagal: tidak ada rahasia VPN yang valid."

Jika itu terjadi pada Anda, kemungkinan kata sandi VPN disimpan di gnome-keyring pengguna Anda, yang membuatnya tidak dapat diakses oleh pengguna root. Komentar ini menjelaskan alasannya.

Untuk memperbaikinya, edit / etc / NetworkManager / system-koneksi / ConnectionName dan di bawahnya [vpn], ubah baris flag kata sandi ke:

password-flags=0

Jika ada garis yang dimulai dengan Xauth password-flags, ubah saja.

Kemudian tambahkan yang berikut di bawah ini [vpn]:

[vpn-secrets]
password=YourPassword

(Jika pada langkah sebelumnya Anda mengubah baris Xauth password-flags, tambahkan Xauth password=...saja.)

Sekarang restart manajer jaringan dengan:

sudo service network-manager restart

Maka memulai koneksi VPN dengan sudo nmcli con up id ConnectionNameakan bekerja tanpa masalah.

ihashacks
sumber
1
Saya berharap ada perintah pemutusan umum yang akan memutuskan VPN apa pun tanpa harus menentukan id-nya. Itu mungkin akan membuat fitur ini (saya ingin) lebih mudah diterapkan.
Lonnie Best
Jika Anda menggunakan ipsec (mis. Vpnc), Anda mungkin juga perlu menambahkan "IPSec secret-flags = 0" dan "IPSec secret = <grouppw>" di tempat masing-masing
Matt
Ini masih belum memperbaiki saya :( Saya menerima pesan "Kesalahan: Aktivasi koneksi gagal: alasan tidak diketahui."
dano
Saya mengambil kembali ... setelah ketiga kalinya saya menjalankan perintah itu berhasil. Waktu 1 gagal dengan cepat. Waktu ke-2 gagal perlahan. Ketiga kalinya bekerja!
dano
2
Hapus PWs teks ?? Benarkah?? Apakah ada yang punya solusi AMAN?
user447607
4

Jawaban ihashacks dengan komentar Matt bekerja untuk saya ... hampir. Harus mengubah satu baris.

baris flag kata sandi saya benar-benar membaca: "Bendera kata sandi Xauth". Jawaban yang diterima tidak akan berfungsi untuk saya sampai saya mengubah yang berikut

[vpn]
...
Xauth password-flag=0
IPSec secret-flags=0

[vpn-secrets]
Xauth password=<my pw> ## This is the one I changed.
IPSec secret=<group pw>

Tidak yakin mengapa koneksi vpn saya memiliki "Xauth" sebelum setiap penyebutan kata sandi.

(Maaf ini adalah jawaban baru, belum dapat memberikan komentar.)

John
sumber
2
Ini untuk beberapa jenis VPN, misalnya, Cisco; sangat membantu untuk kasus ini! Ada kesalahan, meskipun: kasus yang benar dari satu kunci adalah IPSec secret- jika tidak, itu tidak dikenali oleh NM.
Marcus
Terima kasih Marcus, saya telah memperbaiki jawaban saya sehingga tidak ada yang mencoba menyalin / menempel salah ketik.
John