VPN Autoconnect

Я использую Ubuntu 13.04 с Gnome, и я недавно настроил (открытую) VPN. Есть ли способ включить его по умолчанию? Каждый раз, когда я загружаю или даже потерял соединение, я должен включить VPN вручную. Есть ли вариант, который мне не хватает?

38 голосов | спросил Paul Woitaschek 5 PM00000010000003131 2013, 13:27:31

8 ответов


65

С помощью индикатора Network Manager nm-applet (апплет сетевого лотка GNOME или Unity по умолчанию) вы можете настроить NetworkManager для автоматического подключения к VPN при подключении сети.

  1. Нажмите на апплет сетевого лотка и нажмите «Изменить соединения ...» или запустите nm-connection-editor.
  2. Выберите сетевое подключение и нажмите «Изменить ...»
  3. Установите флажок «Автоматически подключаться к VPN при использовании этого соединения» и выберите нужный VPN в раскрывающемся списке.
  4. Сохранить.

nm-connection-editor screenshot


Если это разрешено, появляется ошибка в NetworkManager , которая может перерыв функции «автоматически подключиться к этой сети». ( Изменить : эта ошибка теперь отмечена как «исправлена» в Ubuntu 16.04). Если NetworkManager попытается автоматически подключиться и выйти из строя, вы увидите следующую строку в /var/log/syslog:

<error> [1401130450.367538] [nm-vpn-connection.c:1374] get_secrets_cb(): Failed to request VPN secrets #2: (6) No agents were available for this request.

Кажется, что NetworkManager не смог получить пароль пользователя от gnome-keyring-daemon. Один из способов - позволить NetworkManager хранить пароль в открытом тексте в файле конфигурации в /etc/NetworkManager/system-connections/. Для этого:

  1. Откройте терминал.
  2. sudoedit /etc/NetworkManager/system-connections/<VPN>, где <VPN> - это файл конфигурации для вашего VPN (имя файла, как правило, имя, присвоенное вашей VPN).
  3. Измените строку password-flags=1 на password-flags=0
  4. Сохранить и выйти.

NetworkManager теперь сохранит сам пароль VPN (подробнее см. man nm-settings), и сетевой автоподключиться снова будет работать.

ответил Vincent Yu 15 AM00000080000004831 2013, 08:08:48
8

Взгляните на vpnautoconnect.

  

vpnautoconnect - это демон, который позволяет автоматически подключаться автоматически   (при запуске тоже) создается vpn с сетевым менеджером. Он может повторно подключаться   очень быстро и контролировать полосу пропускания, она работает с pptp и openvpn   соединение.

Для получения дополнительной информации и загрузки посетите веб-сайт .

Попробуйте это:

используйте функцию AUTOSTART в /etc/default/openvpn

или

Выясните UUID вашего VPN-соединения.

nmcli con list | grep -i vpn

UUID - это второй столбец с буквами, цифрами и тире.

Запустите соединение в терминале. Просто нажмите Ctrl + Alt + T на клавиатуре, чтобы открыть терминал. Когда он откроется, запустите следующие команды:

nmcli con up uuid <put you UUID here>

Установите это для запуска при запуске.

Перейдите к тире, введите и выберите «Запуск приложений», нажмите «Добавить» и добавьте команду nmcli выше (с UUID). Нажмите «Добавить». В названии введите имя, которое вы хотите использовать, и в Command поместите всю строку nmcli выше. Нажмите «Добавить» еще раз. Теперь перезагрузитесь и попробуйте.

Источник: SourceForge

ответил Mitch 5 PM00000010000004231 2013, 13:31:42
1

Я бы рекомендовал проверить скрипт

ответил rhoover 14 PM00000090000002631 2013, 21:23:26
1

vpnautoconnect не работал для меня в 12.04 LTS, и я, похоже, не единственный.

Я немного исследовал его и скомбинировал некоторый существующий код, чтобы создать свой первый скрипт bash. Он проверяет, является ли данное VPN-соединение активным, и будет подключаться, если нет. Если он подключен, он будет спать в течение заданного времени, например. 1 минута и повторите процесс на неопределенный срок.

#! /bin/bash

while true
do
   connection="Auto Ethernet"
   vpn_connection="My VPN connection"
   run_interval="60"

   active_connection=$(nmcli dev status | grep "${connection}")
   active_vpn=$(nmcli dev status | grep "${vpn_connection}")

   if [ "${active_connection}" -a ! "${active_vpn}" ];
   then
      nmcli con up id "${vpn_connection}"
   fi

   sleep $run_interval
done

