Назад | Перейти на главную страницу

OpenVPN не запускается на ubuntu - PID не найден

Я использую Ubuntu версии 12.04 LTS, и я установил на нее OpenVPN. После некоторого времени устранения неполадок, почему мой клиент не подключается (я сгенерировал ключи и настроил клиент), я запустил «service openvpn status» из командной строки и получил следующую ошибку:

не удалось получить доступ к файлу PID для VPN-сервера

Я перезагрузил, запустил и перезапустил службу, но каждый раз, когда я проверяю статус, я получаю сообщение об ошибке PID. Я почти уверен, что не могу подключиться, потому что служба не работает.

Где я могу начать устранение неполадок? Я не знаю, что искать. Любая помощь приветствуется.

Спасибо!

Скрипт инициализации просто сообщает, что OpenVPN не запускается, и из-за этого openvpn не могу прочитать файл pid.
Ты должен проверить system/daemon/openvpn log, чтобы узнать, почему не удалось запустить.

could not access PID file for VPN 'server' означает, что файл PID не может быть прочитан. Причины могут быть разные:

  • у вас нет прав на чтение файла pid - вы запускали команду как root или с sudo?
  • файл pid не существует, так как процесс не запущен или не может создать файл по какой-то причине

Таким образом, для дальнейшей отладки вам нужно будет посмотреть на /var/run/openvpn.server.pid сам

  • он существует?
  • есть ли процесс openvpn, запущенный с указанным в файле pid?
  • работают ли другие процессы openvpn?

Если процесс не запущен, ваша конфигурация, скорее всего, неверна, и вам придется прочитать журналы, почему он не запустился. Бег service openvpn start тоже может принести полезный результат.

Openvpn настроен таким образом, что позволяет запускать несколько экземпляров службы. Это очень полезно, если у вас разные конфигурации в качестве клиента или сервера и вы хотите управлять ими отдельно.

Файлы конфигурации systemd для openvpn (расположенные в / lib / systemd / system) содержат символ «@», показывающий, что вы можете включить различные экземпляры для службы. Я включил с ним некоторые VPN-соединения. Если в дополнение к этим файлам конфигурации, отмеченным знаком «@», есть файл без «@», вы можете включить только необходимые соединения:

systemctl disable openvpn.service
systemctl enable openvpn@<conf filename for the connection>.service

Эти экземпляры при запуске должны вставить правильный вариант

--writepid <conf filename for the connection>.pid 

В любом случае, если вы предпочитаете тестировать что-то попроще, вы можете включить следующую строку в / etc / openvpn /<conf filename for the connnection>.conf

writepid /var/run/<conf filename for the connection>.pid

Вроде как у вас нет скрипта автоматического запуска! Что обычно. Насколько мне известно, OpenVPN не устанавливает такую ​​вещь самостоятельно ...

Прежде всего попробуйте запустить сервер вручную.
Для этого потребуются собственные окна Терминала. И пока OPENVPN работает таким образом, TerminalWindow нельзя будет использовать для других целей.

Попробуйте это (замените / etc / openvpn / config-files / на свой путь):

openvpn /etc/openvpn/config-files/server.conf

Некоторая информация появится в этом окне.
Теперь попробуйте подключиться к Серверу с помощью клиента. Вы можете закрыть openvpn, нажав CTRL + C

Если это было решение, выполните следующие действия для запуска OpenVPN-сервера после загрузки системы.

Сделайте это в терминале:

vim /etc/init.d/OnBootOpvenvpn.sh

и напишите в следующих строках:

#! / bin / sh
# /etc/init.d/OnBootOpenvpn.sh #
openvpn /etc/openvpn/config-files/server.conf

Это будет для Сервера. Конечно, вы должны изменить / etc / openvpn / config-files / на свой путь !!!

Для клиентов сделать то же самое, просто не забудьте выбрать client.conf!

Затем вы добавите этот сценарий для запуска после загрузки системы.
Сделайте это в терминале:

update-rc.d OnBootOpvenvpn.sh defaults

Можно сказать, что у него отсутствуют заголовки. Вы можете пока игнорировать это.
Я не уверен, что делает "defaults", я думаю, что это означает запуск как "нормальную" программу, после завершения загрузки и выполнения глубоких системных действий.

Сценарий запуска просто попытается запустить OpenVPN, но в случае сбоя не выдаст сообщений об ошибках. Запустить OpenVPN вручную

$ openvpn /etc/openvpn/server.conf

И устраните любые ошибки, которые вы там видите. Если вы не видите ошибок, убедитесь, что вы не установили log выключить, и, возможно, увеличить многословие с помощью verb.

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

Я сам написал определение работы Upstart для OpenVPN и без проблем пользуюсь им в течение 2 лет. Загрузите файлы ниже, затем замените свой /etc/init.d/openvpn с символической ссылкой на / lib / init / выскочка-задание, бегать sudo initctl reload-configuration. Вы можете редактировать / и т.д. / по умолчанию / openvpn для настройки запуска демона (по умолчанию все VPN из / и т.д. / openvpn / запущены). Экземпляры (переменная CONN для задания подключения) названы в честь /etc/openvpn/*.conf файлы без расширения.

/etc/init/openvpn-connection.conf

/etc/init/openvpn-autostart.conf

/ и т. д. / по умолчанию / openvpn

Это решение совместимо до Ubuntu 14.04 LTS, есть небольшие проблемы с 14.10, а в 15.04 Upstart больше не существует.