根据OpenVPN 2 Cookbook:
persist-tun 和 persist-key 选项用于确保在底层网络中断时自动恢复连接。使用用户 nobody 和组 nobody(或组 nogroup)时,这些选项是必需的。
这在实践中意味着什么?
在服务器端有一个 tun0 设备。OpenVPN 进程以nobody 和nogroup 的身份运行。到目前为止一切正常。但是persist-tun选项究竟有什么作用呢?根据我是否连接,相同的 tun0 设备仍然存在。
从另一个问题:
摆脱persist-tun选项。如果没有该选项,则 VPN 链接将断开,tun 设备将关闭并被移除。当然,问题是删除该选项意味着您需要以 root 而不是 nobody 身份运行 VPN 守护进程。因为作为 nobody 帐户,当重新建立连接时,OpenVPN 将无法创建新的 tun 设备。
删除persist-tun选项后,tun设备仍然存在,没有连接的客户端。
请大神详细解释一下persist-tun、persist-key、user nobody、group nogroup、keepalive选项涉及的过程。