Инструкция:

  1. Создайте пустой текстовый файл с именем, например. vpn-auto-connector.sh (я сохранил его в своей домашней папке). Щелкните правой кнопкой мыши файл и выберите «Свойства» и «Разрешения» и установите флажок «Разрешить выполнение файла как программы». (Возможно, вам придется хранить файл где-то еще и /или изменять разрешения на чтение /запись /прослушивание, если ваш компьютер имеет несколько пользователей.)

  2. Скопируйте код сверху в файл, который вы создали. Замените значения следующих трех переменных:

    connection = "Auto Ethernet"

    vpn_connection = "Мое VPN-соединение"

    run_interval = "60"

    Их можно найти, открыв диспетчер сети. В моем случае соединение = «Авто Ethernet» - это мое активное проводное соединение (не протестированное с помощью беспроводной сети), а vpn_connection = «Мое VPN-соединение» - это имя моего VPN-соединения. run_interval = "60" - это интервал времени в секундах для повторения сценария.

  3. Открыть приложения-> Системные инструменты-> Предпочтения-> Запуск приложений. Добавьте подходящее имя, например. «VPN Auto Connector», а для команды выберите файл .sh, который вы сохранили ранее. Теперь скрипт bash будет запущен при запуске и будет продолжать проверять, активно ли VPN-соединение. Вы можете попробовать, отключив VPN-соединение, и его необходимо активировать автоматически снова.

ответил PinkMistGenerator 12 22013vEurope/Moscow11bEurope/MoscowTue, 12 Nov 2013 16:30:37 +0400 2013, 16:30:37
0

Vpnautoconnect отлично работает в Ubuntu 12.04, 13.04 и 13.10 (я думаю, что в 13.10 опция «connect автоматически» в Network-Manager была исправлена ​​и работает сейчас)

Итак, если у вас есть проблемы, чтобы установить его или заставить его работать или не найти параметр «openvpn» в выпадающем меню Network-Manager для создания открытого соединения vpn, вы можете следовать этому тату, дает вам все этапы, очень четкие и легкие в применении.

Посмотрите ЗДЕСЬ

И дайте мне знать: -)

ответил Pouchette 13 FriEurope/Moscow2013-12-13T21:50:15+04:00Europe/Moscow12bEurope/MoscowFri, 13 Dec 2013 21:50:15 +0400 2013, 21:50:15
0

Вот очень надежный и надежный скрипт, который будет:

  • Убедитесь, что вы подключены к любой VPN
  • Если нет, подключитесь к последнему активному VPN

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

#!/bin/bash

nmcli --mode multiline --fields uuid,vpn connection status | grep -qc "^VPN:.*yes" 1>/dev/null 2>&1

if [ $? -ne 0 ]; then
        last_vpn_uuid=`nmcli --mode tabular --fields uuid,type,timestamp connection list | grep -E "\s+vpn\s+" | sort -k3 -nr | head -n1 | awk '{ print $1 }'`

        nmcli connection up uuid "$last_vpn_uuid"
fi
ответил Guest 13 PM00000050000003931 2015, 17:56:39
0

Я на Ubuntu 14.04 LTS на нескольких машинах. В связи с тем, что у меня есть некоторые особые предпосылки:

  1. Я не хочу сохранять пароль в диспетчере паролей.
  2. Я использую гостя VirtualBox, который теряет VPN при повторном подключении сети.
  3. Диалог пароля открывается несколько раз при повторном подключении
  4. Я использую резервный VPN-сервер (failover)
  5. Использование файла конфигурации для моих uuids

Я работаю с этим очень проверенным и очень надежным сценарием:

Есть, однако, некоторые оговорки с апплетами сетевого администратора, которые я мог бы временно решить (см. раздел «Устранение неполадок» в статье).

vpnautoconnect не работает для меня.

ответил apos 17 22015vEurope/Moscow11bEurope/MoscowTue, 17 Nov 2015 13:53:25 +0300 2015, 13:53:25
0

answer by @vincentYo смотрит прямо вперед, но я не мог сделать это, поэтому я сделал это как показано ниже.

step1: создайте сценарий оболочки и добавьте команду vpn

  

vim auto_vpn.sh

#!/bin/sh vpnc --enable-1des

step2: откройте файл sudoer и сообщите ядру, чтобы он не запрашивал пароль для этого файла.

  

sudo vim /etc /sudoers

большинство вещей внутри этого файла будут прокомментированы, просто добавьте, как показано ниже

  

имя пользователя ALL = (root) NOPASSWD: your_shell_script.sh

Пример:

  

sharath ALL = (root) NOPASSWD: /home/sharath/workspace/work/src/auto_vpn.sh

step3: настройте задание cron, которое вызовет этот сценарий оболочки, ниже задание cron будет выполняться каждую минуту (bcz мой интернет продолжает и выключается, поэтому каждую минуту)

  

* * * * * sudo /home/sharath/workspace/work/src/auto_vpn.sh

Я использую это из многих дней, отлично работаю в ubuntu 16.04 LTS .. Chears !!

ответил Sharath B.J 29 J0000006Europe/Moscow 2017, 15:36:41

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132