VPN Autoconnect

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

39
задан 5 August 2013 в 13:27

8 ответов

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

  1. Нажмите на сетевой апплет лотка и нажмите "Edit connections..." или работайте nm-connection-editor.
  2. Выберите сетевое соединение и нажмите "Edit..."
  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 не удается получить пароль 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 для деталей), и сетевое автоподключение будет работать еще раз.

66
ответ дан 5 August 2013 в 13:27

Взгляните на 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>

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

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

Источник: SourceForge

0
ответ дан 5 August 2013 в 13:27

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

#!/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, просто запустите следующее:

[ 111]
0
ответ дан 5 August 2013 в 13:27

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

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

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

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

0
ответ дан 5 August 2013 в 13:27

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

Я исследовал его немного и объединил некоторый существующий код для создания моего первого сценария удара. Это проверяет, активно ли данное соединение 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 (я сохранил его в своей домашней папке. Щелкните правой кнопкой по файлу и выберите Properties->, Permissions и проверка "Позволяют выполнять файл как программу". (Вам, вероятно, придется хранить файл где-то в другом месте и/или изменить read/write/execture полномочия также, если Ваш компьютер имеет многочисленных пользователей.)

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

    соединение = "Автоматический Ethernet"

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

    run_interval = "60"

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

  3. Открытые приложения-> Системные Инструменты-> Предпочтения-> Приложения Запуска. Добавьте подходящее имя, например, "VPN, Автоматический Коннектор", и для команды выбирает .sh файл, который Вы сохранили ранее. Теперь сценарий удара будет работать при запуске и будет продолжать проверять, активно ли соединение VPN. Можно попробовать его путем разъединения соединения VPN, и это должно быть активировано автоматически снова.

2
ответ дан 5 August 2013 в 13:27

ответ @vincentYo выглядит прямым, но я не мог сделать его, таким образом, я сделал как ниже.

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

энергия auto_vpn.sh

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

step2: откройте sudoer файл и скажите ядру не просить у пароля этот файл.

энергия sudo/etc/sudoers

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

имя пользователя ВСЕ = (корневой) NOPASSWD:your_shell_script.sh

пример:

sharath ВСЕ = (корень) NOPASSWD:/home/sharath/workspace/work/src/auto_vpn.sh

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

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

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

0
ответ дан 5 August 2013 в 13:27

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

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

0
ответ дан 5 August 2013 в 13:27

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

  • Проверять, подключены ли вы к какой-либо 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
0
ответ дан 5 August 2013 в 13:27

Другие вопросы по тегам:

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