こんなときに読む記事です

自室の Windows PC では Clash(mihomo/Clash Meta 系コア)が問題なく動いているのに、同じ無線 LAN にいる スマートフォンやタブレットだけ からプロキシに繋がらない——よくある原因は、大きく分けて次の二つです。① PC 側でプロキシが「自分自身(127.0.0.1)だけ」にしか聞いていない、または ② 実際には LAN 向けに聞いていても、Windows Defender ファイアウォールが外部(同一 LAN の端末)からの接続を拒否している。加えて、③ ルーターのゲスト Wi‑Fi や端末隔離、④ 別の VPN/フィルタと競合、といったネットワーク側の要因もあります。

ここでは「Clash 局域网プロキシ」とも呼ばれる構成——PC を出口にして、スマホの HTTP/SOCKS トラフィックを Clash に流す——を、Windows 上の待受(バインド)とファイアウォール に焦点を当ててまとめます。GUI は Clash Verge Rev を想定した説明も交えますが、コア設定の考え方は他クライアントでも共通です。TUN まわりで全体的に詰まる場合は TUN/ルート/ファイアウォールの切り分け記事 と併読してください。

セキュリティ上の注意

LAN にプロキシを公開すると、同じネットワークにいる端末から接続できる状態になります。信頼できる自宅/職場のネットワーク以外では有効にしないでください。利用後は allow-lan をオフに戻す、不要な受信規則を削除する、といった運用を推奨します。

前提:PC の IPv4 アドレスと「同じサブネット」か確認する

スマホのプロキシ設定欄に入れるのは、だいたい PC の LAN 上の IPv4 アドレス(例:192.168.1.23)です。コマンドプロンプトまたは PowerShell で ipconfig を実行し、今つないでいるアダプタ(無線 LAN なら「Wireless LAN adapter Wi‑Fi」など)の IPv4 アドレス をメモします。スマホ側の IP が全く別の帯(例:ゲスト SSID だけ別セグメント)になっていないかも確認してください。ゲスト Wi‑Fi や「AP 隔離」が有効だと、端末同士が通信できずプロキシにも届きません。

Clash 側:ローカルネットワークへの公開と待受アドレス

設定ファイル(YAML)では、次のようなキーが鍵になります。

  • allow-lan:LAN からの接続を許可するか(true にする)。
  • bind-address:どのインターフェースで聞くか。'*' または 0.0.0.0 は「すべての IPv4 アドレスで待受」、127.0.0.1 のみだと LAN からは届きません。
  • mixed-port または portsocks-port:実際にスマホが向ける TCP ポート。クライアントのダッシュボードに表示されている数値と一致させます。
# Minimal example (adjust ports to match your profile)
allow-lan: true
bind-address: '*'
mixed-port: 7890

ローカルネットワークへの接続を許可する」に相当するのが allow-lan です。GUI によってはトグル名が日本語や英語で表記されているだけなので、実体は YAML のこの値と対応しているかログや設定画面で確認してください。bind-address を誤ってループバック固定のままにすると、スマホから http://192.168.x.x:7890 を指定しても接続できません。

Windows ファイアウォール:受信をブロックしないようにする

allow-lan と待受が正しくても、Windows Defender ファイアウォール が「Clash 本体の実行ファイル」または「使用している TCP ポート」への受信を拒否していると、スマホ側はタイムアウトや接続拒否になります。代表的な設定手順は次のとおりです。

  1. コントロール パネル または Windows セキュリティ から「Windows Defender ファイアウォール」を開き、「詳細設定」で 受信の規則 を表示します。
  2. 新しい規則 を作成し、プログラム を指定する方法では、実際に動いている Clash コアまたは GUI の実行ファイル(.exe) のパスを選び、接続を許可、プロファイルは プライベート(自宅 Wi‑Fi なら通常こちら)を有効にします。
  3. 代わりに ポート 規則で mixed-port 相当の TCP(必要なら SOCKS 用 UDP も)を明示する方法もあります。複数プロファイル(パブリック)のままだとブロックされやすいので、現在のネットワークを プライベート に切り替えられるかも併せて確認してください。

サードパーティ製のセキュリティソフトを入れている場合は、Defender 以外のレイヤーでブロックされていないかもログを確認します。企業端末ではグループポリシーで上書きされるため、管理者ドキュメントと矛盾がないかに注意してください。

スマホ側:Wi‑Fi の HTTP プロキシ(手動)を入れる

Android では、対象の Wi‑Fi ネットワークの詳細設定から プロキシ:手動 を選び、ホスト名 に PC の IPv4、ポートmixed-port または HTTP 用ポートを入力します。iOS/iPadOS も同様に、該当 Wi‑Fi の HTTP プロキシ:手動 でサーバとポートを指定します。HTTPS サイトをブラウザで試す場合、環境によっては証明書まわりやアプリ独自のプロキシ設定が別途必要になることがあります。まずは PC の LAN IP とポートが正しいか、同一ネットワークかを優先して確認してください。

SOCKS5 を直接指定できるアプリもあれば、PC 側の socks-port に合わせます。ブラウザだけ試すなら HTTP プロキシ指定が分かりやすいことが多いです。

繋がらないときの切り分け(短いチェックリスト)

次を上から試すと原因が絞り込みやすくなります。

  • PC 自身127.0.0.1:ポート にアクセスできるか(ローカルでプロキシが生きているか)。
  • スマホから PC へ ping が通るか(ICMP が禁止されている環境もあるので、必須ではありません)。
  • 同一 LAN の 別 PC やスマホのブラウザから http://PCのIP:ポート に到達するか(プロキシの応答ではなく、接続確立の有無を見る)。
  • 別の VPN クライアント やフィルタが有効で、ルートやファイアウォールポリシーを上書きしていないか。
  • ルーター設定で クライアント隔離 やゲスト VLAN が有効になっていないか。

ポート番号を一文字でも誤ると接続できないほか、PC の IP が DHCP で変わったあとスマホ側の設定を更新し忘れるケースも多いです。固定したい場合はルーター側で DHCP 予約(MAC アドレス紐付け)を検討してください。

まとめ

同じ Wi‑Fi でスマホから PC の Clash を使うには、待受を LAN に公開する(allow-lan と適切な bind-addressことと、Windows ファイアウォールでその通信を受け入れることの両方が揃う必要があります。どちらか片方だけでは「スマホだけ繋がらない」症状が出やすいので、設定変更のたびに YAML・GUI・ファイアウォールの三か所をセットで確認する癖をつけると安定します。

クライアントの導入やモードの違いを押さえたい場合は、まず OS 向けパッケージを ダウンロードページ で揃えると、コアと GUI の対応関係を追いやすくなります。オープンソースのリポジトリは仕様確認に有用ですが、実行ファイルの入手はサイトの案内を主な入口にすると迷いが減ります。→ 無料で Clash をダウンロードし、快適な接続体験を試す