PIAのパネルアイコンが決して表示されないLinuxデスクトップでは、トンネルは多くの場合稼働して機能しているのに、唯一の操作手段は失われています。アプリのウィンドウを閉じても接続は止まらず、同じインストールにはコマンドラインクライアントpiactlが含まれており、メニューが以前に示していた状態を読み取り、変更します。有用な問いは、なぜアイコンが消えたかではなく、バックグラウンドアプリか、選択中の地域か、シェル統合かという欠けている層です。まずその層を特定すれば、ランチャーを修復しなくてもVPNを動かせます。

パネルアイコンとトンネルは別の層

トレイの項目はデスクトップシェルが提供する表示上の詳細であり、VPNエンジンではありません。PIAのデスクトップアプリは、環境が用意するステータス領域にメニューを描画し、多くのLinux設定では拡張機能やパネルプラグインをインストールして初めてその領域が現れます。アプリが動作していてもシェルにメニューを置く場所がなければ、操作が消えたまま接続は続きます。だからこそ、正常なステータス領域を一度も持たなかったデスクトップでは、VPNを削除して再インストールしてもアイコンが戻ることはほとんどありません。

パネルの挙動はセッション間でも異なることがあるため、同じアカウントをWaylandとX11で一度ずつ試してください。一方のセッションで表示され他方で表示されないメニューは、VPNのインストールではなくセッションの種類を示します。

変更する前に現在の状態を読む

読み取りは何のコストもかからない一方で書き込みは通信を中断するため、まず問い合わせだけで始めてください。sudoではなく自分のユーザーとして実行してください——それはクライアントを別のアプリインスタンスと通信させるものではありません。

piactl --help
piactl get connectionstate
piactl get region
piactl get regions

connectionstateは最初の問いに直接答え、ConnectedまたはDisconnectedを返し、クライアントが交渉している間は過渡的な値を経由します。regionは現在選択されている識別子を報告しますが、アプリが自動選択に戻った場合、最後にクリックしたものとは限りません。regionsはこのクライアントが知っている識別子を一覧にするので、都市名を推測する代わりに正確な文字列をコピーできます。最初のコマンドがヘルプを表示するのに他が固まるなら、アプリは到達可能なバックグラウンドプロセスなしでインストールされています。

一部のパッケージはpiactlをPATHの外に置きます。PIAのコマンドラインガイドはLinuxでの場所として/opt/piavpn/bin/piactlを示しているので、短い名前が見つからないときはそのパスを呼び出してください。バイナリはデスクトップアプリのものであり、応答するpiactlはインストール自体が無傷である証拠になります。

地域の変更は意図的にトンネルを切断する

地域の変更は切断とそれに続く新しいハンドシェイクであり、クライアントは稼働中のトンネルの下で黙って適用することはありません。以下のコマンドは一つのトランザクションとして扱い、識別子はregionsの出力からコピーしてください。

piactl disconnect
piactl set region REGION_ID
piactl connect
piactl get connectionstate

ここでは順序が重要です。接続中に地域を選ぶと、何かが再接続を強いるまで現在のトンネルは古いエンドポイントを向いたままになり、そのせいで設定が無視されたと結論づけられます。先に切断すれば状態は曖昧でなくなり、最後の問い合わせは交渉が終わったかどうかを示し、地域が記録されたかだけを示すのではありません。最後の行が選んでいない地域を報告するなら、接続中に選び直す自動オプションか最速サーバーオプションを探してください。

SSHで管理するマシンでは、変更をローカルで行うか、セッションが切れる可能性を受け入れてください。向こう側で待っているものにとって、意図的な地域変更はネットワーク障害とまったく同じに見えます。

空のパネルではなく障害を記録する

メニューの不在とクライアントの失敗が重なるのは別の問題であり、別の報告に値します。障害が起きている間に取得した状態問い合わせの正確な出力を集めてください。その記録はクライアントやサービスの障害をシェル統合の障害から切り分けますが、空の隅のスクリーンショットにはできません。

ps -ef | grep -i piavpn
ls -l /opt/piavpn/bin/piactl
piactl get connectionstate

プロセス一覧にPIAのコンポーネントがなくてもバイナリが存在するなら、アプリは単に起動していないので、起動すれば解決します。プロセスがあり問い合わせがまだ失敗するなら、クライアントは自身のバックグラウンドサービスに到達できていないので、他を変える前にデスクトップアプリを再起動してください。両方の確認が通れば、パネルの問題を見ているのでトンネルのデバッグは止められます。トレイのサポートはバージョンとデスクトップの両方に敏感なので、バージョン情報パネルでクライアントのバージョンをセッションの種類の横に記録してください。

同じサブスクリプションをNetworkManagerに別接続としてインポートすると、PIAが設定したブロックや分割トンネルの動作を継承しない第二の所有者が生まれ、後の診断は推測になります。アイコンがない間は所有者を一つに保ち、piactlを操作面にしてください。コマンドラインは壊れたインストールの代替ではありません——同じアプリケーションに別の入口から働きかけるものです。

関連記事