Клиенты OpenVPN работают нормально, когда они запускаются /etc/init.d/openvpn в первый раз, но они не могут повторно подключиться, если главный сервер перезагружен.
Это ошибка, которую я получаю в системном журнале:
ovpn-openvpn[8113]: Note: Cannot ioctl TUNSETIFF tun: Operation not permitted (errno=1)
ovpn-openvpn[8113]: Note: Attempting fallback to kernel 2.2 TUN/TAP interface
ovpn-openvpn[8113]: Cannot allocate TUN/TAP dev dynamically
ovpn-openvpn[8113]: Exiting
Это права доступа к файлам на устройстве tun:
crw-rw-rw- 1 root root 10, 200 2011-03-24 16:51 /dev/net/tun
Если я затем перезапущу клиента с помощью «/etc/init.d/openvpn restart», они подключатся нормально.
Кроме того, проблемы возникают только тогда, когда openvpn запускается от имени пользователя none. Запуск от имени «root» решает все, но это не жизнеспособное решение.
Опция 'persist-tun' также немного помогает, но не слишком сильно. Туннели по-прежнему не работают на ночь.
Какие-либо предложения?
Я предполагаю, что вам нужно использовать параметр --ifconfig-pool-persist на вашем сервере, чтобы сохранить отображение IP-адреса client <-> при перезапусках вашего серверного демона. В противном случае клиентам необходимо вызвать ifconfig для перенастройки своего устройства tun даже при активном --persist-tun. Это неизбежно приведет к сбою, если у них нет привилегий root.