想定する症状:「7890(または同じ)番が空いていない」
Clash Meta(Mihomo)系のコアをGUIで起動しようとした直後、ログやトーストにいわゆるポートの競合を示す文面が出て止まるケースは珍しくありません。日本語化された表現やクライアント独自の言い回しはさまざまですが、本質は同じで、起動しようとしている mixed-port 相当の番号に、既に他のプログラムがバインドしているという事実です。数字として 7890 がよく挙がるのは、コミュニティ内でHTTPとSOCKSの両用を一つに束ねる定番候補として扱いやすい番号帯に置かれてきたからであり、「Clash 専用の魔法番号」ではありません。他のインストール済みプロキシ、旧世代の同系クライアントの残留、開発用ツール、さらに偶発的に他アプリが同帯域を掴む、のいずれも起こり得ます。
アップグレード直後にだけ立ち上がる場合は、前バージョンの常駐や別プロファイルの二重起動を最初に疑う価値があります。Windowsで複数のショートカットから似た名前の実行ファイルを同時に動かすと、同じデフォルト設定のまま衝突する、という地味な罠もあります。導入の流れ全般はClash Verge Rev のWindowsセットアップと、初回構成の当サイトの使い方ドキュメントを併せて辿ると、プロファイル切替の勘どころが掴みやすいです。
7890 という数字と、mixed-port の役割
コアの設定では、従来どおり port(多くの実装でHTTP用)と socks-port を分ける書式と、mixed-port ひとつで HTTP と SOCKS5 を同じ TCP 待受に載せる書式が併存します。GUI クライアントは、プロファイル内の既存キーに合わせて上書きしたり、初回向けのプリセットを挿入したりしますが、いずれの場合も 「実際にリッスンしている番号」が UI 上の表示と一致しているかを見失うと、以後の「システムプロキシ」や 127.0.0.1:7890 といった他ツール向け案内とズレます。
本稿の焦点は、まさにその 待受番号の衝突 です。原因が判明すれば、先に動いているプロセスを正しく止めるか、空いている別番号へ mixed-port を移す、の二択(または併用)に落ち着きます。後述の netstat は、その「誰の PID か」をWindows標準の範囲で押さえるための道具です。LinuxやmacOSの手順は別OSの文脈に譲り、Windows 11/10 向けに言葉を揃えます。
Windows で調べる:netstat と PID
管理者権限は必須ではありませんが、企業端末でコマンドプロンプトやPowerShellが制限されている場合はIT部門の案内に従ってください。まず、コマンドプロンプトまたはPowerShellを開き、同じ番号(例 7890)で LISTENING している行を拾います。
netstat -ano | findstr :7890
出力の末尾列が プロセスID(PID) です。複数行出ることもありますが、IPv4/IPv6 の違いや、TIME_WAIT など、いま欲しいのは LISTENING 相当の行がどれか、という点です。PowerShell 派なら Get-NetTCPConnection -LocalPort 7890 のようにモダンなコマンドを使う手もあります。PID が分かれば、タスクマネージャーの「詳細」タブで同じ数値の名前付きプロセスに辿れます。CLIだけで知りたい場合は、
tasklist /FI "PID eq 12345"
のように、実際の PID に置き換えてください(上の 12345 は仮置きの例)。ここで 別のClash系や別名のプロキシ だと分かったら、当該アプリの公式の終了手順(トレイからの終了、サービス登録の停止など)で静かに退場させ、もう一度だけClashを起動してみるのが安全です。いきなり taskkill も可能ですが、保存中の作業中データを巻き込むリスクがあるため、分からないシステムプロセス名のときは、終了前に何の製品かを検索する習慣を付けてください。
回避策A:mixed-port を空いている番号に変える
衝突しているのが、自分では止めづらい常駐ソフト(セキュリティ製品、社内制御エージェント、別用途のHTTPプロキシ)で、ポートの解放を依頼できない状況もあり得ます。そこで現実的なのが、空いている高位ポート(例:7891、18080 など、運用方針に合うもの)へ mixed-port だけ切り替える方法です。設定ファイル上は概ね次の一行的な変更になります(実数値は各自の空きに合わせる)。
mixed-port: 7891
GUI では「コアの設定」や「Override」「設定エディタ」に相当する画面から同じ数値に直せるクライアントが多いです。編集したあとはコアの再起動、あるいはアプリ全体の再起動を忘れないでください。購読で毎回上書きされるプロファイルの場合、上書き後に戻ることがあるため、オーバーライドやローカルマージ欄のある実装で永続化する、という発想も併用します。バックアップを取ることは、購読の扱い全般の記事でも繰り返し触れています通り、ここでも例外ではありません。
回避策B:Windows の「システムプロキシ」番号を合わせる
mixed-port だけ直して、OS の 手動代理設定が旧番号(例 7890)のままだと、ブラウザは引き続き衝突していた側か、今は空いている別プロセスに向かい、「接続はできたが挙動が妙」に見えることがあります。Windows の「インターネットのプロパティ」相当、あるいは「設定 > ネットワークとインターネット > プロキシ」から、HTTP 用に指定するローカルホストのポートを、新しい mixed-port に合わせて更新してください。Clash クライアントが「システムプロキシを自動で追随する」オプションを持っているなら、GUI のトグルと実際のOS設定が一致するか、一度開いて確認するのが確実です。
同じPCで WSL2 の Linux シェルから ALL_PROXY などを張っている場合、Windows 上の mixed-port を変えた直後に、bash 側のポート番号も同じ数に直す必要があります。逆にWSL用だけ 7890 のまま、ホストClashを7891に逃がした、という非対称にすると、疎通の切り分けに時間を溶かしがちなので、メモ帳に「現在の一桁の定番」を残しておくと安心です。
併せて知っておく:HTTP と SOCKS を分けたいとき
歴史的な設定互換のため、port+socks-port だけ使い、mixed-port をそもそも定義しない、というパターンも残っています。衝突が「片方だけの番号」で起きているなら、本当に衝突しているのがどのキーかをYAMLで確認し、同じ意図のキーが重複定義されていないかも見る価値があります。GUI によっては、見た目一つに見えて背後は別バインド、という挙止めがあるため、当サイトの接続ログの読み方に沿って、起動直後のエラー行だけを抜き出し、どの段で bind に失敗したかをログの英文から拾うと、迷いが減ります。
典型パターン:二重起動、残留、別ディレクトリの同梱
同じ週に「昨日まで動いていたのに、今日のアップデートでだけコケる」系は、(1) 旧バイナリの常駐が手元に残った、(2) スケジュールタスクに旧パスが残った、(3) ポータブル版とインストール版の二重導入、のどれかに寄りがちです。タスクトレイの常駐アイコンを閉じたつもりでも、裏のサービス枠で同じ番号を掴んでいると、衝突は再現し続けます。常に netstat から戻るPID名と、起動中だと信じているアプリ名を突き合わせる、という地味作業がもっとも早い道になることが多いです。
まとめ:奪い合いの正体を見てから、番号を動かす
本稿の流れを一文にまとめると、7890 など一つの数字をめぐる「プロセス間の奪い合い」を、PID で実名化してから、終了とポート変更のどちらを選ぶか決める、です。多くの読者にとって、ミスマッチの大本は mixed-port より先に、二重起動とシステム代理設定の取り遅れの方にあるはずで、合わせて揃えれば多くの症状は霧散します。ルール面やTUN、DNS の設計に進む前の土台として、待受の健全性を一度だけでも確認しておく価値は大きいでしょう。
他ツールと比較しても、Mihomo 系コアを載せる現行クライアントの世代差は、更新頻度と可観測性(ログと儀表)の両面でまだ大きい場面が多いです。Windows での初回導入から、安定した本番用プロファイルの維持まで、クライアントの入手手段は混在しがちなので、リリースノートとバイナリの出所をこまめに合わせる習慣を付けてください。新しい版を手元に揃えたい場合は、当サイトのダウンロードページを起点に、環境に合うパッケージを選び、→ 無料で Clash を入手し、mixed-port から確認する流れをおすすめします。