Вопрос Подключить / отключить VPN из командной строки


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


111
2017-08-16 15:15


происхождения


Подробна ли команда vpnc Вот не работает для вас? Кроме того, есть инструкции по настройке и подключению к PPTP Вот. Разве они не работают? - Kris Harper


ответы:


Если вы хотите взаимодействовать с NetworkManager из командной строки, вы можете использовать команду «nmcli».

список всех соединений NM: nmcli con

(wifi, vpn и т. д.): nmcli con up id ConnectionName

вниз: nmcli con down id ConnectionName

(больше команд nmcli в Персональная страница).


Также обратите внимание, что обычные пользователи обычно не имеют разрешения на управление сетью. Используя приведенные выше команды sudo должен работать для большинства подключений, но VPN, в частности, может «Ошибка: сбой подключения: нет действительных секретов VPN».

Если это произойдет с вами, вполне вероятно, что пароль VPN будет храниться в гнома-ключах вашего пользователя, что делает его недоступным для пользователя root. Этот комментарий объясняет почему.

Чтобы исправить это, отредактируйте / и т.д. / NetworkManager / Система-соединения / 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 должны работать без проблем.


163
2017-08-17 03:44



Хотелось бы, чтобы была общая команда disconnect, которая отключила бы любую VPN, не указывая ее идентификатор. Это, вероятно, эта особенность (Я хочу) проще реализовать. - Lonnie Best
Если вы используете ipsec (например, vpnc), вам также может потребоваться добавить «IPSec secret-flags = 0» и «IPSec secret = <grouppw>» в соответствующие места - Matt
Это все еще не исправило меня :( Получаю сообщение «Ошибка: сбой подключения: неизвестная причина». - Evildonald
Я беру это обратно ... после того, как я в третий раз запустил команду, она сработала. 1-й раз не удался быстро. 2-й раз провалился медленно. В третий раз! - Evildonald
Очистить текстовые PW? В самом деле?? У кого-нибудь есть БЕЗОПАСНОЕ решение? - user447607


Ответ 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» перед каждым упоминанием пароля.

(Извините, это новый ответ, он еще не может комментировать).


4
2018-03-23 05:03



Это касается некоторых типов VPN, например Cisco; очень полезно для этих случаев! Однако есть ошибка: правильный случай одного ключа IPSec secret- в противном случае он не признается NM. - Marcus
Спасибо Marcus, я внес исправление в свой ответ, поэтому никто не пытается копировать / вставлять опечатку. - John