我正在寻找一种保持 VPN 隧道活动的方法。我有一个 OpenVPN 服务器和一些只能通过 VPN 访问的客户端。有时,我需要重新启动我的 OpenVPN 服务器。当我这样做时,我的所有客户端都会失去连接,并且一旦服务器再次启动,就不会自动重新连接。我想知道是否有一种方法可以让客户端在连接断开后(例如 60 秒后)重新启动连接并继续尝试直到连接。
PS. 该keepalive
指令在服务器指令中设置如下:
keepalive 10 120
答案1
keepalive
尝试在客户端配置文件中也使用。或者使用ping-restart
和ping
组合,这是keepalive
内部使用的。效果很好。
答案2
在服务器配置中,设置此选项:
# Notify the client that when the server restarts so it
# can automatically reconnect.
explicit-exit-notify 1
看参考手册在这里:–explicit-exit-notify [n] 在 UDP 客户端模式或点对点模式下,如果隧道重新启动或 OpenVPN 进程退出,则向服务器/对等端发送退出通知。在客户端模式下,在退出/重新启动时,此选项将告诉服务器立即关闭其客户端实例对象,而不是等待超时。n 参数(默认值 = 1)控制客户端尝试重新发送退出通知消息的最大尝试次数。在 UDP 服务器模式下,向连接的客户端发送 RESTART 控制通道命令。n 参数(默认值 = 1)控制客户端行为。当 n = 1 时,客户端将尝试重新连接到同一服务器,当 n = 2 时,客户端将前进到下一个服务器。除非启用此选项,否则 OpenVPN 不会发送任何退出通知。