OpenVPN客户端首次由/etc/init.d/openvpn启动时工作正常,但如果主服务器重新启动,则无法重新连接.
这是我在syslog中得到的错误:
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以“nobody”用户身份运行时才会出现问题.以“root”身份运行可以解决所有问题,但这不是一个可行的解决方案.
‘persist-tun’选项也有一点帮助,但不是太多.隧道仍然没有持续一夜.
有什么建议?
解决方法
我猜你需要在你的服务器上使用–ifconfig-pool-persist选项来保持客户端< - >跨服务器守护程序重新启动的ip地址映射.否则,即使使用–persist-tun active,客户端也需要调用ifconfig来重新配置其tun设备.如果他们没有root权限,这将永远失败.