まず同期する範囲を決める:共通の設定と端末ごとの設定を分ける
PCとスマホで同じClashのサブスクリプションを使えますが、クライアントのデータフォルダー全体をそのまま同期するのは避けましょう。ノード、プロキシグループ、ルールは共通のソースで管理し、システムプロキシ、TUN、待ち受けポート、画面設定は端末ごとに設定するのがおすすめです。こうすれば、サブスクリプションを更新してもPCのネットワークインターフェース設定がスマホに適用されることはありません。
「設定を共有」することは「実行状態を共有」することではありません。PCで手動選択したノード、スマホの接続先、速度測定結果、通信量の統計は、通常クライアントごとにローカル保存されます。サブスクリプションURLが同じでも自動では同期されません。サービス提供元の端末数、同時接続数、通信量の制限も適用されるため、事前にアカウントの利用条件を確認してください。
| 項目 | 共有の可否 | おすすめの保存先 |
|---|---|---|
| ノードと認証情報 | 可能(アカウントの利用制限に従う) | サブスクリプションまたは保護された設定ソース |
| プロキシグループとルール | 通常は可能 | 共通設定またはローカルの上書き設定 |
| ポート、ネットワークインターフェース、TUNの設定 | 端末ごとに設定 | クライアント設定または端末専用の上書き設定 |
| ノード選択と接続履歴 | 通常、サブスクリプションでは同期されない | 各クライアントのローカル状態 |
方法1:PCとスマホに同じサブスクリプションを登録する
それぞれに登録し、クライアントのフォルダーはコピーしない
- サービス提供元のアカウントページで、Clashまたはmihomo用のサブスクリプションURLをコピーします。出力形式を選べる場合は、両方の端末のコアが対応する形式を選んでください。
- PCで設定管理画面を開きます。Clash Verge Revの場合は、「サブスクリプション」ページのURL入力欄にアドレスを貼り付けて登録し、追加された設定を選択します。
- スマホにも同じURLを個別に登録します。Clash for Androidの一般的な画面では、「設定」→「+」→「URLからインポート」の順に進み、名前、URL、自動更新間隔を入力して保存します。
- 両方の端末で手動更新し、ノード一覧とプロキシグループが読み込まれたことを確認してから、それぞれでシステムプロキシまたはVPNによる通信制御を有効にします。
クライアントのバージョンや日本語化の状態によってボタン名が異なる場合があります。「設定」「サブスクリプション」「URLからインポート」などの項目を探してください。サブスクリプションURLをHTTPプロキシサーバーのアドレス欄に入力してはいけません。また、リクエストパラメーターやクライアント識別情報によってサブスクリプションの内容が変わることがあるため、同じURLでも両方の端末で完全に同じファイルが取得できるとは限りません。
更新間隔はまず24時間に設定
個人利用の端末なら、まずは24時間ごとの更新に設定するとよいでしょう。入力欄の単位が分なら1440、秒なら86400を指定します。クライアントのサブスクリプション更新間隔と、YAML内のproviderのintervalを混同しないでください。更新されるデータの階層が異なります。
スマホのバックグラウンド処理は、省電力設定、ネットワーク状態、OSのスケジューリングに左右されるため、指定した時刻どおりに更新されるとは限りません。長時間電源を切っていたりスリープ状態だったりした後は、まず手動更新してからノードの有効性を確認してください。アカウントページの有効期限、サブスクリプションの最終更新時刻、ノードの速度測定時刻も、それぞれ異なる情報です。
- サブスクリプション全体:クライアントが設定ファイル全体を再取得し、ノード、プロキシグループ、ルールがまとめて置き換わる場合があります。
- ノードプロバイダー:
proxy-providersはノード一覧を更新します。メイン設定のすべてのルールが自動で置き換わるわけではありません。 - ルールプロバイダー:
rule-providersはルールデータを更新します。ルールの参照方法はメイン設定で定義されます。
更新後も独自ルールを残す:永続的な上書き設定を使う
ダウンロードしたリモートYAMLを直接編集すると、次回のサブスクリプション更新で変更が上書きされるのが一般的です。長期間保持するルールは、クライアントが対応する永続的な上書き設定、マージ設定、拡張スクリプトに記述してください。使える機能はクライアントによって異なり、Clashコアを使うアプリすべてが同じ上書き機能を備えているわけではありません。
まずルールを1つだけ追加し、サブスクリプション更新後に「最終的に適用される設定」を確認して、マージ順が正しいことを確かめてから拡張しましょう。以下はmihomo形式の部分設定例です。ルールの順序を示すものであり、単独でインポートできる完全なサブスクリプションではありません。
rules:
- DOMAIN-SUFFIX,home.arpa,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- MATCH,出口選択
出口選択は、最終設定に実在するプロキシグループ名である必要があります。上流の設定でグループ名が変更された場合は、ここも合わせて修正してください。ルールは上から順に照合され、MATCHは最後に置きます。既存のMATCHより後ろに直結ルールを追加しても、期待どおりに動作しません。
リストのマージと全体置換を区別する
- 一部のマージ機能は、
rules配列にルールを追加するのではなく、配列全体を置き換えます。保存後、既存のルールが残っていることを確認してください。 - クライアントが「先頭ルール」に対応している場合は、LAN向けの例外ルールを既存ルールより前に挿入すると、ルール一覧全体を書き換えるより管理しやすくなります。
- PCとスマホの上書き設定は分けて保存してください。PC用の拡張スクリプトがスマホでも動くとは限りません。
複雑なルールを両方の端末で長期的に完全一致させたい場合は、メイン設定とルールソースを一元管理しましょう。端末ごとの例外が少ない場合は、短いローカル上書き設定を別々に管理するほうが明確です。
方法2:プライベートリポジトリで設定を管理し、制限付きURLで配布する
プライベートリポジトリは、ルール変更の記録、設定差分の比較、バージョンの切り戻しに便利です。ただし、リポジトリを非公開にしただけでは、クライアントにファイルの直リンクを貼って読み込めるとは限りません。ブラウザーのログイン状態はClashに引き継がれず、ログインが必要なWebページのURLも、そのままインポートできるYAMLのURLではありません。
リポジトリでバージョンを管理し、配布側でアクセスを制御する
- 認証情報を含まない基本ルール、プロキシグループの構成、端末ごとの差分に関する説明をリポジトリに保存します。ノードのパスワードやサブスクリプションのトークンがファイルに含まれていないことを、事前に確認してください。
- 制御されたリリース手順で最終版のYAMLを生成し、保護されたストレージから機密情報を注入します。トークンをリポジトリの履歴に残さないでください。
- HTTPSで設定ファイルを配信し、クライアントが実際に対応している認証方式を設定します。必要なリクエストヘッダーにクライアントが対応していない場合は、アクセス制御を解除せず、管理された方法でダウンロードしてからローカルにインポートしてください。
- まず1台のテスト端末で更新し、設定の解析と接続を確認してから、ほかの端末を更新します。切り戻し用に、直前の正常な設定を残しておきましょう。
ホスティングサービスによっては、ファイルの直リンクが一時的に失効したり、ログインページやリダイレクトページが返されたりします。YAMLの解析エラーが出た場合は、レスポンスがHTMLではなく設定ファイルの内容か確認してください。ログに完全なリクエストURLが含まれている場合は、共有前にトークンやユーザー情報を伏せましょう。
自動配布が不要なら、プライベートリポジトリにはルールのバージョンだけを保存し、端末の利用者がファイルをダウンロードしてインポートする方法もあります。オンライン配布の手間は減りますが、各端末で現在どのバージョンを使っているか記録する必要があります。
方法3:YAMLをエクスポートして、別の端末に手動でインポートする
手動同期は、スマホの機種変更、一時的なテスト、ネットワークが使いにくい環境で役立ちます。同期されるのはエクスポート時点のスナップショットであり、リモートサブスクリプションURLや自動更新設定が保持されるとは限りません。エクスポートする前に、ファイルが元のサブスクリプション、最終的に適用されている設定、クライアントの完全なバックアップのどれに当たるか確認してください。これらは同じものではありません。
- 元の端末でサブスクリプションを更新し、現在の設定で接続できることを確認します。
- クライアントの設定エクスポート機能または設定ファイルを開く機能から、YAMLを取得します。アプリのデータフォルダー全体を直接コピーしないでください。
- OS標準の近距離共有機能や、管理されたファイル転送手段で移行先の端末に送ります。公開リンクで共有するのは避けてください。
- 移行先のクライアントで「ファイルからインポート」を選びます。解析に成功したら、プロキシグループ、DNS、通信制御の設定を改めて確認してください。
- エクスポート日を記録します。例:
profile-2026-09-09.yaml。一時的な受け渡しに使ったファイルは、インポート後にダウンロードフォルダーやチャットの添付ファイルから削除してください。
手動インポート後も自動更新したい場合は、元のリモートサブスクリプションを別途追加してください。ローカルファイルのパスをサブスクリプションURLとして使うことはできません。エクスポートファイルの扱いはクライアントごとに異なるため、リモートの配信元情報が必ず引き継がれると考えないでください。
OS間の設定差:ポート、TUN、DNSを個別に確認
Clashの設定はエコシステム内の共通形式ですが、すべてのクライアントが同じ項目に対応しているわけではありません。従来のClashコア、Clash Meta(現mihomo)、その他の互換クライアントでは、プロトコルの対応状況や設定項目が異なる場合があります。何度も再インストールするより、まず両方の端末で「バージョン情報」やコア情報を開き、バージョンを記録して差分を確認しましょう。
| 項目・設定 | 端末間で起こりやすい問題 | 対処方法 |
|---|---|---|
mixed-port | PCでは7890がよく使われますが、別のプロセスが使用中の場合があります | 実際に待ち受けているポートを確認し、システムプロキシがそのポートを参照しているか確認します |
tun | デスクトップの仮想ネットワークインターフェースとスマホのVPNによる通信制御は異なります | 各端末のクライアントにある通信制御設定を使い、デスクトップ用のルーティング設定をそのまま移さないでください |
dns.listen | 53番ポートでの待ち受けには、権限やポート競合の問題が発生する場合があります | クライアントの実装に合わせて設定します。ファイルをコピーして権限の許可に代えることはできません |
external-controller | 管理インターフェースが意図せず外部に公開される可能性があります | リモート操作が不要ならループバックアドレスに限定し、アクセスキーを設定します |
providerのpath | PCの絶対パスはスマホには存在しません | クライアントが対応する相対パスを使い、ディレクトリへのアクセス制限を確認します |
DNSの設定が同じでも、ネットワーク環境が同じとは限りません
スマホがモバイル回線に切り替わると、DNSの上流サーバーへの到達性が自宅のブロードバンド回線と異なる場合があります。Fake-IPを使う設定では、両方の端末が同じenhanced-modeとフィルター設定に対応しているか確認してください。LAN内の名前解決は、接続中のネットワークのDNSサービスにも左右されます。特定の端末で一時的に使われるFake-IPの対応データベースは、同期対象にしないでください。
Androidでは通常、VpnServiceで通信を制御するため、OSの許可が必要です。デスクトップではシステムプロキシやTUNを使う場合があります。設定が同じなのに接続結果が異なる場合は、まず通信がコアに届いているかを確認し、次に同じ出口がルールで選択されているかを確認してください。
両端末の動作が異なるときは、4つの層に分けて確認
- 配信元:サブスクリプションURL、出力形式、最終更新時刻を確認します。更新に失敗すると、クライアントが古い設定を使い続ける場合があります。ノードが表示されていても更新完了とは限りません。
- マージ:最終的に適用されるプロキシグループとルールを比較します。上書き設定でリスト全体が置き換わっていないか、グループ名の参照が切れていないか、フォールバックルールが先に一致していないかを確認してください。
- 通信制御:PCのシステムプロキシまたはTUNが有効か、スマホのVPNが許可されているか確認します。接続履歴に対象アプリからのリクエストがない場合は、まず通信制御の設定を見直してください。
- ネットワーク:両方の端末で同じノードを選び、同じ接続先にアクセスして、ルールの一致状況、出口、エラーログをそれぞれ記録します。その後、同じWi-Fiとモバイル回線で比較し、設定の問題とネットワーク環境の違いを切り分けてください。
日常の更新は、手順を固定して行うと安全です。まず1台を更新し、よく使うWebサイト、LAN内のサービス、DNSを確認します。問題がなければほかの端末も更新してください。不具合が再発した場合は設定のバージョンを戻し、ノード、DNS、TUN、ルールを同時に変更するのは避けましょう。
設定は役割ごとに管理するのがおすすめです。ノードはサブスクリプションで更新し、共通ルールは変更履歴を追えるソースで管理し、端末の権限や通信制御はローカルに残します。通信制御や接続の確認手順はトラブルシューティングをご覧ください。プロキシグループやルールプロバイダーなどの項目は用語集で確認できます。