VPN Autoconnect

38

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

    
задан Paul Woitaschek 05.08.2013 в 11:27
источник

8 ответов

66

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

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

Еслиэторазрешено,появляетсяошибка в 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 не смог получить пароль VPN пользователя от 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.08.2013 в 06:08
источник
8

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

vpnautoconnect is a daemon that allow you to reconnect automatically (at startup too) a vpn create with network manager.It can reconnect very quickly and monitor the bandwith, It works with pptp and openvpn connection.

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

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

используйте функцию 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 05.08.2013 в 11:31
1

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

#!/bin/bash

# YourVPN here is the name of desired vpn connection to monitor
# edit this line:
##################
VPNNAME=YourVPNUUID
# enter desired time between checks here (in seconds)
SLEEPTIME=15
##################

nice=0

for (( ; ; )); do

# creating infinite loop

tested=$(nmcli con status uuid $VPNNAME | grep -c UUID)
#possible results:
# 0 - no connection - need to start
# 1 - working connection, continue.

case $tested in
"0")
echo "Not connected - starting"

#increase nice counter
nice=$[nice+1]

#if "nice start" fails for 3 times
if [ $nice -ge 3 ];
then
#TRY to knock hard way, resetting the network-manager (sometimes it happens in my kubuntu 12.04).
      echo "HARD RESTART!"
      nmcli nm enable false
      nmcli nm enable true
      sleep 5
      nmcli con up uuid $VPNNAME
      nice=0
else
#not yet 3 falures - try starting normal way
      echo "trying to enable."
      nmcli con up uuid $VPNNAME
fi

;;

"1")
echo "VPN seems to work" 

;;
esac

sleep $SLEEPTIME

done

Чтобы узнать значение YourVPNUUID для $ VPNNAME, просто выполните следующее:

nmcli con list | grep -i vpn
    
ответ дан rhoover 14.08.2013 в 19:23
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.11.2013 в 13:30
0

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

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

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

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

    
ответ дан Pouchette 13.12.2013 в 18:50
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.08.2015 в 16:56
0

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

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

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

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

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

    
ответ дан apos 17.11.2015 в 11:53
0

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

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

vim auto_vpn.sh

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

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

sudo vim /etc/sudoers

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

username 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.06.2017 в 14:36