Как автоматически подключиться к VPN с помощью Network-Manager

У меня есть рабочее VPN-соединение. Теперь я хочу, чтобы это VPN-соединение автоматически активировалось, когда я нахожусь в определенной беспроводной сети. Есть ли ненавязчивый графический способ с помощью апплета network-manager-applet? Если я правильно помню, это работало некоторое время и больше не работает.

Я сделал данное беспроводное соединение доступным для всех пользователей, так как не нужно было каждый раз вводить пароль.

Используемая программа CLI - это vpnc с включенной Hybrid-Auth (cisco VPN-client-совместимый) из PPA sroecker'a

. eduroam) и так как ни один ответ, кажется, не набирает большинство голосов, я просто пока оставлю его без ответа до тех пор, пока не проголосуем, тогда я приму это.

16
задан 29 May 2012 в 18:57

11 ответов

Решение, предложенное con-f-use, должно работать, но не работает из-за давней ошибки:

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

Однако есть обходные пути. В последних версиях NetworkManager есть командная строка, nmcli, которую можно редактировать и сохранять как что-то вроде /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

[Я не проверял это - пожалуйста не стесняйтесь тестировать и редактировать в соответствии с результатами]

См .: https://wiki.archlinux.org/index.php/NetworkManager#Use_dispatcher_to_connect_to_a_vpn_after_a_network-connection_is_established .

0
ответ дан 29 May 2012 в 18:57

Если я правильно помню, какое-то время это работало и больше не работает.

  • Это может быть очевидно, но иногда я не думаю об этом. Вы пробовали переустановку, например:

    sudo apt-get purge network-manager-vpn sudo apt-get install network-manager-vpnc Тогда: enter image description here

< blockquote>

Теперь я хочу, чтобы это VPN-соединение автоматически активировалось, когда я нахожусь в определенной беспроводной сети.

  • Существует способ подавления сообщений типа «невозможно подключиться», когда ваши пользователи находятся в неправильной сети, но не могут вспомнить, как все прошло. Я не вижу другого способа автоматического подключения графическим способом. Может быть, вам придется написать скрипт, выполняющий соединение, когда вы находитесь в указанной сети WLAN.

Надеюсь, что помог.

0
ответ дан 29 May 2012 в 18:57

Я могу подтвердить этот после решения, работающего на меня. Я запускаю Ubuntu 14.04 LTS.

Я перешел к значку завершения работы и затем параметрам настройки системы.

Когда экран настроек открывается, я пошел для 'Объединений в сеть' и сеть WiFi, с которой я был соединен. Существует маленькая стрелка одна одна сторона названия сети.

Settings screen shot, its in Arabic

Нажмите тот значок, и необходимо видеть опцию, названную "настройками" или "опциями" (или что-то подобное) здесь:

Click settings

Когда следующее окно открывается, просто перейдите к вкладке 'General', и необходимо видеть опцию, которая дает Вам опцию Автоматически соединиться с VPN. Выберите VPN You хотел бы соединиться при соединении с этим WiFi и бумом! Каждый раз Вы соединяетесь с этой сетью, Ubuntu также подключит Вас к той VPN.:)

Для меня его работа. Я надеюсь, что это работает на всех остальных также. Не требует никакого вида текстового редактора или редактора кода или чего-либо..

3
ответ дан 29 May 2012 в 18:57

Используйте следующий скрипт Python Gist # 1547663 .

Первый параметр сценария - это имя VPN-подключения в NetworkManager, а второй - разделенные запятыми названия сетей, которые следует игнорировать (например, использование VPN-подключения в домашних условиях бесполезно).

Пример установки и запуска при загрузке:

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

Теперь, если вы подключаетесь к сети (Wi-Fi или Ethernet), он также попытается настроить VPN-подключение.

0
ответ дан 29 May 2012 в 18:57

Если вы предпочитаете терминалы, вы можете использовать nmcli, я сделал это с помощью следующих команд:

