インポートしたファイルを見つけるのは簡単な部分であり、しばしば間違った出発点です。重要なのは、NetworkManagerが今日どのファイルを保存済み接続として読むかであり、それは接続識別子と、インストールされたパッケージが実際に使う設定バックエンドによって決まります。その問いに答える前にインポートを編集することこそ、動作するVPNが二つの半端に正しい設定になる道です。

インポートしたファイルは保存済みプロファイルではない

VPNの問題の周りには三つの名前が漂います。接続名、インポートしたファイル名、そしてトンネルが上がるときに現れる仮想インターフェースです。どれも保存された設定を特定しませんし、接続名は編集できても、その背後のファイルは元の識別子を保ちます。

読み取り専用の一覧から始め、ラベルではなく識別子で目的のVPNを選びます。

nmcli -f NAME,UUID,TYPE connection show

チケットに貼る一覧からは、エンドポイントのホスト名と識別ラベルを外してください。役に立つのは種類と識別子で、残りは他人に必要のない文脈です。共有する前に残りを伏せ、伏せたことを伝えてください。空欄の意味を誰も推測せずに済みます。

keyfileの場所は同じ意味ではない

ネイティブのkeyfileプラグインでは、接続ファイルは三つのディレクトリに現れることがあり、その違いは利便性ではなく永続性です。

LocationRole
/etc/NetworkManager/system-connections/Administrator-owned persistence
/usr/lib/NetworkManager/system-connections/Package-supplied defaults, replaced on upgrade
/run/NetworkManager/system-connections/Runtime state, regenerated and not durable

実行時コピーを編集すると次の起動までは成功したように見えますが、そのとき変更は消え、ファイルは不思議と元に戻ったように見えます。パッケージ提供のコピーを編集するのは、アップグレードが置き換えるまで機能し、同じ教訓のより遅く紛らわしい版です。

keyfileのドキュメントは尊重すべき細部を加えています。これらのファイルには秘密鍵やパスフレーズが含まれ得ること、そしてroot以外のユーザーが読める、または書けるkeyfileはNetworkManagerが無視することです。設定を探すためにディレクトリの権限を広げると、調べようとしていた読み込み動作が壊れます。

Netplanが永続性を持つ場合

Ubuntuでは、Netplanのドキュメントに記されたNetworkManager連携が23.10以降で利用でき、永続コピーの置き場所を変えます。一時的でない接続では、/etc/netplan/90-NM-<connection UUID>.yamlを書き込み、/run/NetworkManager/system-connections/の下に一時的なNetworkManagerプロファイルを生成します。

それはディストリビューションの連携であり、すべてのNetworkManager導入に対する規則ではありません。YAMLファイルを探しに行く前に、インストールされたパッケージが実際にそれを使うことを確認してください。実行時プロファイルは、編集する価値のある出所ではなく、何か別のものの生成された表現かもしれないことも覚えておいてください。二つのコマンドの確認が、間違ったファイルの一時間の編集を節約します。

ドキュメントの例は、NetworkManagerのパススルーデータを持つNetplanのnm-devicesタイプを通じてOpenVPN接続を保存します。Netplanが特定のVPNフィールドを独自に解釈しないという事実は、保存したVPNが失われたという意味ではありません。そのフィールドが不透明なデータとして運ばれるという意味です。

一時的なインターフェースはプロファイルではない

有効化は、永続するはずのなかった一時的な仮想接続とインターフェースを作ります。連携は意図的にそれぞれへ新しいYAMLファイルを書き込まないので、/etc/netplanにそれらがないことは、親プロファイルが保存されているかどうかを何も語りません。

現れては消えるファイルを追っているなら、おそらく設定ではなくこれらの一つを見ています。内容から何かを結論づける前に、再起動を生き延びるか確認してください。再起動で消える実行時ファイルは、それが決して出所ではなかったことを教えてくれ、その一つの観察が調査全体の向きを変えます。当時編集が成功したように見えた理由も説明します。

秘密と所有権

プロファイルはまったく別の場所に保存された証明書や鍵を参照でき、パスワードはNetworkManagerに属するか、ユーザーセッションの秘密エージェントから供給されるか、意図的に保存されないことがあります。したがって一つのファイルを突き止めても、監視なしの起動が何を必要とするかはほとんど分かりません。

秘密の値を表示せずに参照と秘密フラグを調べてください。デスクトップのログインは、起動時にはなかったエージェントを利用可能にすることがあり、生成された実行時ファイルをコピーしてもそのエージェントは再現されません。実際の症状は、人がログインすると接続し、機械が単独で起動すると失敗するトンネルです。そのパターンはルーティングではなく秘密の所有権を指します。

承認された変更は接続を所有するマネージャーを通じて行い、その後で保存された識別子と実際の接続の両方を検証してください。永続的な所有者を一つに保ってください。インポート、生成されたkeyfile、YAMLの出所を別々に編集すると、次の再接続が何を使うかについて三つの競合する説明が残ります。実際に永続するものを選び、それだけを編集し、どのファイルを正典として扱ったかをチケットに記してください。次の人は一行の来歴に感謝するでしょう。

関連記事