1. 共有するのはプロキシの接続先。PCのネットワーク全体ではない

ClashのLAN共有では、PCでプロキシコアを動かし、同じネットワーク上のスマホやテレビからPCのHTTPプロキシポートに接続するのが一般的です。プロキシ対応のリクエストがPCに送られ、コアが現在のルール、プロキシグループ、ノードに従って接続を処理します。PCの電源を入れたままにし、Clashのコアも継続して動作させる必要があります。

これはPCをルーターにする設定とは異なります。スマホでWi-Fiプロキシを設定しても、すべてのアプリや通信プロトコルがPCを経由するわけではありません。各アプリがシステムのプロキシ設定に従う必要があります。ゲームのUDP通信、一部の動画アプリ独自のネットワーク処理、独自に接続を確立するサービスなどは、この経路を使わない場合があります。

事前に確認する3つの情報

  • PCのLAN側IPv4アドレス:以下では 192.168.1.20 を例にします。実際に設定するときは、PCの現在のアドレスに置き換えてください。
  • プロキシの待ち受けポート:以下では 7890 を使用します。実際のポートはクライアントに表示されるMixedまたはHTTPポートを確認してください。
  • PCで利用できる設定:まずPCからプロキシポート経由で目的のWebサイトにアクセスできることを確認してから、LAN共有を設定します。

PCを有線LAN、スマホをWi-Fiで接続しても問題ありません。重要なのは、ルーターが端末間の通信を許可していることです。ゲストWi-Fi、無線クライアント分離、企業ネットワークのVLANなどによって通信が遮断される場合があります。同じWi-Fi名に接続していても、端末同士が通信できるとは限りません。

2. allow-lan、mixed-port、バインドアドレスを設定する

ClashまたはClash Meta(現名称:mihomo)ベースのクライアントには、「LAN接続を許可」や「Allow LAN」のスイッチが用意されていることが一般的です。これはコア設定の allow-lan に対応します。GUIクライアントによってメニュー名や設定の上書き方法は異なるため、サブスクリプションの設定項目だけでなく、実際に適用中の設定も確認してください。

項目設定例役割・確認ポイント
mixed-port7890同じポートでHTTPとSOCKSのプロキシ接続を受け付けます。スマホのシステムプロキシでは通常HTTPとして利用します。
allow-lantrueLAN内の端末からのプロキシ接続を許可します。ただし、待ち受けアドレス、ファイアウォール、コアのアクセス制御による制限は引き続き適用されます。
bind-address"*"すべてのアドレスへのバインドを許可します。ファイアウォールで接続元を制限し、実際の待ち受け状態も確認してください。
moderule共有端末からのリクエストもルールに従って振り分けられます。すべての接続が固定のリモートノードを経由するわけではありません。

現在の設定に項目を追加し、サブスクリプション全体は置き換えない

# LAN共有に関する設定項目。サブスクリプション全体ではありません
mixed-port: 7890
allow-lan: true
bind-address: "*"
mode: rule

この内容にはノード、プロキシグループ、ルールが含まれていないため、完全な設定としてインポートできません。クライアントが対応する永続的なオーバーライドまたは設定のマージ機能で変更し、既存の設定は保持してください。ダウンロードしたサブスクリプションファイルを直接編集すると、次回の更新時に変更が上書きされる可能性があります。保存後、クライアントの手順に従って設定を再読み込みするか、コアを再起動してください。

127.0.0.1 はPC自身からのアクセスにのみ使うアドレスです。実際の待ち受け先が 127.0.0.1:7890 のままでは、スマホから接続できません。バインド先をPCのLANアドレスに限定する方法もありますが、192.168.1.20 のみにバインドすると、PC上で 127.0.0.1:7890 に接続するプログラムが動作しなくなる場合があります。すべてのアドレスにバインドする場合は、ファイアウォールで信頼できる接続元だけに制限してください。

設定に port と socks-port しかない場合、スマホのHTTPプロキシには port に対応するポートを入力します。SOCKSポートではありません。HTTPSサイトには通常、HTTPプロキシのCONNECTトンネルで接続するため、追加の証明書をインストールする必要はありません。

