Clash Meta で自作 VPS ノードと商用購読を同一プロファイルにまとめる:YAML マージと mixin の段階手順
商用プロキシ(いわゆる空港)の購読 URLで手軽に数十ノードを得つつ、低遅延や用途専用のために自前 VPSも使いたい──よくある要望です。しかしクライアントがキャッシュする購読 YAML に手で proxies を追記すると、次の自動更新で上書きされて消えるのが普通です。本稿では Clash Meta(Mihomo) 系が提供する mixin や GUI の マージ(Merge)プロファイルを使い、リモート購読と手動ノードを衝突なく連結する考え方、append-proxies/策略グループでの参照、YAML のインデントで失敗しがちな点、更新後の検証までを段階的に整理します(各自の契約・法令・プロバイダ方針の範囲内での利用を前提とします)。
なぜ「購読キャッシュに直書き」では破綻するのか
購読は URL から定期的に再取得され、ローカルに保存された断片はサーバー側の版で置き換わるのが基本動作です。エディタで開いた一時ファイルに自作の vmess や vless ブロックを足しても、同期のたびに消えたり、クライアントが再生成して矛盾した中間状態になったりします。恒久に残したいのは「購読が届けるプロキシ一覧」とは別レイヤーに置くローカル断片です。
ルールだけ足したい場合は 「mixin で購読を覆写し自作ルールを消さない」が近いです。本稿はそこから一歩進め、プロキシ定義そのものを購読と同居させる注意点(名前の衝突、策略グループからの参照)に焦点を当てます。
心象モデル:一本の「実効プロファイル」へ合成する
運用で押さえる要点は三つです。(1) 購読由来の proxies は触らず、上流として取り込む。(2) 自作 VPS は append-proxies(またはクライアントが解釈する同等キー)で配列の後ろに足すか、マージ専用 YAML に分離する。(3) 策略グループの proxies リストでは、存在するプロキシ名だけを列挙する──購読側の「香港 01」と自前の「MY-VPS-TYO」を同じグループに並べてよいのは、名前が衝突していないことが前提です。
命名のコツ
空港が付けるノード名と被らないよう、自前ノードには HOME- や VPS- などプレフィクス付きの固定名を推奨します。購読が更新されてノード名が変わっても、自前の名前は mixin 側だけで完結します。
mixin/マージで使う典型キー(プロキシ連結)
GUI によって表記は異なりますが、Mihomo 系でよくあるのは次のペアです。
prepend-proxies/append-proxies:proxies配列の先頭または末尾へ差し込み。prepend-proxy-groups/append-proxy-groups:proxy-groupsへ別途策略グループを追加、または購読のグループ一覧に載っていない「自作だけの自動選択」を定義。
購読がすでに「🚀 自動選択」など巨大なグループを持っている場合、そのグループ定義を直接編集しないほうが安全です。代わりに、自作グループだけを append-proxy-groups で追加し、その中で空港ノード名と自前ノード名を並べます。親グループへ混ぜ込みたいときはクライアントの機能(GUI のエディタで購読生成グループへ追記できるか、mixin が append するか)を確認してください——購読更新でグループ定義ごと洗い替えるタイプでは、親側の編集が次回で失われる恐れがあります。
# merge fragment — example; GUI / core version may vary
append-proxies:
- name: VPS-TYO-HOME
type: ss
server: 203.0.113.10
port: 8388
cipher: aes-256-gcm
password: "your-secret-here"
append-proxy-groups:
- name: AIRPORTPlusVPS
type: url-test
proxies:
- 日本 01
- 香港 03
- VPS-TYO-HOME
url: https://www.gstatic.com/generate_204
interval: 300
上の 日本 01 や 香港 03 は購読が実際に付けている表示名そのものである必要があります。名称が読み込めないとグループ作成時にエラーになるため、実効 YAML のプレビューで名前を確認してから書き写してください。自動切り替えの挙動を詰める場合は 「url-test と fallback」も併読すると、tolerance や lazy の調整まで一気通貫で整理できます。
YAML でつまずきやすい点:インデントと重複キー
Clash 系の設定は スペース二つのネストが基本で、タブ混入や一段ずれがあるとanchors 付きでもパースエラーになります。- name: の直後のリストと、直下のキーとの関係も崩れやすいので、既存ファイルを複製して名前と値だけ差し替えると事故が減ります。
プロキシ名の二重定義
購読と自前で同じ name を誤って使うと、マージ結果で片方が上書きされます。自作側はユニークなプレフィクスを徹底してください。
複数購読と「自作だけ」の合成
複数 URL をインポートするクライアントでは、各購読が別プロファイルになり、ひとつの実効構成へマージされます。その場合でも原則は同じです。各購読のプロキシ名空間が衝突しないか(まれに異なる空港が同名ノードを出す)は、統合後のプレビューで確認してください。購読 URL を加工して一つの巨大 YAML にしたいときは 「Subconverter で Clash YAML にし Meta へインポート」の流れも選択肢ですが、「加工せずクライアント側で足し合わせる」本稿の方が、購読更新の責務がはっきりします。
段階的な検証チェックリスト
反映後にやること
- クライアントの「マージ後/実効設定」ビューで、
append-proxiesに置いた自前ノードが購読のプロキシ一覧と同じブロックに連なっているか目視する。 - 策略グループの
proxiesに列挙した名前が、すべて実在するかを確認する(タイプミスでグループが赤くなるケースが多い)。 - 自前ノードだけを選んだときに接続ログで期待するサーバ IP へ出ているかを見る。
- 購読を手動更新し、もう一度 (1) を繰り返す。ローカル mixin が消えていなければ合格。
DNS や TUN を併用していると、ルールと独立して挙動が変わります。接続はできても名前解決が別経路、といった切り分けは 「接続中なのに繋がらない?DNS と fake-ip」を参照してください。
よくある質問
一つの巨大 YAML にコピペでまとめたい
技術的には可能ですが、購読分を手で貼ると更新のたびに手作業が必要になります。運用するなら「購読は URL のまま」「差分は mixin に固定」が保守しやすいです。
購読更新後、自作グループだけ消えた
マージファイルではなく、購読本体側の proxy-groups を直接編集していた可能性があります。差分は常に mixin/マージ YAML に寄せてください。
空港の名前が変わった
自作グループ内の参照名が宙に浮きます。実効YAMLで新名称を確認し、自分のグループ定義だけを書き換えればよいので、対応は読み込み側に閉じます。
まとめ
自作 VPS と商用購読を同じ実効プロファイルで扱う本質は、リモートが届けるプロキシと、ローカルに固定したいプロキシを名前とマージ順で矛盾なく連結することです。Clash Meta の mixin/マージを使えば購読更新に飲まれず、mixin とルールだけの運用だけでは足りないプロキシ多源問題にも筋の通った答えになります。