切断時にVPNに自動再接続しますか?


16

私はUbuntuのGNOMEユーザーで、切断時にVPNに自動的に再接続できる方法があるかどうか疑問に思っていましたOpenVPNプロトコルを使用しています。

Network Managerを徹底的にチェックしましたが、そのようなオプションは見つかりませんでした。特定のWiFiに接続されているときにVPNに接続するだけです。

回答:


20

18.10以降(以前のバージョンではチェックできません)NetworkManagerのVPN接続には、vpn.persistent手動で切断するまで、接続が失われたときにVPNに再接続するという設定があります。これは"no"デフォルトで設定されており、残念ながらGnome Network Settingsでもnm-connection-editorでも公開されていません。

ただし、次のようにCLIを使用して設定できます。

nmcli connection modify <Your VPN connection name> vpn.persistent yes

もちろん、その前に接続が存在している必要があります。


2
これが私が欲しかったものです。100万人に感謝
-Wyatt8740

この設定が利用できるのに、なぜネットワーク設定に表示されないのですか?そして、どこで/どのようにして知りましたか?developer.gnome.org/NetworkManager/stable/nmcli.htmlにはこれについての言及はありませんが、コマンドの実行は成功しているように見えるので、うまくいくと思います...
Al F

@alf私はちょうどターミナルでnmcliで突っついによって、この設定を見つけたと思うが、それはまたで文書化されますdeveloper.gnome.org/NetworkManager/stable/...とNM-設定のmanページに
m0NKey bR4in

19

OpenVPNには、デッドリンクを自動的に検出して再接続するための組み込みメカニズムがあります。Network Managerで[接続の編集]に移動し、VPN接続を選択して[編集]を選択します。「VPN」タブで「詳細...」をクリックし、「一般」タブに移動します。そこでは2つの関連オプションがあります。

「Specify ping interval」は、OpenVPNにリンクがまだ生きているかどうかをチェックする頻度を伝えます。「出口の指定またはpingの再開」は、アクションが実行されるまでの待機時間と実行するアクションを示します。

例:私の設定は「30 / ping-restart / 300」です。つまり、OpenVPNは、リンクがまだアクティブであるかどうかを30秒ごとにチェックします。リンクが300秒間ダウンすると、再起動が開始されます。

この方法では、外部スクリプトは必要ありません...


1
これは受け入れられる答えになるはずです。
necbot 2017

5
これは少なくともUbuntu 18.04には当てはまりません。ping間隔とping-restartがありますが、とにかくそれ自体が無効になります。
表示名

@SargeBorsch:m0NKey bR4inによって答えは(設定作業に思えるvpn.persistentyes)。
kontextify

1

少し掘り下げた後、私はこの答えを見つけ、それをテストしました(Ubuntu GNOME 15.04で)、そして今のところそれは機能しているようです。

追加できるのは、スクリプトファイルが作成されたら、必ずしも/ homeフォルダーに保存する必要はないということです。どこにでも保存でき、実行可能にして、スタートアッププログラムのリストに追加できます。


0

それがSMOP(Simple Matter of Programming)であると主張した後、「リンクダウン」を監視してユーザースクリプトを実行するbashスクリプトを記述しました。CPU使用率が低く、while true....sleep 30メソッドよりも応答性が高い。こちらで私の回答をご覧ください。それは「回転WiFi接続」についてですが、おそらくあなたのためにも機能します


0

このスクリプトは16.04で機能しますが、機能しnmcli con statusなくなります。

#!/bin/bash
CON="purple"
STATUS=`nmcli con show --active | grep purple | cut -f1 -d " "`
if [ -z "$STATUS" ]; then
    nmcli con up $CON
fi

少し短いSTATUS="$(nmcli con show -f name | grep purple)"。または、実際の接続がアクティブかどうかを単に確認することもできますnmcli con show --active id 'purple'
smac89

0

他の答えに基づく完全な答えは次のようになると思います:

#!/bin/bash +x
  while [ "true" ]
   do
        CON="Your-VPN-Name"
        STATUS=`nmcli con show --active | grep $CON | cut -f1 -d " "`
        if [ -z "$STATUS" ]; then
                echo "Disconnected, trying to reconnect..."
                (sleep 1s && nmcli con up $CON)
        else
                echo "Already connected !"
        fi
        sleep 30
   done
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.