Debian 12 で Clash Verge を導入する:購読インポートと systemd ユーザーによるログイン後の自動起動

検索で「Debian 12」「Clash Verge」「Linux」「購読」「systemd --user」を組み合わせて辿り着いた方向けの実践ガイドです。Bookworm のデスクトップでグラフィカルなクライアントを初めて入れ、購読(サブスクリプション)をインポートし、ログインのたびに手動起動せずユーザーサービスとして自動で立ち上げるところまでを、既存の Ubuntu/Fedora/Arch 向け記事と被らない切り口で整理します。安定版 Debian 特有のパッケージ運用の癖にも触れます。

この記事の位置づけと前提

対象は Debian 12(コードネーム Bookworm) を日常のデスクトップ用途で使っている場合です。サーバー向けの最小構成で GUI が無い環境は対象外とし、GNOME や KDE など一般的なセッションを想定しています。検索結果が「どのディストリでも同じ」といった抽象的な説明に偏りがちなので、本稿では apt と .deb を軸にした導線 を明示し、Ubuntu 24.04 向け手順別記事Fedora の SELinux/firewalldFedora 向けの稿Arch と AURArch 向けの稿に分けました。同じ Clash Verge でも、入れ方とトラブルの出方は母集団が違うため、自分のディストリ名で記事を選ぶのが最も早いです。

クライアント同士の関係や用語の俯瞰は Clash エコシステムの解説 が役立ちます。Windows から乗り換える場合は CFW からの移行記事 と画面の対応を見比べると理解が速くなります。

Debian 12 でパッケージを入れるときの心構え

Debian stable はライブラリの世代が保守的な分、GUI アプリの公式ビルドが「Testing や Ubuntu の方が動作確認表に載っている」こともあります。それでも .deb が提供されていれば、依存関係は apt 側で解決できることが多く、逆に足りない共有ライブラリはメッセージに従って sudo apt install で補います。リリースノートに Debian 12 が明記されているか、Issue で同様の報告がないかを一度確認してから導入すると、初日からの手戻りが減ります。

ローカルに落とした .deb を入れる典型例は次のとおりです(ファイル名は実際のものに読み替えてください)。

sudo apt install ./clash-verge_*.deb
# 依存が足りないと言われたら
sudo apt install -f

dpkg -i だけ先に走らせて依存欠けを起こすより、上記のように apt install ./パッケージ.deb で一括解決する方が Debian では扱いやすいです。AppImage を選ぶ場合は、FUSE や libfuse の世代差で止まることがあるため、公式手順と Bookworm の組み合わせを確認してください。

インストール媒体の第一参照先は、本サイトの ダウンロードページ にまとめてあります。ソースや Issue を追う用途で GitHub を開くのは問題ありませんが、日々のクライアント取得はダウンロードページを優先すると、ファイル名と文書の突き合わせがしやすくなります。

バイナリの実パスは後述の systemd ユニットで必要になるため、導入直後に控えておきます。

which clash-verge
# or
dpkg -L clash-verge | grep bin

パッケージ名が clash-verge-rev など派生ビルド特有の名前の場合は、コマンドの引数を読み替えてください。

初回起動:コア(Mihomo)と権限まわり

初回に Clash Meta/Mihomo コアの取得・配置を促す UI が出るビルドがあります。ここで失敗すると「アプリは動くがプロキシが効かない」状態に陥りやすいので、企業ネットワークのプロキシやフィルタがダウンロードを遮断していないかも合わせて確認してください。用語の整理は チュートリアルページ が参考になります。

TUN モードはカーネルや権限に踏み込むため、Debian でも初回は追加の承認やポリシーが求められることがあります。仕組み自体は TUN モードの深掘り記事 に譲りますが、切り分けとしてはまず システムプロキシ だけでブラウザが期待どおり動くかを確認し、必要になったら TUN に進むと安全です。

💡 ヒント 別製品の常駐 VPN と同時に有効にすると、ルーティングや DNS が競合して片方だけ通信不能になることがあります。異常時はどちらかを完全終了してから再接続を試してください。

購読(サブスクリプション)のインポートと更新

プロバイダから受け取った 購読 URL を Clash Verge のプロファイル/サブスクリプション画面に登録し、手動または定期の 更新 を実行します。表示名・更新間隔・ User-Agent はプロバイダの案内に合わせるのが安全です。URL 失効や認証エラーの整理は 購読 URL の FAQ にまとめてあります。

