特定のWi-Fiを使用するときに常にVPNに接続するには、nmcliを使用する方法は?

特定のWi-Fiを使用するときに常にVPNに接続するには、nmcliを使用する方法は?

nm-appletを使用すると、VPN接続と接続のユーザー名+パスワードを簡単に保存し、使用時に自動的に特定のWi-Fi接続に接続できます。パスワードを求めずに常に自動的に接続されます。

端末で他のコマンドを使用してnmcliこれを達成するにはどうすればよいですか?より簡単な接続を展開して編集できるようにスクリプトを作成したいと思います。

これまでは管理だけしてきました。

nmcli connection import type openvpn file ned.ovpn

また、保存された接続は以下で見つけることができることがわかりました。

 /etc/NetworkManager/system-connections/

ラップトップからデスクトップに同じ設定をコピーしてみましたが、何も変更されていないようです。設定を見たり変更したりできないようです。

ベストアンサー1

以下は私の元のコメントの詳細な説明です。目標は、CLIツールを使用して同等の機能を理解することです。ナミクリーユーザーがGUIツールの設定を知っている限り、設定を見つけるためにすべての文書を確認する必要はありません。このGUIツールの一時的なヘルプを使用してください。nm - 小さいプログラム、利用可能でなければなりませんどこかに(同じシステムではありません)同じ設定を使用してください。これは、ここで検討した以外の設定で使用できる一般的なアプローチです。

2つの接続が関連しています。電話します。基本MyVPN使用時に自動的に接続されます。基本。ここで変更が適用されます。基本、確認する必要があります。

$ nmcli connection show
NAME                UUID                                  TYPE       DEVICE 
main                cfa5be23-925a-4273-b5de-2f9adaac8782  wifi       --
myVPN               0d9e60ef-6b5e-4f65-8312-8db428589866  vpn        --

基本設定を表示するには、次のいずれかを実行します。

nmcli connection show id main
nmcli connection show uuid cfa5be23-925a-4273-b5de-2f9adaac8782

次のような他の多くの行がダンプされます。

connection.id:                          main
connection.uuid:                        cfa5be23-925a-4273-b5de-2f9adaac8782
connection.type:                        802-11-wireless

[...]

だから最初のダンプみんなファイルにあります。一部の出力はローカライズされているため、事前に実行することをお勧めしますexport LANG=C.UTF-8(後でインターネットで特定の設定名または値を取得または比較する必要がある場合に役立ちます)。

nmcli c show id main > /tmp/before

GUIツールの使用nm - 小さいプログラムその機能が分かると、VPNMyVPNメインに追加:

自動的に接続するようにVPNを設定してください

捨てる再び:

nmcli c show id main > /tmp/after

diff変更した内容を比較して表示できます。

$ diff -u /tmp/before /tmp/after
--- /tmp/before 2019-05-04 10:47:43.410149358 +0200
+++ /tmp/after  2019-05-04 10:47:58.798252044 +0200
@@ -15,7 +15,7 @@
 connection.master:                      --
 connection.slave-type:                  --
 connection.autoconnect-slaves:          -1 (default)
-connection.secondaries:                 --
+connection.secondaries:                 0d9e60ef-6b5e-4f65-8312-8db428589866
 connection.gateway-ping-timeout:        0
 connection.metered:                     unknown
 connection.lldp:                        default

これは、これまで目立たなかった設定があまり推測せconnection.secondariesずに設定されたことを意味します。MyVPNUUID: 0d9e60ef-6b5e-4f65-8312-8db428589866nm-セット(5)それについて話す接続設定:

string[]の補助配列

プライマリ接続自体をアクティブ化するときにアクティブにする必要がある接続UUIDのリスト。現在、VPN接続のみがサポートされています。

これで、VPNへの自動接続を再度クリアできるようになりました基本そして:

nmcli c modify id main connection.secondaries ''

そして再び追加MyVPNwith(したがって配列です+):

nmcli c modify id main +connection.secondaries 0d9e60ef-6b5e-4f65-8312-8db428589866

いくつかのグルーコード(idでuuid検索など)を使用すると、これを自動化できます。

もちろん、その行はファイルのどこかに追加または削除されますが、/etc/NetworkManager/それに依存してはいけません。

注:私はこの回答を書く前にこの設定について知りませんでした。

おすすめ記事