3. PCのIPアドレスを確認し、コアが実際に待ち受けているか調べる

Windows:物理ネットワークアダプターと7890番ポートを確認

PowerShellで以下の2つのコマンドを実行します。1つ目でIPアドレス、2つ目で待ち受け状態を確認できます。現在ネットワークに接続している「イーサネット」または「ワイヤレス LAN アダプター WLAN」を選び、TUN、仮想マシン、コンテナーなどの仮想ネットワークアダプターは避けてください。

ipconfig
Get-NetTCPConnection -State Listen -LocalPort 7890 |
  Select-Object LocalAddress, LocalPort, OwningProcess

PCのWi-Fi IPv4アドレスが 192.168.1.20 の場合、スマホのプロキシサーバーにはこのアドレスを入力します。待ち受けアドレスが 0.0.0.0 なら、通常はすべてのIPv4インターフェースで待ち受けています。:: が表示された場合は、システムのIPv6やデュアルスタックの動作も確認してください。この表示だけでIPv4から接続できると判断することはできません。

macOS・Linux:IPアドレスと待ち受け状態を個別に確認

macOSでは「システム設定」→「ネットワーク」→現在の接続→「詳細」→「TCP/IP」でIPアドレスを確認し、ターミナルで待ち受けプロセスを調べます。

lsof -nP -iTCP:7890 -sTCP:LISTEN

Linuxでは以下のコマンドでインターフェースのIPv4アドレスと待ち受け状態を確認できます。プロセス情報の一部を表示するには管理者権限が必要な場合があります。

ip -4 addr show
ss -lntp 'sport = :7890'

スマホには localhost、127.0.0.1、0.0.0.0、ルーターのデフォルトゲートウェイを入力しないでください。最初の2つはスマホ自身を指し、3つ目は待ち受け用のワイルドカードアドレスです。デフォルトゲートウェイは通常ルーターのアドレスで、いずれもPCのプロキシに接続するためのアドレスではありません。再起動後にIPアドレスが変わらないよう、ルーターのDHCP設定でPCにアドレスを予約することをおすすめします。

4. 信頼できるLAN内の接続元だけをファイアウォールで許可する

「LAN接続を許可」はコアが接続を受け付けるかどうかを制御し、OSのファイアウォールは接続がコアまで届くかどうかを決めます。トラブル調査のためにファイアウォール全体を無効にしたままにしたり、ルーターで 7890 をインターネット向けにポート転送したりしないでください。アプリに対する広範な許可ルールがすでにある場合は、内容を確認して範囲を絞りましょう。制限付きのルールを追加しても、別の広範な許可ルールが自動的に取り消されるわけではありません。

Windows:プライベートネットワークでTCP 7890のみ許可する

信頼できる家庭内ネットワークでのみ、現在の接続を「プライベート」に設定します。Windows 11でWi-Fiを設定する一般的な手順は、「設定」→「ネットワークとインターネット」→「Wi-Fi」→現在の接続のプロパティ→「ネットワーク プロファイルの種類」です。その後、管理者権限でPowerShellを開き、次のルールを追加します。

