Я использую 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 не может быть прочитан. Причины могут быть разные:
sudo
?Таким образом, для дальнейшей отладки вам нужно будет посмотреть на /var/run/openvpn.server.pid
сам
Если процесс не запущен, ваша конфигурация, скорее всего, неверна, и вам придется прочитать журналы, почему он не запустился. Бег 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 больше не существует.