OpenVPN persist-tun 选项 - 有什么意义?

ten*_*ohn 5 linux tunneling openvpn tun

根据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选项涉及的过程。

yur*_*sen 8

使用的原因可能有 3 个persist-tun

\n\n

1- 您需要 root 权限才能管理接口。如果 OpenVPN 更改为没人/无组,则它无法添加/删除接口。因此,有必要保留 tun 接口。

\n\n

2-如果删除 tun 接口,您将丢失指向它的路由。这意味着您的流量将通过默认路由未加密地流动。可能是您不希望发生的事情。

\n\n

3- 如果接口未删除(持续存在),则不会执行向上/向下脚本。手册说:

\n\n
\n

\xe2\x80\x93persist-tun\n 不要\xe2\x80\x99t 关闭并重新打开 TUN/TAP 设备或跨 SIGUSR1 运行向上/向下脚本或 \xe2\x80\x93ping-restart 重新启动。SIGUSR1 是重新启动信号\n与 SIGHUP 类似,但它提供了对重置选项的更细粒度的控制。

\n
\n\n

2.4手册中也有类似的解释persist-key

\n\n
\n

\xe2\x80\x93persist-key\n Don\xe2\x80\x99t 通过 SIGUSR1 或 \xe2\x80\x93ping-restart 重新读取密钥文件。此选项可以与 \xe2\x80\x93userbody 结合使用以允许重新启动由 SIGUSR1 信号触发。通常,如果您删除 OpenVPN 中的 root 权限,守护进程将无法重新启动,因为它现在无法重新读取受保护的密钥文件。

\n\n

此选项通过在 SIGUSR1 重置期间保留密钥来解决问题,因此不需要重新读取它们\xe2\x80\x99t。

\n
\n


Zor*_*che 1

我相信这更多的是客户端设置。如果客户端断开连接,在某些情况下它会删除隧道,然后重新创建隧道。我不确定它在服务器端有什么用处。由于服务器端基本上一直处于运行状态。