• XSS.stack #1 – первый литературный журнал от юзеров форума

[Debian] auto reconnect VPN

Создаешь файл службы в каталоге /etc/systemd/system, например, reconnect_vpn.service, и открываешь его в текстовом редакторе

sudo nano /etc/systemd/system/reconnect_vpn.service

потом вставляешь этот код:

Код:
[Unit]
Description=Auto Reconnect VPN Service
After=network.target

[Service]
Type=simple
ExecStart=reconnect.sh (путь поставь к скрипту)
Restart=always

[Install]
WantedBy=multi-user.target

опять же, не забудь про путь к скрипту


Сохрани и закрой файл.
Загрузи конфигурацию systemd:
sudo systemctl daemon-reload

Включаешь службу, чтобы она запускалась при загрузке системы:
sudo systemctl enable reconnect_vpn.service

Запустишь службу:
sudo systemctl start reconnect_vpn.service


Скрипт для reconnect.sh:



Bash:
#!/bin/bash

# Адрес для ping
PING_ADDRESS="8.8.8.8"

# Имя VPN соединения
VPN_CONNECTION="..."

while true; do
    if ! ping -c 1 $PING_ADDRESS &> /dev/null; then
        echo "Ping не удался, переподключаемся к VPN..."
        nmcli con up id $VPN_CONNECTION
        sleep 10 # ждём 10 сек
    else
        echo "Ping прошел удачно"
    fi
    sleep 5 # Чекаем каждые 5 сек
done

Все.
 
кстати к скрипту и службе systemd, можно добавить логгирование для отслеживания работы скрипта, будет примерно так:

Bash:
#!/bin/bash

# Адрес для ping
PING_ADDRESS="8.8.8.8"

# Имя VPN соединения
VPN_CONNECTION="..."

# Здесь будет лог
LOG_FILE="/var/log/reconnect_vpn.log"

while true; do
    if ! ping -c 1 $PING_ADDRESS &> /dev/null; then
        echo "$(date): Ping не удался, переподключаемся к  VPN..." >> $LOG_FILE
        nmcli con up id $VPN_CONNECTION
        sleep 10
    else
        echo "$(date): Ping успешен" >> $LOG_FILE
    fi
    sleep 5 # Чекаем подключение каждые 5 секунд
done


ну и можно настроить логгирование для службы systemd, добавь одну сроку в файл службы

[Service]
Type=simple
ExecStart=reconnect.sh
Restart=always
StandardOutput=syslog

путь файл также не забудь к скрипту
 
Создаешь файл службы в каталоге /etc/systemd/system, например, reconnect_vpn.service, и открываешь его в текстовом редакторе

sudo nano /etc/systemd/system/reconnect_vpn.service

потом вставляешь этот код:

Код:
[Unit]
Description=Auto Reconnect VPN Service
After=network.target

[Service]
Type=simple
ExecStart=reconnect.sh (путь поставь к скрипту)
Restart=always

[Install]
WantedBy=multi-user.target

опять же, не забудь про путь к скрипту


Сохрани и закрой файл.
Загрузи конфигурацию systemd:
sudo systemctl daemon-reload

Включаешь службу, чтобы она запускалась при загрузке системы:
sudo systemctl enable reconnect_vpn.service

Запустишь службу:
sudo systemctl start reconnect_vpn.service


Скрипт для reconnect.sh:



Bash:
#!/bin/bash

# Адрес для ping
PING_ADDRESS="8.8.8.8"

# Имя VPN соединения
VPN_CONNECTION="..."

while true; do
    if ! ping -c 1 $PING_ADDRESS &> /dev/null; then
        echo "Ping не удался, переподключаемся к VPN..."
        nmcli con up id $VPN_CONNECTION
        sleep 10 # ждём 10 сек
    else
        echo "Ping прошел удачно"
    fi
    sleep 5 # Чекаем каждые 5 сек
done

Все.

Благодарю за развернутый ответ.
 
Благодарю за развернутый ответ.
Пусть и в треде финансовая благодарность, но думаю это лишнее, это полезно для коммьюнити. Надеюсь все получилось :)
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх