Настройте автоматический перезапуск OpenVPN при новом сетевом подключении в systemd.

Вопрос или проблема

Как вы поступите, чтобы OpenVPN автоматически перезапускался при подключении к сети?

Проблема в том, что каждый раз, когда соединение с сетью теряется, или если компьютер загружается без подключения к сети, а затем подключается, OpenVPN не работает — по крайней мере, до тех пор, пока я не перезапущу openvpn вручную.

Использую Arch Linux (следовательно, systemd)

Используйте параметры –ping и –ping-restart (или –keepalive), и openvpn будет переподключаться, когда потеряет соединение.

В дополнение к ответу с ping/ping-restart, убедитесь, что в вашем файле конфигурации не используется persist-tun, чтобы вы начинали с “чистых” таблиц маршрутизации, касающихся VPN, при каждом переподключении.

Наилучшая конфигурация для динамических сетей через NetworkManager, он поддерживает OpenVPN, а также поддерживает установку нового соединения (в данном случае VPN) при подключении к любому аппаратному интерфейсу.

.

Ответ или решение

Чтобы гарантировать, что OpenVPN автоматически перезапускается при подключении к новой сети на системах, использующих systemd, таких как Arch Linux, следует учитывать следующие аспекты:

Предисловие о проблеме

Проблема заключается в том, что OpenVPN не работает автоматически после потери сетевого подключения или после загрузки системы в отсутствие сети. Сеть необходимо вручную перезапускать. Решение требует автоматизации этого процесса.

Системный подход

Для достижения этого можно воспользоваться возможностями, предоставляемыми systemd, а также дополнительными параметрами конфигурации OpenVPN.

Шаг 1: Использование Systemd для автоматизации

Создание и настройка службы systemd позволит автоматически перезапускать OpenVPN:

  1. Создайте скрипт, который будет перезапускать OpenVPN

    Сохраните его как, например, /usr/local/bin/restart-openvpn.sh:

    #!/bin/bash
    systemctl restart openvpn-client@<your-config>.service

    Убедитесь, что скрипт исполняемый:

    chmod +x /usr/local/bin/restart-openvpn.sh
  2. Создайте systemd unit для отслеживания сетевых изменений

    Создайте файл /etc/systemd/system/restart-openvpn.service:

    [Unit]
    Description=Restart OpenVPN on network change
    Wants=network-online.target
    After=network-online.target
    
    [Service]
    ExecStart=/usr/local/bin/restart-openvpn.sh
    Type=oneshot
    
    [Install]
    WantedBy=multi-user.target
  3. Создайте systemd path unit для отслеживания изменений сетевых подключений

    Создайте файл /etc/systemd/system/restart-openvpn.path:

    [Unit]
    Description=Monitor network changes to trigger OpenVPN restart
    
    [Path]
    PathExistsGlob=/sys/class/net/*/carrier
    
    [Install]
    WantedBy=multi-user.target
  4. Активируйте созданные службы

    Выполните следующие команды в терминале:

    systemctl enable restart-openvpn.service
    systemctl enable restart-openvpn.path
    systemctl start restart-openvpn.path

Шаг 2: Настройка OpenVPN

В конфигурации OpenVPN файле:

  • Используйте параметры --ping и --ping-restart
    Эти параметры обеспечат автоматическое восстановление соединения в случае его потери.

    ping 10
    ping-restart 60
  • Избегайте использования persist-tun
    Данный параметр может сохранить старую конфигурацию сетевого интерфейса, что нежелательно при изменении сети.

Шаг 3: Рассмотрите использование NetworkManager

Для тех, кто использует NetworkManager, это может быть более удобным инструментом. Он поддерживает автоматическое подключение OpenVPN после установления основного сетевого соединения, и это может стать более интегрированным решением:

  1. Установка плагина для NetworkManager:

    sudo pacman -S networkmanager-openvpn
  2. Настройка через графический интерфейс или команду:

    Это позволит управлять VPN соединениями более гибко и удобно.

Заключение

Такая конфигурация позволит автоматизировать процесс перезапуска OpenVPN при любых изменениях сети и, следовательно, повысит надежность и производительность системы. Учтите все предложенные шаги и адаптируйте решения в зависимости от специфики вашей среды.

Оцените материал
Добавить комментарий

Капча загружается...