New-NetFirewallRule `
  -DisplayName "Clash LAN TCP 7890" `
  -Direction Inbound `
  -Action Allow `
  -Protocol TCP `
  -LocalPort 7890 `
  -Profile Private `
  -RemoteAddress LocalSubnet

このルールはネットワークプロファイルが「プライベート」の場合にのみ有効になり、ローカルサブネットからのTCP 7890への接続を許可します。特定のスマホ1台だけに許可する場合は、LocalSubnet を実際のIPアドレス(例:192.168.1.30)に置き換えます。この記事で使うのはHTTPプロキシなので、UDP 7890を追加で開放する必要はありません。

macOS・Linux:利用中のファイアウォールに合わせて設定する

macOSでは「システム設定」→「ネットワーク」→「ファイアウォール」→「オプション」で、接続を受け付けるクライアントまたはコアのプロセスがブロックされていないか確認します。クライアントのアップデート後やコアのファイルを変更した後に、許可設定の再確認が必要になる場合もあります。

LinuxでUFWが有効になっており、家庭内サブネットが実際に 192.168.1.0/24 の場合は、以下の例を参考に許可できます。誤ったネットワーク範囲をそのまま使わないでください。また、リモートで管理しているサーバーでは、十分に検討せずにファイアウォールを有効化したりリセットしたりしないでください。

sudo ufw allow from 192.168.1.0/24 to any port 7890 proto tcp
sudo ufw status numbered

5. スマホやテレビにHTTPプロキシを設定する

iPhone・iPad:接続中のWi-Fiに手動プロキシを設定

  1. 「設定」→「Wi-Fi」を開き、接続中のネットワークの右側にある情報ボタンをタップします。
  2. 「プロキシを構成」を開き、「手動」を選択します。
  3. 「サーバ」にはPCの実際のIPアドレス(例:192.168.1.20)を、「ポート」には 7890 を入力します。
  4. プロキシ認証を設定していない場合は「認証」をオフのままにします。保存後、SafariでWebページを開いてテストしてください。

サーバー欄にはアドレスだけを入力し、http:// を付けたり、:7890 を追加したりしないでください。この設定は現在のWi-Fiに対するものです。モバイル通信や別のWi-Fiに切り替えた後も同じ経路になるとは限りません。

Android:接続中のネットワークの詳細設定で入力

メニューの場所はメーカーによって多少異なります。一般的には「設定」→「ネットワークとインターネット」→「インターネット」→接続中のWi-Fi→編集→「詳細設定」→「プロキシ」→「手動」の順に進みます。機種によっては、ネットワークの詳細を開いてから編集を選ぶ必要があります。

  • プロキシのホスト名:PCのIPアドレス(例:192.168.1.20)。
  • プロキシのポート:7890。
  • プロキシを使用しないアドレス:初回のテストでは初期値のまま、または空欄にします。動作を確認してから必要に応じて例外を設定してください。

Androidのシステムプロキシに、すべてのアプリが従うとは限りません。ブラウザーでは使えても特定のアプリで使えない場合は、アプリがシステムのHTTPプロキシに対応しているか確認してください。すぐにサブスクリプションを変更したり、クライアントを再インストールしたりする必要はありません。Androidの設定画面によってはユーザー名やパスワードの入力欄がないため、プロキシ認証を有効にする前に端末が認証に対応しているか確認してください。

テレビ・テレビボックス:プロキシ設定を探し、デフォルトゲートウェイは変更しない

Android TVやメーカー独自のテレビOSでは、「設定」→「ネットワークとインターネット」→接続中のネットワーク→「プロキシ設定」に「手動」が用意されている場合があります。入力するのはPCのIPアドレスとHTTPポートです。この設定が特定のネットワークでしか表示されない機種や、プロキシにまったく対応していない機種もあります。

プロキシの設定項目がない場合、PCのIPアドレスを「ゲートウェイ」や「DNS」の欄に入力しないでください。ゲートウェイ転送、DNS名前解決、HTTPプロキシはそれぞれ別の機能です。ゲートウェイ方式を使うには、ルーティングや転送、アクセス制御を別途設定する必要があり、アドレスを書き換えるだけでは実現できません。テレビがシステムプロキシに対応していても、動画アプリがプロキシを使わないことがあります。

6. 「ポート→リクエスト→ルール」の順に共有を確認する

まず別のLAN内PCからテストします。テレビアプリを直接調べるより簡単な場合がほとんどです。WindowsではTCPへの接続可否を確認できます。

Test-NetConnection 192.168.1.20 -Port 7890

TcpTestSucceeded: True が示すのはTCP接続の確立だけで、プロキシ認証、ノード、通信の振り分けが正常であることまでは分かりません。続けてcurlでプロキシを明示したHTTPSリクエストを送ります。Windows PowerShellでは、古い環境のコマンドエイリアスとの競合を避けるため、curl.exe と入力してください。

curl --proxy http://192.168.1.20:7890 --connect-timeout 5 --max-time 20 -I https://example.com/

ここでの5秒は接続タイムアウトの上限、20秒はコマンド全体の実行時間の上限であり、性能測定の値ではありません。HTTPSプロキシでは最初に 200 Connection established が表示されることがあります。続けて接続先サイトからの最終応答も確認してください。さらにClashの「接続」またはログ画面を開き、リクエスト元、宛先ドメイン、適用されたルール、最終的なポリシーを確認します。

症状まず確認する項目対処方法
接続がタイムアウトするPCのIPアドレス、ファイアウォール、ゲストネットワークの分離端末間の通信が可能か確認し、受信ルールとネットワークプロファイルを確認します。
接続が拒否されるポートが待ち受け中か、コアが動作しているか実際のポートと待ち受けアドレスを確認し、設定を再読み込みします。
HTTP 407が返されるプロキシ認証が必要認証に対応するクライアントに正しい認証情報を入力します。
Webは使えるが、一部のアプリは失敗するアプリがシステムプロキシに従うかアプリのプロキシ対応状況を調べ、HTTPリクエストとUDP通信を区別します。
アクセスできるが、出口が変わらないDIRECTまたは別のポリシーが適用されているモードのスイッチだけでなく、接続の詳細とルールの優先順位を確認します。
PCがスリープするとすべて切断されるPCとコアがオンラインか信頼できる利用環境で電源設定を調整するか、共有を終了します。

ルールモードでは、DIRECT に一致した接続はPCから接続先へ直接アクセスし、プロキシポリシーに一致した接続だけが対応するノードを経由します。そのため、スマホから見たインターネットへの出口は適用されたポリシーによって異なり、PC上のすべてのアプリと同じになるとは限りません。DNSの経路も、アプリ、プロキシプロトコル、コアの設定によって変わります。ブラウザーでWebページを開けるだけでは、端末のDNSリクエストがすべてPCを経由しているとは判断できません。

7. 共有終了後の安全確認と設定の復元

家庭内ネットワークにもゲスト端末が接続されている場合があります。まずファイアウォールで接続元を限定し、必要な場合に限ってコアが対応するプロキシ認証を有効にしてください。認証はネットワーク分離の代わりにはならず、スマホやテレビによって認証プロキシへの対応状況も異なります。サブスクリプションURL、プロキシのパスワード、管理インターフェースの認証情報を、トラブル調査用のスクリーンショットに写して公開しないでください。

  1. 別のネットワークに接続する前に共有を停止:ノートPCをホテル、職場、公共のWi-Fiに接続する前にAllow LANをオフにし、広範囲を許可するファイアウォールルールがないか確認してください。
  2. 使い終わったら端末の設定を元に戻す:スマホやテレビのWi-Fiプロキシを「オフ」または「なし」に戻します。PCの電源を切った後も、端末が古いアドレスへの接続を試みるのを防げます。
  3. 一時的な許可を取り消す:Windowsでは以下のコマンドを実行して、この記事で作成したルールを削除できます。Linuxでは、実際に追加した内容に応じて該当するUFWルールを削除してください。
  4. 更新後に再確認する:サブスクリプションの更新、クライアントのアップグレード、ポートの変更後は、実行中の設定と待ち受け状態をもう一度確認してください。画面に表示された値とコアが実際に使用する値が食い違う場合があります。
Remove-NetFirewallRule -DisplayName "Clash LAN TCP 7890"

安定して共有するには、PCのアドレスを固定し、コアが正しいアドレスとポートで待ち受け、信頼できる接続元だけを許可し、端末にHTTPプロキシを設定したうえで、接続ログから通信先を確認できる状態にします。この順で調べると、TUN、全般モード、DNS設定を同時に切り替えるより原因を特定しやすくなります。ルールやネットワークスタックについて詳しく知りたい場合はプロトコルガイドを、基本用語を確認したい場合は用語集をご覧ください。