Підключіть / відключіть від VPN від командного рядка


131

У мене є два установки VPN на моїй машині Ubuntu, один використовує vpnc, а один використовує PPTP. Обидва вони були налаштовані за допомогою інтерфейсу менеджера мережі GNOME і чудово працюють. Однак при нагоді мені потрібно отримати доступ до цієї машини дистанційно - чи є спосіб підключитись до цих VPN від командного рядка?


Чи тут детальна тут команда vpnc не працює для вас? Також тут є інструкції щодо налаштування та підключення до PPTP . Вони не працюють?
Кріс Харпер

Відповіді:


191

Якщо ви хочете взаємодіяти з NetworkManager з командного рядка, ви можете скористатися командою "nmcli".

перерахуйте всі з'єднання NM: nmcli con

запустити з'єднання (wifi, vpn тощо): nmcli con up id ConnectionName

вихідне з'єднання: nmcli con down id ConnectionName

(більше команд nmcli на сторінці nmcli ).


Також зауважте, що звичайні користувачі зазвичай не мають дозволу на керування мережами. Використання команд, описаних вище, sudoмає працювати для більшості з'єднань, але VPN спеціально може не вдатися до "Помилка: Не вдалося активацію з'єднання: немає дійсних секретів VPN."

Якщо це трапиться з вами, ймовірно, що пароль VPN зберігається в gnome-keyring вашого користувача, що робить його недоступним для кореневого користувача. Цей коментар пояснює, чому.

Щоб виправити це, відредагуйте / etc / NetworkManager / system-connection / ConnectionName і нижче [vpn], змініть рядок прапорців пароля на:

password-flags=0

Якщо рядок починається з Xauth password-flags, замініть її.

Потім додайте наступне нижче [vpn]блоку:

[vpn-secrets]
password=YourPassword

(Якщо на попередньому кроці ви змінили рядок Xauth password-flags, додайте Xauth password=...замість цього.)

Тепер перезавантажте мережевий менеджер:

sudo service network-manager restart

Тоді запуск VPN-з'єднання sudo nmcli con up id ConnectionNameмає працювати без проблем.


1
Я хотів би, щоб була загальна команда відключення, яка б відключила будь-яку VPN, не вказуючи її ідентифікатор. Це, мабуть, полегшить реалізацію цієї функції (я хочу).
Lonnie Best

Якщо ви використовуєте ipsec (наприклад, vpnc), вам може знадобитися додати "IPSec secret-flags = 0" та "IPSec secret = <grouppw>" у своїх місцях
Метт

Це все ще не вирішило мене :( я отримую повідомлення "Помилка. Помилка активації з’єднання: невідома причина".
Дано

Я повертаю це назад ... після 3-го разу я запустив команду, яка працювала. Перший час провалюється швидко. Другий час провалився повільно. Третій раз працював!
Дано

2
Очистити текст PWs ?? Дійсно ?? Хтось має безпечне рішення?
user447607

4

Відповідь ihashacks з коментарями Метта працювала на мене ... майже. Довелося виправити одну лінію.

мій рядок-прапор пароля насправді писав: "Xauth password-flag". Прийнята відповідь не буде працювати для мене, поки я не перейду до наступного

[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>

Не впевнений, чому в моєму vpn-з'єднанні є "Xauth" перед кожною згадкою пароля.

(Вибачте, це нова відповідь, поки не можу коментувати.)


2
Це для деяких типів VPN, наприклад, для Cisco; дуже корисно для цих випадків! Однак є помилка: правильний випадок одного ключа IPSec secret- інакше NM не розпізнає.
Маркус

Дякую Маркус, я виправив свою відповідь, щоб ніхто не намагався скопіювати / вставити друк.
Іван
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.