![OpenVPN无法动态分配TUN / TAP设备](https://linux22.com/image/544220/OpenVPN%E6%97%A0%E6%B3%95%E5%8A%A8%E6%80%81%E5%88%86%E9%85%8DTUN%20%2F%20TAP%E8%AE%BE%E5%A4%87.png)
OpenVPN 客户端首次通过 /etc/init.d/openvpn 启动时工作正常,但如果主服务器重新启动,则它们无法重新连接。
这是我在系统日志中收到的错误:
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' 选项也有一点帮助,但帮助不大。隧道仍然无法维持一夜。
有什么建议么?
答案1
我猜你需要在服务器上使用 --ifconfig-pool-persist 选项,以便在服务器守护进程重新启动时保持客户端 <-> IP 地址映射。否则,即使 --persist-tun 处于活动状态,客户端也需要调用 ifconfig 来重新配置其 tun 设备。如果他们没有 root 权限,这将不可避免地失败。