Автоматически подключаться к VPN при использовании определенной сети в Ubuntu GNOME 16.04

12

В Unity Network Manger имеет флажок, доступный для каждого соединения, которое настраивает автоматическое использование VPN, когда соединение активно:

Изображение настройки подключения в Ubuntu 16.06 Unity

Есть ли способ получить такую ​​опцию в Ubuntu GNOME 16.04? (который использует GNOME 3.18). Поскольку на странице настроек подключения отсутствует эта опция: введите описание изображения здесь

С.Мохсен ш
источник
Добро пожаловать в Спросите Ubuntu! Этот ответ предполагает, что они оба используют один и тот же NetworkManager. Не могли бы вы перепроверить? В случае, если они отличаются, не могли бы вы также включить скриншот NetworkManager в Ubuntu GNOME?
Андреа Лаззаротто
@AndreaLazzarotto спасибо! Я предоставил скриншот. Я попробую vpnautoconnect, который был предложен в этом вопросе, чтобы увидеть, работает ли он. Но мне интересно, можно ли активировать этот параметр в самом Network Manager, поскольку, как вы сказали, это один и тот же Network Manger в обоих вариантах.
С.Мохсен ш
Эта возможность по-прежнему отсутствует в Ubuntu 17.04. Мне неясно, почему это было бы удалено. После поиска решения и обнаружения очень небольшого количества, кажется странным, что все больше людей не используют VPN и предпочитают функцию автоматического подключения.
Rsync
При условии, что в вашей системе есть /etc/NetworkManager/system-connectionsкаталог, заполненный профилями соединений, и вы не против редактировать конфиги, тогда, возможно, стоит проверить ответ, который я опубликовал в другом месте на тему автоматического подключения к VPN для данного сетевого интерфейса.
S0AndS0

Ответы:

22

Я нашел ответ на это. Как ни странно, вы должны открыть Network Manager вручную (в отличие от использования панели или настроек.

Так по Terminalтипу nm-connection-editor. После этого в открывшемся окне появятся параметры первого изображения ОП.

Это работает для меня в 16.04 и 17.04. Надеемся, что они будут интегрировать различных сетевых менеджеров в будущих версиях GNOME.

Rsync
источник
Это работает для меня и в 18.04 - спасибо! Было не сразу понятно, где были эти настройки.
JohnnyCoder
Работает также для Debian 9 Stretch. Спасибо!
Кристиан Тоффоло
1

Я решил проблему с помощью скрипта в

/etc/NetworkManager/dispatcher.d

Эта папка содержит сценарии, которые вызываются администратором сети в алфавитном порядке каждый раз при изменении состояния сети. Это имеет преимущество (отличное от другого решения, которое я видел), что ваша VPN активируется не только при загрузке / запуске, но и при возобновлении после приостановки / сна.

Чтобы это работало, вам нужно VPN-соединение, которое уже установлено в вашем Network Manager, которое, как я полагаю, у вас есть, иначе вы бы не задали вопрос.

  1. Первый шаг: я последовал совету этой (немецкой) страницы ( https://wiki.ubuntuusers.de/NetworkManager/Dispatcher/ ). Я открыл и назвал новый скрипт 02VPN1

    sudo YOURTEXTEDITOR /etc/NetworkManager/dispatcher.d/02VPN1
    

и написал:

    #!/bin/bash
    VPN_CONNECTION_NAME="NAME_OF_YOUR_VPN_CONNECTION"
    if [ "$2" = "up" ]; then
       sleep "3s"
       nmcli con up id "${VPN_CONNECTION_NAME}"
    fi

NAME_OF_YOUR_VPN_CONNECTION - это имя файла подключения NAME_OF_YOUR_VPN_CONNECTION.conf, которое вы использовали для настройки подключения, к которому вы хотите подключиться автоматически.

Условие if ["$ 2" = "up"] означает, что VPN-соединение подключается только автоматически, когда вы запускаете сетевое соединение (ваше интернет-соединение); После запуска службы VPN вы можете отключить ее или выбрать другую VPN.

Если вы только и каждый раз хотите запустить этот VPN без возможности его отключить, вы можете написать скрипт без этого условия If:

    #!/bin/bash
    VPN_CONNECTION_NAME="NAME_OF_YOUR_VPN_CONNECTION"
    sleep "3s"
    nmcli con up id "${VPN_CONNECTION_NAME}"

Вы можете установить этот файл только как root, так что он принадлежит root без каких-либо дополнительных действий. Так и должно быть.

Наконец: сделайте этот файл исполняемым, иначе скрипт не запустится. В терминале:

    sudo chmod +x  /etc/NetworkManager/dispatcher.d/02VPN1
  1. Второй шаг (В отличие от инструкций в приведенной выше ссылке; я воспользовался советом отсюда: https://ubuntuforums.org/showthread.php?t=2193559&p=12990193#post12990193

Этот процесс запускается пользователем root, и у root еще нет доступа к паролю, который вы используете для VPN. Сделайте следующее: Откройте файл NAME_OF_YOUR_VPN_CONNECTION в / etc / NetworkManager / system-connections от имени пользователя root. Откройте терминал и выполните:

    sudo YOURTEXTEDITOR /etc/NetworkManager/system-connections/NAME_OF_YOUR_VPN_CONNECTION

а) сменить строку

    password-flags=1 

в

    password-flags=0

б) внизу добавить

    [vpn-secrets]
    password=PASSWORDOFYOURCONNECTION

Сохраните и закройте файл.

  1. Теперь перезапустите свой сетевой менеджер. Терминал:

    systemctl restart NetworkManager
    

инициализировать новые настройки. Вы должны быть сделаны.

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

ксенон
источник