Ubuntu GNOME 16.04で特定のネットワークを使用するときにVPNに自動的に接続する


12

Unityでは、ネットワークマネージャーには、接続がアクティブなときにVPNの自動使用を設定するすべての接続で使用できるチェックボックスがあります。

Ubuntu 16.06 Unityの接続設定の画像

Ubuntu GNOME 16.04でこのようなオプションを取得する方法はありますか?(これはGNOME 3.18を使用します)。接続設定ページにはこのオプションがないため: ここに画像の説明を入力してください


Ask Ubuntuへようこそ!この回答は、両者が同じNetworkManagerを共有していることを示唆しています。再確認していただけますか?それらが異なる場合、Ubuntu GNOMEの下にNetworkManagerのスクリーンショットを含めることもできますか?
アンドレアラザロット


@AndreaLazzarottoありがとう!スクリーンショットを提供しました。この質問で提案されたvpnautoconnectを試して、動作するかどうかを確認します。しかし、あなたが言ったように、両方のフレーバーで同じネットワークマネージャーであるため、ネットワークマネージャー自体で設定をアクティブにできるかどうか疑問に思います。
S.Mohsen SH

この機能は、Ubuntu 17.04にはまだないようです。なぜ削除されたのかはわかりません。解決策を探してごくわずかしか見つけなかった後、VPNを使用せずに自動接続機能を好む人が増えているのは奇妙に思えます。
Rsync

システムに/etc/NetworkManager/system-connections接続プロファイルが格納されたディレクトリがあり、設定の編集を気にしない場合は、特定のネットワークインターフェイスのVPNへの自動接続のトピックに関する他の場所で投稿した回答を確認する価値があります。
S0AndS0

回答:


22

これに対する答えを見つけました。奇妙なことに、ネットワークマネージャーを手動で開く必要があります(パネルや設定を使用するのとは対照的です)。

中のSO Terminalタイプnm-connection-editor。そうすると、開いたウィンドウのOPの最初の画像にオプションが表示されます。

これは16.04および17.04で機能します。うまくいけば、GNOMEの今後のバージョンでさまざまなネットワークマネージャーを統合できることを願っています。


これは18.04でも機能します-ありがとう!これらの設定がどこにあるかはすぐにはわかりませんでした。
ジョニーコーダー

Debian 9 Stretchでも機能します。ありがとうございました!
クリスチャントッフォ

1

私はスクリプトで問題を解決しました

/etc/NetworkManager/dispatcher.d

このフォルダーには、ネットワークステータスが変更されるたびにネットワークマネージャーによってアルファベット順に呼び出されるスクリプトが含まれています。これには、VPNが起動/起動時だけでなく、サスペンド/スリープ後の再開時にもアクティブになるという利点があります(私が見た別のソリューションとは異なります)。

これが機能するためには、すでにネットワークマネージャーで設定されているVPN接続が必要です。

  1. 最初のステップ:この(ドイツ語)ページ(https://wiki.ubuntuusers.de/NetworkManager/Dispatcher/)のアドバイスに従いました。新しいスクリプト02VPN1を開いて名前を付けました

    sudo YOURTEXTEDITOR /etc/NetworkManager/dispatcher.d/02VPN1
    

そして書いた:

    #!/bin/bash
    VPN_CONNECTION_NAME="NAME_OF_YOUR_VPN_CONNECTION"
    if [ "$2" = "up" ]; then
       sleep "3s"
       nmcli con up id "${VPN_CONNECTION_NAME}"
    fi

NAME_OF_YOUR_VPN_CONNECTIONは、自動接続する接続のセットアップに使用した接続ファイルNAME_OF_YOUR_VPN_CONNECTION.confの名前です。

["$ 2" = "up"]の条件は、ネットワーク接続(インターネット接続)を開始したときにのみVPN接続が自動的に接続されることを意味します。VPNサービスを実行したら、それを無効にするか、別のVPNを選択できます。

このVPNを無効にせずに実行する場合にのみ、このIf条件なしでスクリプトを作成できます。

    #!/bin/bash
    VPN_CONNECTION_NAME="NAME_OF_YOUR_VPN_CONNECTION"
    sleep "3s"
    nmcli con up id "${VPN_CONNECTION_NAME}"

このファイルはルートとしてのみ設定できるため、追加の操作を行わずにルートが所有します。それはそうあるべきです。

最後に:このファイルを実行可能にします。そうしないと、スクリプトは実行されません。ターミナルで:

    sudo chmod +x  /etc/NetworkManager/dispatcher.d/02VPN1
  1. 2番目のステップ(上記のリンクの手順とは異なります。ここからアドバイスを使用しました:https : //ubuntuforums.org/showthread.php?t=2193559&p=12990193#post12990193

このプロセスはrootによって実行され、rootはまだVPNに使用するパスワードにアクセスできません。次の手順を実行します。/ etc / NetworkManager / system-connectionsのNAME_OF_YOUR_VPN_CONNECTIONファイルをルートとして開きます。ターミナルを開き、以下を実行します。

    sudo YOURTEXTEDITOR /etc/NetworkManager/system-connections/NAME_OF_YOUR_VPN_CONNECTION

a)行を変更する

    password-flags=1 

    password-flags=0

b)下部に追加します

    [vpn-secrets]
    password=PASSWORDOFYOURCONNECTION

ファイルを保存して閉じます。

  1. Network Managerを再起動します。ターミナル:

    systemctl restart NetworkManager
    

新しい設定を初期化します。これで完了です。

私は昨日これをしました、そして私が見ることができる限り、それはうまく働きます。保証なし!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.