複数プロファイルを切り替える運用では、いまアクティブなプロファイル がどれかを常に画面で確認できるようにしておくと、後からの混乱が減ります。ローカル YAML を直接編集する場合は、購読の自動更新で上書きされないよう、クライアントのマージやオーバーライドの有無を先に確認してください。ルールを足したいときの基本は カスタムルールのガイド が役立ちます。

systemd --user でログイン後に自動起動する

毎回ランチャーから起動するのが負担なら、systemd のユーザーユニットに登録する方法があります。単位はユーザーセッション側(systemctl --user)で、サーバ用途のシステムユニットとは別物ですが、再起動ポリシーやログの見方は共通です。GUI アプリを載せる都合、ディスプレイやセッション D-Bus への接続が必要になるため、After=graphical-session.target を置くなどグラフィカルセッションの後段に寄せるのが無難です。

手順 1:ユニットファイルを配置する

次の例を ~/.config/systemd/user/clash-verge.service に保存します。ExecStart は先ほど確認した実パスに合わせて書き換えてください。

[Unit]
Description=Clash Verge (user)
After=graphical-session.target

[Service]
Type=simple
ExecStart=/usr/bin/clash-verge
Restart=on-failure
RestartSec=5

[Install]
WantedBy=default.target

Wayland 下で表示まわりの環境変数が足りず起動に失敗する場合は、デスクトップ環境のドキュメントに沿って Environment= を追加する必要が出ることがあります。まずは最小構成で試し、journalctl にディスプレイ接続エラーが出るかを確認します。

手順 2:有効化と状態確認

ターミナルで次を実行します。

systemctl --user daemon-reload
systemctl --user enable --now clash-verge.service
systemctl --user status clash-verge.service

active (running) が確認できれば、当該ユーザーのセッション上でプロセスが立っています。一度ログアウト/ログインしても自動起動するかを確認してください。

ログイン前から常駐させたい場合について

ユーザーサービスは原則「ユーザーがログインしたあと」に動きます。ディスプレイマネージャより前から GUI クライアントを常駐させる要件は家庭用途では稀で、linger など別設計が必要になる一方、GUI と相性が悪い場面もあります。デスクトップ用途ではログイン後の自動起動を満たせば十分なことがほとんどです。

代替:autostart の .desktop

~/.config/autostart/.desktop を置く方法もあります。設定は短く、セッションとの相性トラブルが出にくい反面、失敗時の自動再起動は自前になります。目的は「起動し忘れを減らす」ことなので、運用に合わせて systemd か autostart を選べば十分です。

うまくいかないときのチェックリスト

  1. 1

    購読とプロファイル

    期限切れ、メンテナンス、URL の再発行で止まっていないか。エラーメッセージをそのまま検索すると FAQ に当たりやすいです。

  2. 2

    systemd ユーザーのログ

    journalctl --user -u clash-verge.service -b で当該ブート分を確認します。ExecStart のパス誤りや権限エラーがすぐ分かります。

  3. 3

    モードの競合

    システムプロキシと TUN を同時に有効にして不安定になることがあります。別の VPN クライアントと競合していないかも確認します。

よくある質問

手動起動と systemd が二重にならないか

両方有効だとプロセスが重複することがあります。どちらかに寄せるか、クライアント側の「起動時に開く」設定と競合しないよう一方をオフにしてください。

root で system ユニットを書いてよいか

GUI クライアントをシステム全体のサービスとして常駐させるのは、セキュリティと表示セッションの都合から推奨されにくいです。通常はユーザーユニットか autostart で足ります。

Testing/Sid にもそのまま使えるか

本稿は Bookworm 前提です。Testing や Sid ではライブラリ世代が進み、同じ .deb でも未検証の組み合わせになり得ます。トラブル時は公式ビルドの対象表と Issue を優先してください。

まとめ

Debian 12 のデスクトップで Clash Verge を使う流れは、「信頼できるビルドを .deb 経由で入れる → 初回にコアを通す → 購読でプロファイルを揃える → システムプロキシや必要なら TUN でアプリに効かせる → 起動忘れを systemd --user か autostart で減らす」に集約できます。Ubuntu やローリングディストリとはパッケージ運用の前提が違うため、検索キーワードにディストリ名を含めた記事を選ぶだけで初日の迷子がかなり減ります。

他の OS でも同じ考え方を試す場合、各プラットフォーム向けの説明と入手先を 本サイトのダウンロードページ で揃えると、バージョンと用語の対応が取りやすくなります。ライセンスやソースを確認したいときは、本文の導線とは分けて GitHub を参照する形がおすすめです。

Clash を無料ダウンロードし、Debian 以外の端末でも同じ考え方で試す