Я использую Ubuntu 13.04 с Gnome, и недавно я установил (открытый) VPN. Есть ли способ включить его по умолчанию? Каждый раз, когда я загружаюсь или даже теряю соединение, я должен включить VPN вручную. Есть ли вариант, который мне не хватает?
Я использую Ubuntu 13.04 с Gnome, и недавно я установил (открытый) VPN. Есть ли способ включить его по умолчанию? Каждый раз, когда я загружаюсь или даже теряю соединение, я должен включить VPN вручную. Есть ли вариант, который мне не хватает?
Ответы:
С помощью nm-апплета индикатора Network Manager (апплет 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>
Установите это для запуска при запуске.
Перейдите в Dash, введите и выберите Startup Applications, нажмите Add, и добавьте команду nmcli, указанную выше (с UUID). Нажмите «Добавить». В поле name введите то имя, которое вы хотите использовать, и в 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, и я, кажется, не единственный.
Я немного его исследовал и объединил некоторый существующий код, чтобы сделать мой первый скрипт 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
Инструкции:
Создайте пустой текстовый файл с именем, например, vpn-auto-connector.sh (я сохранил его в своей домашней папке. Щелкните правой кнопкой мыши файл и выберите «Свойства-> Разрешения» и установите флажок «Разрешить запуск файла как программы». (Возможно, вам придется сохранить файл где-нибудь еще и / или измените права на чтение / запись / чтение, если на вашем компьютере несколько пользователей.)
Скопируйте код сверху в файл, который вы создали. Замените значения следующих трех переменных:
соединение = "Авто Ethernet"
vpn_connection = "Мое VPN-соединение"
run_interval = "60"
Их можно найти, открыв сетевой менеджер. В моем случае connection = "Auto Ethernet" - это мое активное проводное соединение (не тестировалось с беспроводной связью), а vpn_connection = "My VPN-соединение" - это имя моего VPN-соединения. run_interval = "60" - это временной интервал в секундах, когда нужно повторять сценарий.
Откройте Приложения-> Системные инструменты-> Настройки-> Запуск приложений. Добавьте подходящее имя, например «VPN Auto Connector», и в качестве команды выберите файл .sh, который вы сохранили ранее. Теперь скрипт bash будет запускаться при запуске и будет продолжать проверять, активно ли VPN-соединение. Вы можете попробовать его, отключив VPN-соединение, и оно должно снова автоматически активироваться.
Vpnautoconnect отлично работает в Ubuntu 12.04, 13.04 и 13.10 (я думаю, что в 13.10 опция «автоматически подключаться» в Network-Manager была исправлена и теперь работает)
Итак, если у вас возникли проблемы с его установкой или с тем, как он работает, или вы не можете найти опцию «openvpn» в выпадающем меню Network-Manager для создания открытого 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
Я на Ubuntu 14.04 LTS на нескольких машинах. В связи с тем, что у меня есть особые предпосылки:
Я работаю с этим очень проверенным и очень надежным сценарием:
Однако есть некоторые оговорки с апплетом менеджера сети, которые я мог бы временно решить (см. Раздел «Устранение неполадок» в статье).
vpnautoconnect не работает для меня.
Ответ @vincentYo выглядит прямо, но я не смог этого сделать, поэтому я сделал, как показано ниже.
шаг 1: создайте скрипт оболочки и добавьте команду vpn
vim auto_vpn.sh
#!/bin/sh
vpnc --enable-1des
шаг 2: откройте файл sudoer и скажите ядру, чтобы он не запрашивал пароль для этого файла.
sudo vim / etc / sudoers
большинство вещей в этом файле будут прокомментированы, просто добавьте как ниже
имя пользователя ALL = (root) NOPASSWD: your_shell_script.sh
пример:
sharath ALL = (root) NOPASSWD: /home/sharath/workspace/work/src/auto_vpn.sh
шаг 3: настройте задание cron, которое будет запускать этот скрипт оболочки, ниже задание cron будет запускаться каждую минуту (bcz мой интернет включается и выключается, поэтому каждую минуту)
* * * * * sudo /home/sharath/workspace/work/src/auto_vpn.sh
Я использую это в течение многих дней, работает нормально в Ubuntu 16.04 LTS .. Chears !!