想定読者とゴール
本稿は、Linux(代表例として Ubuntu)のデスクトップや、GUI を極力触りたくない軽量サーバで、Clash 系コアを安定運用したい方向けの実践ガイドです。具体的には、実行ファイルの配置、設定ディレクトリの整理、サブスクリプションの読み込み、ローカル HTTP/SOCKS プロキシ経由の疎通確認、そして systemd による起動時の自動化と簡易的な保活(再起動)までを一気通貫で押さえます。端末操作に慣れていれば、そのまま手元のメモとして使える密度を意識して書きました。
※コミュニティでは実行体が mihomo、配布名が Clash Meta などと呼ばれることが多く、実際のファイル名はビルドやパッケージによります。ここでは「Clash コア」と総称し、入手したバイナリをそのまま ExecStart に書ける前提で進めます。用語の整理やルールの深掘りは、ドキュメントページや既存の解説記事と併用してください。
準備:ディレクトリ設計と最低限の権限
Linux で詰まりやすいのが「実行権限」「作業ディレクトリ」「ログの見え方」の三点です。まずはユーザー単位で完結する構成を推奨します。例として ~/.config/mihomo(または ~/.config/clash)を設定の置き場にし、その中に config.yaml と Geo データ類、必要ならプロバイダ用キャッシュを置きます。root で常駐させるより、デスクトップ用途ならユーザーの systemd が扱いやすく、不要な権限拡大も避けられます。
バイナリは /usr/local/bin に置くか、ホーム直下の ~/bin のようにパスを通した場所へ配置します。chmod +x を忘れると「存在するのに起動しない」典型パターンになるので、配置直後に必ず実行ビットを確認してください。サーバ用途で複数ユーザーに公開する場合のみ、権限分離と監査ログの方針を踏まえてシステムワイドな配置を検討するとよいでしょう。
設定ファイルとサブスク取り込みの現実解
GUI クライアントが無い場合、サブスクリプションは「URL から取得した内容をそのまま設定へ反映する」か「proxy-providers などで定期取得させる」かの二択になりがちです。前者は単一ファイル運用に向き、後者は更新間隔の自動化に向きます。いずれにせよ、HTTPS で配布された URL を端末にベタ貼りするのは秘密情報の取り扱いになるため、シェル履歴やスクリーン共有に注意してください。運用のコツは サブスクリプション管理ガイドも参照ください。
最小限の config.yaml は、ポート(mixed-port や port)、ログレベル、プロキシ定義、ルール、DNS セクションといった骨格が揃っていれば起動できます。配布 YAML をそのまま使う場合でも、Linux 固有のファイルパスだけ手元環境に合わせ直すのを忘れないでください。ポート競合(既存の開発サーバや別プロキシ)で落ちるケースは特に多いので、衝突時は番号を変えてから再起動します。
手動起動で疎通を先に固める
systemd 化の前に、必ず前景または短期間のバックグラウンド起動でログを目視してください。典型的には -d もしくは --config でディレクトリまたはファイルを指定します(実装によりフラグ名が異なる場合があります)。起動直後に「設定パースエラー」「Geo ファイル欠落」「パーミッション不足」が表面化します。ここで直さずにユニット化すると、再起動ループや静かな失敗で原因が見えにくくなります。
ブラウザや curl で http://127.0.0.1:<mixed-port> 相当のローカルプロキシを指定し、意図したノードに出ているかを確認します。ルールが強すぎると国内サイトまで遠回りになるため、期待する動きとログの一致を見ながら微調整します。アプリ全体をトンネルしたい場合は TUN も選択肢ですが、Linux では能力(ケーパビリティ)やカーネルモジュール周りの要件が増えます。詳細は TUN モードガイドを参照してください。
ユーザー systemd ユニットの例
ログイン後に自動起動したい場合は、ユーザー領域の systemd が向いています。ユニットは例えば ~/.config/systemd/user/mihomo.service に置きます。ポイントは WorkingDirectory を設定ディレクトリに合わせること、ExecStart に絶対パスでバイナリと -d を書くこと、そして失敗時に短期間で叩き壊さないよう Restart=on-failure と RestartSec= を併用することです。Environment でタイムゾーンやプロキシ関連の変数を渡す必要がある環境もあります。
[Unit]
Description=Clash compatible proxy (mihomo)
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
WorkingDirectory=%h/.config/mihomo
ExecStart=/usr/local/bin/mihomo -d %h/.config/mihomo
Restart=on-failure
RestartSec=3
[Install]
WantedBy=default.target
有効化は systemctl --user daemon-reload のあと systemctl --user enable --now mihomo.service です。リモート SSH セッションだけだとユーザー systemd が期待どおり動かないことがあるため、実機ログインや linger 設定が必要になるケースを頭に置いてください。loginctl enable-linger <user> は管理者権限を要しますが、非対話サーバでは実務上よく使われます。
ブート直後に常駐させたい場合(システムユニット)
マルチユーザサーバやゲートウェイ用途では /etc/systemd/system 側にユニットを置く選択もあります。この場合、設定ファイルの所有者と読み取り権限、作業ディレクトリ、ログ出力先を明確に分離してください。User= と Group= を指定して非特権ユーザーで動かすのが無難です。さらに TUN を使うなら AmbientCapabilities=CAP_NET_ADMIN や専用グループなど、配布元ドキュメントに沿った能力付与が必要になることがあります。
ログ確認と状態切り分け
まず journalctl --user -u mihomo.service -b(ユーザーユニットの場合)で直近のブートからのログを眺めます。設定再読み込みの失敗、DNS ルックアップのタイムアウト、外部ルールセット取得エラーなどがここに集約されます。ファイルログを残す設定にしている場合は、ローテーションとディスク容量も併せて確認してください。接続はできるが遅い場合は、ノード側の混雑か、ルールの誤マッチか、MTU/IPv6 まわりかを順に疑うと切り分けやすくなります。
よくある詰まりどころ
権限とパスの不一致
ExecStart のパス誤り、WorkingDirectory の不存在、設定ファイルの所有者ずれは最頻出です。エディタの一時ファイルが紛れ込んで YAML 全体が壊れているケースもあるため、バリデータや軽量な文法チェックを挟むと安全です。
DNS がループしたり引けない
強い fake-ip 設定とローカル再帰の組み合わせでループが出ることがあります。初期段階ではログレベルを上げ、どのクエリがどのチェーンに乗っているかを切り分けます。社内ネットでは社内 DNS を正しく nameserver に残す必要もあります。
ルールは効いているが期待と違う経路
GeoIP データの古さや、ドメインのサフィックス判定の勘違いで「国内向けがプロキシに回る」逆も起こり得ます。プロバイダ配布のルールセット更新と、ローカル例外の追加をセットで検討してください。
クライアント/コアの入手と配布方針
Linux 向けバイナリや GUI 付きビルドは、入手元と署名確認の方針を揃えるのが重要です。本サイトでは各プラットフォーム向けの案内を ダウンロードページにまとめており、初回導入の起点にすると OS ごとの注意点も一括で追いやすくなります。GitHub のリポジトリはソースやライセンス確認に有用ですが、実行ファイルの第一入手口としてサイトの導線を優先すると、説明の一貫性が保てます。
まとめ
Ubuntu を含む Linux で Clash を運用するコツは、「手動起動でログを読み切ってから systemd に載せる」「ユーザーユニットで権限を絞る」「サブスクとルールは秘密情報として扱う」の三段です。systemd は単なるオートスタートの仕組みに見えても、Restart ポリシーと journalctl を組み合わせることで小さな可用性改善になります。トラフィック全体をカーネル近くまで取り込みたい場面では TUN へ広げ、そうでなければローカルプロキシから段階的に育てるとトラブルが追いやすいでしょう。
同種ツールをいくつか試した方なら、Clash エコシステムのルール表現の柔らかさと、コアと周辺(設定生成、ルールプロバイダ、可観測性)が揃っているときの扱いやすさが際立ちます。実際の導入は、まず手元の Ubuntu で本稿の順に再現し、慣れてきたらプロファイルの分割や自動更新の粒度を自分好みに寄せていくとよいはずです。
Clash を無料ダウンロードして試す → 複数 OS 向けパッケージを揃え、記事内の手順ともあわせてスムーズに最初の接続まで進められます。