web-dev-qa-db-ja.com

OpenVPNがいつでもゲートウェイに自動再接続するようにする方法

私は最近、OpenVPNが起動時にVPNゲートウェイに自動接続する組み込みの方法を発見しました。これは、/etc/default/openvpnAUTOSTARTパラメータの一部として。まあ、それは魅力のように機能しますが、接続が切断された場合にOpenVPNに再接続するための良い方法は何ですか?

私はLinuxを初めて使用するので、私の実装は基本的にdo whileを含むbashスクリプトであり、OpenVPNゲートウェイのIPにpingできるかどうかをチェックし、それができない場合はSudo 'openvpn --config /path/to/ovpn再接続します。

ホストが接続を自動的に再確立するより信頼できる方法を教えていただけませんか?

5
Maxim V. Pavlov

「man openvpn」から:

--ping-restart n --ping-exitに似ていますが、リモートからpingまたは他のパケットを受信せずにn秒経過後にSIGUSR1の再起動をトリガーします。

このオプションは、リモートピアに動的IPアドレスがあり、低TTL DNS名を使用して http://dyndns.org/ +などのサービスを使用してIPアドレスを追跡する場合に役立ちます。 ddclientなどの動的DNSクライアント。

ピアに到達できない場合は、再起動がトリガーされ、-remoteで使用されるホスト名が再解決されます(--resolv-retryも指定されている場合)。

サーバーモードでは、-ping-restart、-inactive、またはその他の内部生成された信号は常に個々のクライアントインスタンスオブジェクトに適用され、サーバー全体には適用されません。また、サーバーモードでは、通常は再起動の原因となる内部で生成された信号により、代わりにクライアントインスタンスオブジェクトが削除されることに注意してください。

クライアントモードでは、--ping-restartパラメーターはデフォルトで120秒に設定されています。このデフォルトは、サーバー構成の--keepalive設定に基づいて、クライアントがサーバーから代替値をプルするまで保持されます。 120秒のデフォルトを無効にするには、クライアントで--ping-restart 0を設定します。

SIGUSR1の詳細については、以下の信号セクションを参照してください。

SIGUSR1の動作は--persist-tun、-persist-key、-persist-local-ip、および--persist-remote-ipオプションで変更できることに注意してください。

--ping-exitと--ping-restartは相互に排他的であり、一緒に使用できないことにも注意してください。

7
Bytor