Clash 混合ポートとLAN共有プロキシ設定:スマホとPCで1つのプロキシを共用

混合ポートはHTTPとSOCKSのリクエストを1つのポートで受け付けます。LAN接続を許可する設定と組み合わせれば、スマホやタブレットからPC上のClashプロキシを共用できます。各クライアントでの設定場所と動作確認方法を解説します。

混合ポートとは:1つのポートで2つのプロトコルを話す仕組み

Clashのコア(mihomo、つまりClash Meta)は外部向けに3種類のインバウンドプロキシポートを提供します。HTTPプロキシポート(設定項目 port)、SOCKS5ポート(socks-port)、そして混合ポート(mixed-port)です。前者2つはそれぞれ1つのプロトコルしか扱いませんが、混合ポートは同一のTCPポート上でまずリクエストヘッダを判別し、HTTP CONNECTや通常のHTTP転送リクエストであればHTTPプロキシとして処理し、SOCKS5のハンドシェイクであればSOCKS5として処理します。下流のデバイスはどちらのプロトコルを使っているか判断する必要がなく、同じポートを設定すればそのまま使えます。

現在主流のGUIクライアントはデフォルトで混合ポートのみを開いています。Clash for Windowsは歴史的にデフォルト7890、Clash Verge Revはデフォルト7897、FlClashはデフォルト7890です(実際の値は各クライアントのポート設定画面を確認してください)。設定ファイルレベルでの等価な書き方は以下の通りで、mixed-portと個別ポートは併用できます。

# 混合ポートのみを残し、HTTPとSOCKS5のリクエストはすべて7890経由になる
mixed-port: 7890

# 個別ポートが必要な場合は分けて設定でき、3つは併用可能
# port: 7890
# socks-port: 7891

allow-lan: true
bind-address: "*"

ほとんどの場合、mixed-portだけ開いておけば十分です。HTTPプロキシしか対応していない古いソフトも混合ポートを指定すればそのまま動作しますし、スマホのシステムプロキシ設定にもHTTPの項目しかないため、混合ポートは元々互換性があります。プロトコルごとにトラフィックを個別に集計したい、あるいはプロトコルごとに異なる上流に振り分けたい場合にのみ、portsocks-portを分けて使う意味があります。

各クライアントでの混合ポート設定場所

GUIクライアントでは通常、ポート設定とLAN接続の切り替えが同じ設定グループにまとまっており、変更はすぐに反映されるか、コアの再読み込みを促されます。

クライアント設定場所備考
Clash Verge Rev設定 → ポート設定混合ポートのデフォルトは7897、同ページに「LAN接続」のスイッチあり
Clash for WindowsGeneral → Port / Allow LANメンテナンス終了済み、混合ポートのデフォルトは7890
FlClash設定 → ネットワークポート設定と「LAN接続を許可」が同じグループにある
ClashX Metaメニューバーアイコン → 環境設定ポート設定は設定ウィンドウ、Allow LANはメニューバーのメニューから有効化
Clash for Android設定 → ネットワークポート変更は可能だが、スマホへのLAN共有機能はあまり使われていない

設定ファイルを直接編集する場合は、mihomoの設定にmixed-portallow-lan: trueを書き込むだけで十分です。GUIのスイッチも実質的にはこの2つの項目を書き換えているだけです。ポートを変更したら、下流の全デバイスに設定した古いポート番号も忘れずに更新してください。

LAN接続を許可:スマホからPCのプロキシを使う

デフォルトではClashはローカルのループバックアドレス127.0.0.1のみを監視しており、他のデバイスからはアクセスできません。「LAN接続を許可」を有効にすると、コアの監視アドレスが0.0.0.0に変わります(設定上はallow-lan: trueかつbind-address: "*"と同等)。これで同じWi-Fi上のスマホ、タブレット、別のPCからトラフィックを転送できるようになります。

手順

  1. PC側で「LAN接続を許可 / Allow LAN」のスイッチをオンにし、混合ポート番号を確認する。
  2. PCのLAN内IPアドレスを確認する。Windowsではコマンドプロンプトでipconfigを実行し「IPv4 アドレス」を確認、macOSはシステム設定 → Wi-Fi → 詳細情報で確認するか、ターミナルでipconfig getifaddr en0を実行、Linuxはhostname -Iを実行する。結果は通常192.168.x.xまたは10.x.x.x帯のアドレスになる。
  3. スマホをPCと同じWi-Fiに接続する。
  4. iOS:設定 → Wi-Fi → 接続中のネットワーク右側の詳細ボタン → プロキシを構成 → 手動、サーバーにPCのIP、ポートに混合ポート番号を入力。
  5. Android:設定 → Wi-Fi → 接続中のネットワークを編集 → 詳細オプション → プロキシで「手動」を選択、ホスト名にPCのIP、ポートは同上。