Сначала найдите и откройте VPN-соединение, которое вы хотите обновить

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

Это откроет приглашение nmcli, отсюда вы можете запросить значения и установить их следующим образом:

===| 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.

И все готово!

0
ответ дан 29 May 2012 в 18:57

Несмотря на то, что на справочной странице nmcli con status указана допустимая команда, приведенное выше решение, предоставленное Hugo Heden , возвращает ошибку "Error: Object 'status' is unknown, try 'nmcli help'"

Я использую nmcli 1.2. 2 (nmcli -v), и я протестировал и изменил следующее для /etc/NetworkManager/dispatcher.d/vpn-up, и это сработало как шарм.

#! /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

Примечание. Вы можете использовать nmcli con show для просмотра всех имен соединений, поскольку они не всегда совпадают с указанными в графическом интерфейсе сетевых подключений

0
ответ дан 29 May 2012 в 18:57

Вам больше не нужны диспетчерские скрипты! В 14.04 (Trusty Tahr) вам просто нужно выполнить следующие шаги после установки опции автоподключения в графическом интерфейсе NetworkManager.

Сохраните vpn-секреты в файле конфигурации для VPN-соединения в разделе /etc/NetworkManager/system-connections/YourVPNConnectionName.

Этого можно добиться, установив IPSec secret-flags=0 и Xauth password-flags=0 в файле конфигурации. Затем перейдите в графический интерфейс NetworkManager и снова сохраните настройки VPN-соединения. Теперь в файле конфигурации должен присутствовать раздел с именем [vpn-secrets]. Перепроверьте это, и автоконнект должен работать сейчас!

0
ответ дан 29 May 2012 в 18:57

В Ubuntu Trusty 14.04 VPN автоматическое подключение магазина на GUI на отдельных сохраненных настройках Wi-Fi. Системные настройки - Сеть - проверить интересующие Wi-Fi или Lan - Настройки (вкладка Общие) - выбрать «Автоматическое подключение к VPN ...»

0
ответ дан 29 May 2012 в 18:57

Можно добавить uuid профиля VPN при помощи поля "вторичных устройств" в основном соединении

Например, /etc/NetworkManager/system-connections/Wired

[connection]
id=Wired
uuid=95ad54f8-9d72-3e65-a4a7-b106aa310eed
type=ethernet
secondaries=66ecf287-8b26-413b-86f2-caca7608bc67;

Ссылочный https://developer.gnome.org/NetworkManager/stable/nm-settings.html

0
ответ дан 23 November 2019 в 02:31

Мне удалось заставить это работать в Ubuntu 20.04 с помощью nm-connection-editor. По какой-то причине этот параметр больше не отображается ни в пользовательском интерфейсе Wi-Fi/Ethernet, ни в пользовательском интерфейсе конфигурации VPN.

  1. Откройте терминал

  2. Введите nm-connection-editor

  3. Выберите сетевое подключение, которое вы хотите автоматически подключить

    Network connections selection window, settings button in red

  4. Нажмите на значок шестеренки, чтобы открыть настройки для этого подключения

  5. Перейдите к Вкладка «Общие»

  6. Включите параметр Автоматически подключаться к VPN и выберите VPN в раскрывающемся меню справа

    Network configuration window, general tab, auto-connect option in red

  7. Нажмите «Сохранить»

8
ответ дан 6 September 2020 в 00:00

Обновление ответа Хьюго. Хорошо работает на Ubuntu 20.04

#! /bin/bash

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


activ_con=$(nmcli c s --active | grep "${REQUIRED_CONNECTION_NAME}")
activ_vpn=$(nmcli c s --active | grep "${VPN_CONNECTION_NAME}")
if [ "${activ_con}" -a ! "${activ_vpn}" ];
then
    nmcli con up id "${VPN_CONNECTION_NAME}"
fi
0
ответ дан 26 October 2020 в 18:05

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

Похожие вопросы: