我一直在尝试在 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 …
Run Code Online (Sandbox Code Playgroud) 我相信这可能看起来像一个简单的问题,但我似乎无法向谷歌提出正确的问题。简而言之,当给定的文件系统安装在多个点时,我无法理解符号链接的功能。
我一直在遵循 FreeBSD 手册在我的小型家庭服务器上设置应用程序监狱。一切都很顺利,直到我遇到了设置主模板的倒数第二步。更具体地说,当我要发出以下命令时:
# cd /home/j/mroot
# mkdir s
# ln -s s/etc etc
# ln -s s/home home
# ln -s s/root root
# ln -s ../s/usr-local usr/local
# ln -s ../s/usr-X11R6 usr/X11R6
# ln -s ../../s/distfiles usr/ports/distfiles
# ln -s s/tmp tmp
# ln -s s/var var
Run Code Online (Sandbox Code Playgroud)
现在,这些命令将执行得很好。我关心的是为什么。我知道主模板将被挂载为只读,因此为多个监狱挂载一个文件集是没有问题的。我的困惑是,鉴于主模板仅维护一组链接,操作系统如何知道要使用哪个服务的数据目录(/s 目录,为每个服务安装读写)?假设我有两个服务,www 和 ftp。每个都将使用 /home/j/mroot 中的主模板(在 /home/j/ 处以只读方式挂载)并拥有自己的数据目录(在 /home/js/ 中找到;在 /home/j/ 处挂载读写) )。基于这些链接,文件系统如何知道它应该写入一个 jail 中的 www 数据目录和另一个 jail 中的 ftp 数据目录?
另外,为什么某些链接需要“../”路径运算符?我的理解是那些会让你直接离开当前目录并返回到文件系统中的其他地方,这可能是一个无效的路径?
如果这些是简单的问题,我深表歉意。我的搜索没有找到任何结果,但我当然怀疑我可能只是问错了问题。作为参考,这里是特定 FreeBSD 手册页面的链接。
http://www.freebsd.org/doc/en/books/handbook/jails-application.html
预先感谢您的帮助。