У меня есть рабочее VPN-соединение. Теперь я хочу, чтобы это VPN-соединение автоматически активировалось, когда я нахожусь в определенной беспроводной сети. Есть ли ненавязчивый графический способ с помощью апплета network-manager-applet? Если я правильно помню, это работало некоторое время и больше не работает.
Я сделал данное беспроводное соединение доступным для всех пользователей, так как не нужно было каждый раз вводить пароль.
Используемая программа CLI - это vpnc с включенной Hybrid-Auth (cisco VPN-client-совместимый) из PPA sroecker'a
. eduroam) и так как ни один ответ, кажется, не набирает большинство голосов, я просто пока оставлю его без ответа до тех пор, пока не проголосуем, тогда я приму это.
Решение, предложенное 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
[Я не проверял это - пожалуйста не стесняйтесь тестировать и редактировать в соответствии с результатами]
Если я правильно помню, какое-то время это работало и больше не работает.
blockquote>< blockquote>
Это может быть очевидно, но иногда я не думаю об этом. Вы пробовали переустановку, например:
sudo apt-get purge network-manager-vpn sudo apt-get install network-manager-vpnc Тогда:
Теперь я хочу, чтобы это VPN-соединение автоматически активировалось, когда я нахожусь в определенной беспроводной сети.
blockquote>
- Существует способ подавления сообщений типа «невозможно подключиться», когда ваши пользователи находятся в неправильной сети, но не могут вспомнить, как все прошло. Я не вижу другого способа автоматического подключения графическим способом. Может быть, вам придется написать скрипт, выполняющий соединение, когда вы находитесь в указанной сети WLAN.
Надеюсь, что помог.
Я могу подтвердить этот после решения, работающего на меня. Я запускаю Ubuntu 14.04 LTS.
Я перешел к значку завершения работы и затем параметрам настройки системы.
Когда экран настроек открывается, я пошел для 'Объединений в сеть' и сеть WiFi, с которой я был соединен. Существует маленькая стрелка одна одна сторона названия сети.
Нажмите тот значок, и необходимо видеть опцию, названную "настройками" или "опциями" (или что-то подобное) здесь:
Когда следующее окно открывается, просто перейдите к вкладке 'General', и необходимо видеть опцию, которая дает Вам опцию Автоматически соединиться с VPN. Выберите VPN You хотел бы соединиться при соединении с этим WiFi и бумом! Каждый раз Вы соединяетесь с этой сетью, Ubuntu также подключит Вас к той VPN.:)
Для меня его работа. Я надеюсь, что это работает на всех остальных также. Не требует никакого вида текстового редактора или редактора кода или чего-либо..
Используйте следующий скрипт 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-подключение.
Если вы предпочитаете терминалы, вы можете использовать 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.
И все готово!
Несмотря на то, что на справочной странице 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
для просмотра всех имен соединений, поскольку они не всегда совпадают с указанными в графическом интерфейсе сетевых подключений
Вам больше не нужны диспетчерские скрипты! В 14.04 (Trusty Tahr) вам просто нужно выполнить следующие шаги после установки опции автоподключения в графическом интерфейсе NetworkManager.
Сохраните vpn-секреты в файле конфигурации для VPN-соединения в разделе /etc/NetworkManager/system-connections/YourVPNConnectionName
.
Этого можно добиться, установив IPSec secret-flags=0
и Xauth password-flags=0
в файле конфигурации. Затем перейдите в графический интерфейс NetworkManager и снова сохраните настройки VPN-соединения. Теперь в файле конфигурации должен присутствовать раздел с именем [vpn-secrets]. Перепроверьте это, и автоконнект должен работать сейчас!
В Ubuntu Trusty 14.04 VPN автоматическое подключение магазина на GUI на отдельных сохраненных настройках Wi-Fi. Системные настройки - Сеть - проверить интересующие Wi-Fi или Lan - Настройки (вкладка Общие) - выбрать «Автоматическое подключение к VPN ...»
Можно добавить 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
Мне удалось заставить это работать в Ubuntu 20.04 с помощью nm-connection-editor
. По какой-то причине этот параметр больше не отображается ни в пользовательском интерфейсе Wi-Fi/Ethernet, ни в пользовательском интерфейсе конфигурации VPN.
Откройте терминал
Введите nm-connection-editor
Выберите сетевое подключение, которое вы хотите автоматически подключить
Нажмите на значок шестеренки, чтобы открыть настройки для этого подключения
Перейдите к Вкладка «Общие»
Включите параметр Автоматически подключаться к VPN
и выберите VPN в раскрывающемся меню справа
Нажмите «Сохранить»
Обновление ответа Хьюго. Хорошо работает на 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