システムプロキシの適用範囲

スマホの手動プロキシ設定はHTTPプロキシであり、システムプロキシに従うアプリにのみ有効です。一部のゲームやストリーミングアプリはシステムプロキシを無視するため、アプリ内で個別に設定するか、PC側でホットスポットを開いてTUNモードなどの方式を使う必要があります。

PCがスリープしたりスリープ状態になると共有は中断されます。長期的に「プロキシゲートウェイ」として使うPCでは自動スリープをオフにすることをおすすめします。スマホ側でプロキシを使わない場合は、Wi-Fiのプロキシ設定を「オフ / なし」に戻せば問題ありません。PC本体のプロキシ動作には影響しません。

ファイアウォールの許可設定とセキュリティ上の注意

Windowsで初めてLAN接続を有効にすると、ファイアウォールが「アプリの通信を許可する」ダイアログを表示することが多いので、「プライベートネットワーク」にチェックを入れて許可してください。ダイアログを見逃した場合は「Windows Defender ファイアウォールによるアプリケーションの許可」一覧からクライアントを手動で許可するか、混合ポート専用の受信規則を作成してください。macOSでシステムファイアウォールを有効にしている場合は、「システム設定 → ネットワーク → ファイアウォール」でクライアントの着信接続を許可してください。

信頼できるネットワークでのみ有効化する

allow-lanを有効にすると、プロキシポートが同一セグメント内の全デバイスに公開されます。つまり同じネットワーク上の誰でも、あなたの出口経由でネットに接続できてしまいます。自宅のネットワークなら安心して有効化して構いませんが、カフェやホテルなどの公共Wi-Fiでは必ず無効にするか、bind-addressを具体的な内部ネットワークインターフェースのアドレスに絞ってください(例:bind-address: 192.168.1.10)。mihomoはauthentication: ["user:pass"]によるポート単位のユーザー名・パスワード認証にも対応しており、iOSの手動プロキシ設定画面から直接認証情報を入力できます。

あわせて、ルーターでPCにDHCPの固定IP割り当て(アドレス予約)を設定しておくことをおすすめします。設定しておかないとPCの再起動やリース期限切れでIPが変わり、スマホ側に入力した古いアドレスが静かに無効化されてしまい、原因調査に時間を無駄にすることになります。

動作確認とトラブルシューティング

PC本体または同一ネットワーク内の任意のデバイスから、curlで2つのプロトコルをそれぞれ確認します(IPとポートは実際の値に置き換えてください)。

# HTTP方式
curl -x http://192.168.1.10:7890 https://api.ipify.org

# SOCKS5方式、同じ混合ポートを使用
curl --socks5-hostname 192.168.1.10:7890 https://api.ipify.org

どちらのコマンドもプロキシ出口のIPが返ってくれば、混合ポートは両プロトコルとも正常に動作しています。スマホ側での確認はもっと簡単で、ブラウザで任意のIP確認サイトを開き、出口がプロキシノードに変わっているか確認します。クライアントの接続一覧を開けば、スマホのLAN内IPが送信元になっている接続項目が確認できるはずです。

接続できない場合の確認順序

  1. スマホとPCが同一ネットワークセグメントにない、またはルーターでAP隔離/クライアント隔離が有効になっている(ゲスト用ネットワークではデフォルトで有効な場合が多い)。メインのネットワークに切り替えるか、隔離設定を無効にしてください。
  2. PCのファイアウォールで混合ポートが許可されていない。前節の手順で対処してください。
  3. PCのLAN内IPが変わっている。再度確認してスマホ側の設定を更新してください。
  4. スマホに入力したのが古いポート番号で、クライアントの現在のポートと一致していない。
  5. 「LAN接続を許可」のスイッチを変更しても反映されていない。クライアントを再起動するか設定を再読み込みしてください。
  6. スマホが実際にはモバイルデータ通信を使っている。Wi-Fiに接続済みで、プロキシ設定が現在のWi-Fiに書き込まれているか確認してください。

これらを一通り確認しておけば、「PCにClashを常駐させ、スマホはLAN経由でプロキシを利用する」という構成は長期的に安定運用できます。サブスクリプションの更新やルールのメンテナンスはPC側で一度行うだけで済み、他のデバイスは設定不要で接続できるため、家庭内ネットワークの固定構成として使いやすい方法です。

DOWNLINK READY

Clash クライアントをダウンロード

Windows、macOS、Linux、Android、iOS各プラットフォーム向けクライアントとmihomoコアのダウンロード先はプラットフォームごとに整理されています。まずダウンロードページでPC側のセットアップを済ませ、本記事の手順でLAN共有を有効にしてください。

Clash をダウンロード