プロファイルを削除せずに VPN の自動接続を止める
NetworkManager は VPN プロファイルを勝手に自動接続しません。引き金はベース接続の secondaries エントリで、変えるべきはそこです。
起動のたびに、誰も使うと決めていないうちにトンネルが上がり、責任ありげに見えるチェックボックスは外しても何も起きません。これはインターフェースの不具合ではありません。NetworkManager は VPN プロファイルを勝手に自動接続しません。VPN が起動するのは、ベース接続がその名前を挙げているからです。修正箇所はもう一方のプロファイルにあり、しかも一つのプロパティで済みます。
外しているフラグは参照されていない
VPN プロファイルには独自の自動接続プロパティがありますが、VPN 接続ではマネージャーはそれを何かの起動に使いません。外してもプロファイルの見え方が整うだけで挙動は変わらず、だからこそ編集しても驚きが残ります。
文書化されている仕組みは、ベースプロファイル上の二次接続の一覧です。Wi-Fi や Ethernet の接続が有効になると、マネージャーはそこに並んだ VPN の UUID も有効にします。現在この一覧で対応しているのは VPN 接続だけで、複数の項目があると一つの編集がそのすべてに影響します。
自動接続の優先度は候補の順位を付けるだけで、これも無効化スイッチではありません。
編集する前に二つのプロファイルを読む
まず名前、UUID、種類を記録します。表示名は重複しやすく、ベース接続と VPN を取り違えやすいからです。そのうえで双方の重要なプロパティを読みます。
nmcli -f NAME,UUID,TYPE connection show
nmcli -f connection.secondaries connection show "Wired connection 1"
nmcli -f connection.autoconnect,connection.autoconnect-priority connection show "Work VPN"
グラフィカルエディターでは同じ値が別のラベルで表示されます。ベース接続の General タブには自動接続の設定があり、プラグインが入っていれば一緒に VPN を立ち上げる項目もあります。翻訳されたデスクトップでは優先度の欄が「優先度付き自動接続」と表示されることがありますが、これは有効化スイッチではありません。両者を取り違えると、チェックを外したのに起動時の状態が変わらないという結果になります。
一覧全体ではなく一項目だけを外す
このプロパティは一覧なので、新しい値を代入すると中身がすべて置き換わります。先頭のマイナスを使って UUID を一つだけ外し、残りの一覧はそのままにします。
nmcli connection modify uuid BASE_UUID -connection.secondaries VPN_UUID
nmcli -f connection.secondaries connection show "Wired connection 1"
前後で一覧を確認します。二つ目の VPN に依存しているマシンでは特に重要です。
プロファイルは特定のユーザーに限定できます。限定されている場合、編集に使うアカウントがその一覧に載っていなければなりません。そうでないとコマンドが拒否されたり、マネージャーが元の所有者に見えないユーザー別プロファイルを別に書き込んだりします。編集しても何も起きないと結論づける前に所有者を確認してください。黙って作られるユーザー別コピーは、不可解な結果の多くを説明します。
手動の再起動ではなく実際の遷移で試す
意味のある検証はベースプロファイルの再接続です。いったん切断してから接続し直すか、再起動してから、アクティブ一覧、インターフェース一覧、内部アドレスへの経路検索を見ます。
nmcli connection show --active
ip -brief address
ip route get 10.8.0.1
それでもトンネルが現れるなら、残る原因はたいていスクリプトです。マネージャーのジャーナルにはどのプロファイルがいつ有効になったかが残り、dispatcher ディレクトリはインターフェースのイベントで nmcli connection up を呼ぶフックが置かれる場所です。フックはプロファイルエディターには見えないので、チェックボックスをいじる実験を何度やっても生き残ります。
手動の経路は動くままにしておきます。それが本当の要件だからです。
望ましい状態とは
プロファイルはゲートウェイ、証明書、認証情報を保ったままインストールされたままになります。起動時には有効にならず、頼めば上がってきます。この三つが受け入れ基準です。
ベース接続の UUID はランブックに書いておきます。次に編集するのはそのプロファイルだからです。
使えるが自動ではない VPN は、欠けた機能ではなく設定上の選択であり、あと一つのプロパティで届きます。