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

Сервер OpenVPN зависает при «Последовательность инициализации завершена»

Я пытался настроить сервер OpenVPN на FreeNAS (я знаю, что это не самый простой вариант) и столкнулся с загадочной ошибкой. Кажется, что сервер зависает после сообщения «Последовательность инициализации завершена» всякий раз, когда я пытаюсь его запустить. Он достигнет этой точки и просто будет сидеть там, пока мне не придется прервать выполнение с помощью ctrl + c.

Мой файл openvpn.conf выглядит следующим образом:

#
# Sample OpenVPN configuration file for
# office using SSL/TLS mode and RSA certificates/keys.
#
# '#' or ';' may be used to delimit comments.

# Use a dynamic tun device.
# For Linux 2.2 or non-Linux OSes,
# you may want to use an explicit
# unit number such as "tun1".
# OpenVPN also supports virtual
# ethernet "tap" devices.
dev tap
;dev tun

# 192.168.1.102 id this server's actual IP address.
local 192.168.1.102

# 10.8.0.1 is this server's virtual IP address.
; ifconfig 192.168.1.102 255.255.255.0
server 10.8.0.0 255.255.255.0

# In SSL/TLS key exchange, this machine will
# assume server role and others
# will assume client role.
tls-server

# Diffie-Hellman Parameters (tls-server only)
dh /mnt/ZFS1/bin/openvpn/keys/dh1024.pem

# Certificate Authority file
ca /mnt/ZFS1/bin/openvpn/keys/ca.crt

# Server certificate/public key
cert /mnt/ZFS1/bin/openvpn/keys/server.crt

# Server private key
key /mnt/ZFS1/bin/openvpn/keys/server.key

# TCP or UDP server?
;proto tcp
proto udp

# OpenVPN 2.0 uses UDP port 1194 by default
# (official port assignment by iana.org 11/04).
# OpenVPN 1.x uses UDP port 5000 by default.
# Each OpenVPN tunnel must use
# a different port number.
# lport or rport can be used
# to denote different ports
# for local and remote.
port 1194

# Downgrade UID and GID to
# "nobody" after initialization
# for extra security.
 user nobody
 group nobody

# Maintain a record of client <-> virtual IP address
# associations in this file.  If OpenVPN goes down or
# is restarted, reconnecting clients can be assigned
# the same virtual IP address from the pool that was
# previously assigned.
ifconfig-pool-persist ipp.txt

# The keepalive directive causes ping-like
# messages to be sent back and forth over
# the link so that each side knows when
# the other side has gone down.
# Ping every 10 seconds, assume that remote
# peer is down if no ping received during
# a 120 second time period.
keepalive 10 120

# The persist options will try to avoid
# accessing certain resources on restart
# that may no longer be accessible because
# of the privilege downgrade.
persist-key
persist-tun

# Output a short status file showing
# current connections, truncated
# and rewritten every minute.
status openvpn-status.log

# Verbosity level.
# 0 -- quiet except for fatal errors.
# 1 -- mostly quiet, but display non-fatal network errors.
# 3 -- medium output, good for normal operation.
# 9 -- verbose, good for troubleshooting
verb 3

Все остальное работает без проблем. Любые идеи?

-Заранее спасибо.

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

start_openvpn.sh:

    #!/bin/bash  
    ldconfig -Rm /mnt/ZFS1/bin/openvpn/lib  
    ldconfig -Rm /mnt/ZFS1/bin/openssl/lib  
    /mnt/ZFS1/bin/openvpn/sbin/openvpn --config /mnt/ZFS1/bin/openvpn/openvpn.conf --daemon

Примечание. Я загружаю библиотеки каждый раз, когда запускаю FreeNAS Embedded, которая находится на RAM-диске. Каждый сброс приведет к стиранию любых изменений конфигурации, которых нет на смонтированном диске. Я просто установил этот сценарий для запуска при запуске, и все кажется золотым.