我正在尝试通过 Debian Squeeze 上的 OpenVPN 链接挂载 NFS 文件系统。问题是 init 脚本等的默认布局尝试在启动 VPN 之前挂载 NFS 文件系统。使用默认配置,系统在启动期间会挂起。
我的 OpenVPN 配置是标准的(.conf
/etc/openvpn 中的文件),我的 fstab 是
10.123.4.5:/path1 /localpath1 nfs rw,acl,relatime,soft,intr 0 0
10.123.4.5:/path2 /localpath2 nfs rw,acl,relatime,soft,intr 0 0
10.123.4.5:/path3 /localpath3 nfs rw,acl,relatime,soft,intr 0 0
我尝试openvpn vpnname
在 中添加物理接口 (eth1) 的节/etc/network/interfaces
,这使得它在启动 eth1 时尝试启动 VPN,但它仍会先尝试挂载 NFS。
关闭也是一个问题:使用默认配置,OpenVPN 会在使用 NFS 挂载的服务之前停止,因此停止/重启会挂起。
我该如何让它工作?最好采用简洁的“这是‘正确’的方法”解决方案;接受务实的解决方案。:)
答案1
您尝试过“bg”安装选项吗?这应该允许安装继续在后台启动。
答案2
如果您改变初始化脚本的顺序,将服务按以下顺序排列,会怎么样?
- 联网
- 开放VPN
- nfs 相关服务
由于 Debian 在运行级别 2 启动,您可以进入 /etc/rc2.d 目录,更改 S 前面的数字(例如 S91apache2),将 mountnfs.sh 中的数字改为更高的数字,以确保它将在 openvpn 和网络守护进程之后执行。
答案3
两个选项:
- 使用 autofs 进行这些挂载;它们只有在实际访问时才会被挂载(大概只有在 VPN 启动后)。
- 添加
noauto
到挂载选项;然后在运行的 OpenVPN 之后添加自定义的启动脚本mount /localpath1
等。