我一直在尝试在 FreeNAS 上设置 OpenVPN 服务器(我知道这不是最直接的选择),但遇到了一个令人费解的错误。似乎每次我尝试启动服务器时,服务器都会在“初始化序列已完成”消息后挂起。它会到达那个点并一直停留在那里,直到我不得不使用 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
其余一切似乎都运行正常。有什么想法吗?
-提前致谢。
答案1
所以,meanasspenguin 的评论给了我一个想法,我能够弄清楚。该程序实际上并没有挂起,它正在运行,只是尚未退出。为了解决这个问题,只需以守护进程模式启动该应用程序。我最终只是制作了一个简单的 shell 脚本,这样下次就不必记住它了。
启动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
注意:每次我运行位于 RAM 磁盘中的 FreeNAS Embedded 时,我都会加载库。每次重置都会清除未安装在磁盘上的任何配置更改。我只需将此脚本设置为在启动时运行,一切看起来都很顺利。