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

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

2 ответа

Решение

Если вы хотите взаимодействовать с 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 вашего пользователя, что делает его недоступным для пользователя root. Этот комментарий объясняет почему.

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

Ответ ihashacks с комментариями Мэтта сработал для меня... почти. Пришлось подправить одну строчку.

моя строка флага пароля фактически читается: "Xauth пароль-флаг". Принятый ответ не будет работать для меня, пока я не перейду на следующий

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

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

Другие вопросы по тегам