synology.forum архив спільноти · 2005–2022
ai.synology.forum →
ГлавнаяДополнительные Приложения Synology › Как увеличить число попыток подключения клиента OVPN

Как увеличить число попыток подключения клиента OVPN

kucher · 06.01.2020

Всем привет. Вопрос в теме. Настроен клиент OVPN на NAS.

Проблема такова, что NAS уже поднялся, а провайдерское оборудование - нет. Либо на том конце сервер лёг/выключили свет и т.п.

Synology по мануалу делает 5 попыток через каждые 30 секунд и усё. Специально сделал ему рестарт, откинув кабель LAN на пол-часа. Потом подключил, вижу по логам что он "пытался но увы". Подождал минут 15: пока вручную не ткнул - не хочет конектиться сам.

Как победить?

 

Ставить перед ним Микротик/менять провайдера/строить свою электростанцию и т.п. - не предлагать.

kucher · 13.01.2020

Сам себе отвечаю:

1. Заходим на NAS по ssh, под root. Как это сделать написано тут: https://www.synology.com/ru-ru/knowledgebas..._via_SSH_Telnet

Лучше, если предварительно Вы установите "Midnight Commander" из пакетов.

3. Создаём каталог /volume1/scripts/.

2. Идём в /usr/syno/etc/synovpnclient/ и в этот момент останавливаем и снова запускаем своё соединение VPN из вэб-админки. В указанной директории должен появиться файл "vpnc_connecting". Он будет существовать, пока не установится соединение. Содержит всего 3 строки и если Вам не лень их набирать и искать ID своего VPN-соединения, то можете пропустить этот пункт. Вам нужно будет найти ID своего VPN-соединения в файле /usr/syno/etc/synovpnclient/vpnc_last_connect или в поддерикториях /usr/syno/etc/synovpnclient/. Копируем файл "vpnc_connecting" в /volume1/scripts/.

3. Содержимое файла "vpnc_connecting":

conf_id=o1481981647
conf_name=MyVpnConnection
proto=openvpn

Здесь обратите внимание, что ID, имя соединения и его тип (vpn, openvpn и т.д.) - должны быть Вашими.

 

4. Теперь идём в админку - Панель управления - Планировщик заданий - Создать - Запланированная задача - Скрипт, заданный пользователем.

 

Здесь:

а) Вкладка ОСНОВНОЕ.

- задача: Имя задачи.

- пользователь: root

б) Вкладка РАСПИСАНИЕ

- Выполнять в следующие дни: ежедневно

- время первого выполнения: 00:00

- частота: каждые 5 минут

- время последнего выполнения: 23:55

в) Вкладка НАСТРОЙКИ ЗАДАЧ

Здесь в поле "скрипт заданный пользователем", вставить этот код:

if ping -c 4 "IP, который доступен только когда поднят ваш VPN тоннель, без кавычек" >> /dev/null
then
exit 0
else
cp /volume1/scripts/vpnc_connecting /usr/syno/etc/synovpnclient/
/usr/syno/bin/synovpnc connect --id=o1481981647
fi

 

Обратите внимание, что в предпоследней строке скрипта так же нужно указать ID вашего соединения.

Скрипт проверяет доступность указанного хоста, а в случае его недоступности копирует файл с настройками VPN и запускает соединение, что можно наблюдать, если перейти в Панели управления в Сеть - Сетевой интерфейс. Если хост доступен - скрипт не делает ничего. Это важно, т.к. выполнение попыток соединения при уже существующем соединении VPN может привести к серьёзным коллизиям.

Команда /usr/syno/bin/synovpnc имеет разнообразные опции и их можно посмотреть, запустив её в консоли так: /usr/syno/bin/synovpnc --help. Из мануала следует, что можно запустить /usr/syno/bin/synovpnc с опциями "retry=" и "interval=". Просто чтобы Вы знали. Но я это не проверял, т.к. у меня заработало и так, как выше написал.

 

После того как соединение установится - файл /usr/syno/etc/synovpnclient/vpnc_connecting удалится системой автоматически.

 

Перед запуском задания, ради проверки, не забудьте остановить своё соединение VPN, иначе ничего не произойдёт.

 

Частоту перезапуска задания можно выставить разную, но я бы не рекомендовал делать её менее 5-ти минут.

Если У вас при запуске задания ничего не происходит - проверьте правильность синтаксиса скрипта и соответствие директорий в нём. Лично у меня скрипт сразу не заработал, поскольку при копипасте некоторые символы заменились на некорректные.

 

По материалам:

https://mickderksen.wordpress.com/2016/06/0...on-on-synology/

https://debian.pro/176