Я використовую Ubuntu 13.04 з Gnome, і я нещодавно створив (відкритий) VPN. Чи є якийсь спосіб увімкнути це за замовчуванням? Кожен раз, коли я завантажую або навіть втрачаю зв’язок, я повинен вмикати VPN вручну. Чи є варіант, який мені не вистачає?
Я використовую Ubuntu 13.04 з Gnome, і я нещодавно створив (відкритий) VPN. Чи є якийсь спосіб увімкнути це за замовчуванням? Кожен раз, коли я завантажую або навіть втрачаю зв’язок, я повинен вмикати VPN вручну. Чи є варіант, який мені не вистачає?
Відповіді:
Через індикатор Network Manager nm-applet (аплет мережевого лотка GNOME або Unity встановлений за замовчуванням) ви можете налаштувати NetworkManager для автоматичного підключення до VPN, коли мережа підключена.
nm-connection-editor
.Коли це ввімкнено, у 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/
. Зробити це:
sudoedit /etc/NetworkManager/system-connections/<VPN>
, де <VPN>
є файл конфігурації для вашого VPN (ім'я файлу, як правило, є ім'ям, яке присвоєно VPN).password-flags=1
наpassword-flags=0
NetworkManager тепер збереже сам пароль VPN (див. man nm-settings
Подробиці), і мережеве автовідключення знову запрацює.
nm-connection-editor
ви можете це знайти під час редагування з'єднання на загальній вкладці.
Погляньте на 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
vpnautoconnect
? Їх веб-сайт - це занедбана сторінка проекту SourceForge, а в пакеті не передбачені довідні сторінки. Тяжко це звучить багатообіцяюче.
Я рекомендую переглянути сценарій у цій статті :
#!/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
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
Інструкції:
Створіть порожній текстовий файл з назвою, наприклад, vpn-auto-connector.sh (я зберег його у своїй домашній папці. Клацніть правою кнопкою миші файл та виберіть Властивості-> Дозволи та встановіть прапорець "Дозволити виконання файлу як програми". (Можливо, вам доведеться зберігати файл десь інше та / або змінюють дозволи на читання / запис / виконання, якщо ваш комп'ютер має декілька користувачів.)
Скопіюйте код зверху у створений файл. Замініть значення наступних трьох змінних:
connection = "Автоматична Ethernet"
vpn_connection = "Моє VPN-з'єднання"
run_interval = "60"
Їх можна знайти, відкривши диспетчер мережі. У моєму випадку connection = "Auto Ethernet" - це моє активне дротове з'єднання (не тестувалося на бездротовому зв'язку), а vpn_connection = "Моє VPN-з'єднання" - це ім'я мого VPN-з'єднання. run_interval = "60" - інтервал часу в секундах, коли слід повторити сценарій.
Відкрийте Програми-> Системні інструменти-> Налаштування-> Запуск програм. Додайте відповідне ім'я, наприклад, "VPN Auto Connector", і для команди виберіть .sh файл, який ви зберегли раніше. Тепер сценарій bash запуститься при запуску і буде перевіряти, чи VPN-з'єднання активне. Ви можете спробувати, відключивши VPN-з'єднання, і воно повинно бути активоване знову.
Vpnautoconnect прекрасно працює в Ubuntu 12.04, 13.04 та 13.10 (я думаю, що в 13.10 параметр "підключити автоматично" в Менеджері мереж був виправлений і працює зараз)
Отже, якщо у вас виникли проблеми встановити його або змусити його працювати, або ви не знайдете опцію "openvpn" у випадаючому меню Network-Manager для створення відкритого vpn-з'єднання, ви можете слідувати цьому tuto, що дає вам усе кроки, дуже чіткі і прості в застосуванні.
Подивіться ТУТ
І дайте мені знати :-)
Ось дуже надійний і надійний сценарій, який буде:
Це особливо корисно, якщо ви регулярно підключаєтесь до різних 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
Я на Ubuntu 14.04 LTS на декількох машинах. Через те, що у мене є особливі передумови:
Я працюю з цим дуже перевіреним і дуже надійним сценарієм:
Однак є деякі застереження з аплетом мережевого менеджера, які я міг би тимчасово вирішити (див. Розділ Виправлення неполадок у статті).
vpnautoconnect не працює для мене.
відповідь @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 ..Через!