Какая-то странная причина, я не могу заставить мой сервер OpenVPN запускаться во время загрузки, используя systemd на сервере Ubuntu Linux 16.04 LTS. Я пробовал несколько настроек, но не получилось.
Вот мой файл /lib/systemd/system/openvpn.service:
# cat /lib/systemd/system/openvpn.service
Его содержимое
# This service is actually a systemd target, # but we are using a service since targets cannot be reloaded. [Unit] Description=OpenVPN service After=network.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/bin/true ExecReload=/bin/true WorkingDirectory=/etc/openvpn [Install] WantedBy=multi-user.target
Я хотел запустить сервисы после того, как сеть будут запущена, чтобы OpenVPN мог привязать определенный IP-адрес и порт. После = network.target говорит ждать, пока nework «запуститься».
Мое решение проблемы
Я, наконец, сдался и просто написал задание cron, которое начнется после каждой перезагрузки системы:
@reboot sleep 100;/etc/init.d/openvpn restart;/etc/init.d/ssh restart;/etc/init.d/squid reload
Команда @reboot принудительно запускает задание один раз при запуске. В этом случае перезапустится сервер openvpn и sshd:
$ ss -tulpn
ИЛИ
$ netstat -tulpn
Пример вывода
tcp 0 0 10.8.0.1:80 0.0.0.0:* LISTEN 1549/lighttpd tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 1524/dnsmasq tcp 0 0 10.8.0.1:22 0.0.0.0:* LISTEN 1756/sshd tcp 0 0 10.8.0.1:3128 0.0.0.0:* LISTEN 1675/(squid-1) tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 1732/openvpn
Должен быть способ запуска сервисов (OpenVPN) после выхода из сети. Однако я не смог понять. Если кто-нибудь знает, как решить эту проблему без использования cron, дайте мне знать в разделе комментариев ниже.