Як автоматично підключитися до VPN за допомогою Network-Manager


18

У мене є робоче VPN-з'єднання. Тепер я хочу, щоб це VPN-з'єднання автоматично активувалось, коли я перебуваю в певній бездротовій мережі. Чи є нав'язливий графічний спосіб за допомогою аплету мережі-менеджера? Якщо я добре пам'ятаю, він працював деякий час і більше не працює.

Я зробив таке бездротове з'єднання доступним для всіх користувачів, оскільки не потрібно вводити пароль щоразу.

Використовувана програма CLI - vpnc з увімкненою функцією Hybrid-Auth (сумісний VPN-клієнт cisco) з PPA sroecker

EDIT: Я можу більше пробувати відповіді (через eduroam), і оскільки, здається, жодна відповідь не набирає більшості голосів, я просто покину його без відповіді, поки не буде оголошено жодне рішення, тоді я прийму це.


як ти йдеш разом з цим?
рулем

Мені це вже давно не потрібно. Можливо, прийде квітня в новому університеті.
турбо

Possibel дублікат? askubuntu.com/questions/86365
fossfreedom

@fossfreedom не є дублікатом саме тому, що моє запитання стосується vpnc, а не openconnect.
турбо

Я написав коротке повідомлення про те, як заблокувати підключення до Інтернету, якщо VPN не працює і працює: mentat.za.net/blog/2015/01/24/vpn-only-internet
Штефан ван дер Уолт

Відповіді:


18

Рішення, запропоноване компанією „ 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 має більше інформації.


зауважте, що в 13.04 мені довелося помістити цей скрипт у /etc/network/if-up.d і виправити / etc / NetworkManager / system-connection / name-name відповідно до askubuntu.com/questions/198136/…, щоб уникнути "Ні Помилка дійсних секретів VPN "
ОлегИч

Злом wiki wiki справді працює! Я спробував сценарій на архівній вікі 11 липня 2013 року, і змінити його з 'nmcli ...' на 'su [user] -c "nmcli ..."' не працює! дотримуйтесь інструкцій, як у вікі, і не забувайте chmod + x;) ура!

Помилка, згадана Хуго Еденом ( bugs.launchpad.net/ubuntu/+source/network-manager/+bug/280571 ), була виправлена ​​вище 5 місяців тому. Однак я все ще переживаю це в Precision ... Що дає?
iGadget

Це не спрацювало для мене, тому я вирішив розглянути /var/log/syslogта побачив таку помилку: Mar 4 13:49:51 oleg-HP nm-dispatcher.action: Cannot execute /etc/NetworkManager/dispatcher.d/vpn-up ': не виконується власником. `Рішення було бsudo chmod 755 /etc/NetworkManager/dispatcher.d/vpn-up
Олег Білоусов

8

У магазині Ubuntu Trusty 14.04 VPN для автоматичного підключення в GUI на окремих збережених налаштуваннях wi-fi. Налаштування системи - Мережа - перевірте зацікавлений Wi-Fi або Lan - Налаштування (загальна вкладка) - виберіть "Автоматичне підключення до VPN ..."


3

Якщо я добре пам'ятаю, він працював деякий час і більше не працює.

  • Це може бути очевидним, але іноді я не думаю про це. Ви спробували перевстановлення на зразок:

    sudo apt-get purge network-manager-vpn sudo apt-get install network-manager-vpnc Потім: введіть тут опис зображення

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

  • Існує спосіб придушити тип повідомлення "не вдалося підключити", коли ваші користувачі перебувають у неправильній мережі, але не можу згадати, як це пройшло. Я не бачу іншого способу автоматичного підключення графічно. Можливо, вам доведеться написати сценарій, який виконує з'єднання, коли знаходиться у зазначеній wlan-мережі.

Сподіваюся, що це допомогло.


Я все ще не ходив, щоб насправді це перевірити. Я відзначу, що відповів, коли захочу. Обіцяють.
турбо

на мій досвід, це насправді не працює. Я вважаю, що це помилка в NetworkManager
Conor Rynne

3
Так, це навіть порушено навіть у Precision. Він не підключається автоматично O_o
eggonlegs

Yup - зламаний. Не працює (Ubunutu 12.04).
user48956

3

Я можу підтвердити це наступне рішення, що працює для мене. Я працюю на Ubuntu 14.04 LTS.

Я перейшов до піктограми відключення, а потім системних налаштувань.

Коли відкриється екран налаштувань, я перейшов до "Мережі" та мережі WiFi, з якою я був підключений. Існує маленька стрілка, одна сторона назви мережі.

Знімок екрана налаштувань, його арабською мовою

Клацніть на цьому значку, і тут ви побачите опцію "налаштування" або "параметри" (або щось подібне):

Клацніть налаштування

Коли відкриється наступне вікно, просто перейдіть на вкладку "Загальні", і ви побачите опцію, яка дає вам можливість автоматичного підключення до VPN. Виберіть VPN, до якого хочете підключитися, підключившись до цього Wi-Fi, і бум! Щоразу, коли ви підключаєтесь до цієї мережі, Ubuntu також підключатиме вас до цієї VPN. :)

Для мене це працює. Я сподіваюся, що це працює і для всіх інших. Не вимагає будь-якого текстового редактора чи редактора коду чи чогось іншого ..


0

Використовуйте наступний сценарій 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-з'єднання.


1
Я вважаю, що такий підхід є менш елегантним, оскільки фоновий процес весь цей час активний, хоча він може керуватися подіями, як у відповіді @hugoheden.
gertvdijk

Це більше, ніж його відповідь: він також обробляє підключення VPN та випадки, коли користувач вручну відключає vpn-з'єднання (це означає, що він не повинен намагатися знову підключити VPN у цьому випадку)
iElectric

0

Вам більше не потрібні сценарії диспетчера! У 14.04 (Trusty Tahr) вам просто потрібно виконати наступні кроки після встановлення параметра автовідключення в GUI NetworkManager.

Зберігайте vpn-секрети просто у конфігураційному файлі для VPN-з'єднання під /etc/NetworkManager/system-connections/YourVPNConnectionName.

Ви можете досягти цього шляхом установки IPSec secret-flags=0і Xauth password-flags=0в файлі конфігурації. Потім перейдіть до GUI NetworkManager і знову збережіть настройки VPN-з'єднання. Тепер у конфігураційному файлі повинен бути розділ під назвою [vpn-secrets]. Двічі перевірте це, і автоматичне підключення має працювати зараз!


0

Навіть незважаючи на те, що довідкова сторінка перелічена 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для перегляду всіх імен з'єднань, оскільки вони не завжди є такими, які вказані в GUI Network Connections


ОП запитує про Ubuntu.
fosslinux

Kali та Ubuntu базуються на Debian, тому рішення часто однакове. Я просто продовжив тестування цього на екземплярі Ubuntu 15.10, і помилка nmcli була такою ж, як я згадував вище. Рішення працювало так само, як і. Версія nmcli, встановлена ​​у вікні 15.10, становить 1.0.4.
jw00druff

0

Якщо ви віддаєте перевагу терміналам, ви можете використовувати 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.

І вам слід зробити!


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