なぜ「LAN でプロキシ共有」が必要になるのか
モバイル端末ごとに VPN アプリや別のクライアントを入れるより、すでに安定稼働しているデスクトップの Clash にHTTP プロキシまたは SOCKS5で乗せたい、というニーズは非常に多いです。特に開発用端末と本機を分けている場合や、一時的にタブレットだけルールを揃えたい場合に、LAN 経由の共有は手軽です。
ただしデフォルトでは Clash はループバック(127.0.0.1)のみで待ち受け、他端末からは届きません。LAN 内の別マシンにポートを開けるには allow-lan: true が必須であり、同時に OS のファイアウォールで受信を許可する必要があります。ここを飛ばすと「設定はしたのに繋がらない」という状態になりがちです。
Clash 本体の導入や GUI の基本操作はClash Verge Rev の入門記事で先に固めておくと、本稿のポート番号や「システムプロキシ」との関係が理解しやすくなります。
事前に確認すること
共有元の PC と、プロキシを使いたい端末が同じサブネットにいること、すなわち同一路由器(または同一 VLAN)配下であることが前提です。ゲスト Wi-Fi がメイン LAN と分離されている環境では、意図どおりに届かないので、ルータ設定か接続先 SSID を揃えてください。
共有元 PC のローカル IP アドレスをメモします。Windows なら ipconfig、macOS なら「システム設定 → ネットワーク」または ifconfig/ipconfig getifaddr en0 などで確認できます。例として 192.168.1.100 のようなアドレスが表示されれば、他端末のプロキシ設定では「ホスト名/サーバー」にその IP を入力します。
allow-lan とは何か
allow-lan は、Clash がプロキシポートをLAN 上の他ホストからも受け付けるかを決めるスイッチです。false のままだとバインドはローカルのみで、スマホから 192.168.x.x:7890 に繋いでも拒否されます。true にすると、同一ネットワーク内の機器が(ファイアウォールを通過すれば)そのポートに到達できるようになります。
設定ファイル(YAML)では次のように記述します。
allow-lan: true
bind-address: '*' # または特定 IP への限定も可
bind-address を * にするとすべてのインターフェースで待ち受けます。セキュリティを少し締めたい場合は、LAN 側の IPv4 アドレスだけを指定する方法もあります(環境によっては挙動が変わるため、繋がらないときは一度 * で試すのが確実です)。
混合ポート(mixed-port)と個別ポート
近年の Mihomo/Meta 系では mixed-port が一つの入口にHTTP と SOCKS5 の両方をまとめることが多く、多くの GUI ではここがメインのプロキシポートとして表示されます。例えば mixed-port: 7890 であれば、他端末からは 192.168.1.100:7890 を HTTP プロキシまたは SOCKS5 のホストとして指定するイメージです(クライアント側の種類に合わせて選んでください)。
一方、古い設定や分割構成では port(HTTP)と socks-port(SOCKS5)が別々に定義されていることもあります。スマホの Wi-Fi プロキシ設定が HTTP のみ対応なら port/mixed-port 側、アプリが SOCKS5 を要求するなら socks-port または mixed の SOCKS として接続します。実際の番号は実行中の設定ファイルか、GUI の「ポート」「接続」表示で必ず確認してください。
ゲーム機や特殊アプリは TUN が必要になることがあります。LAN 共有は主に HTTP/SOCKS の話なので、端末全体を透過的に載せ替えたい場合はTUN モードの解説と役割の違いを整理しておくと混乱が減ります。
Windows での手順:GUI とファイアウォール
Clash Verge Rev などの GUI をお使いの場合、設定画面に「LAN に許可」「Allow LAN」に相当する項目があればそれをオンにします。内部では allow-lan が有効化され、コアの再起動が走ることがあります。変更後、実際に YAML または表示上のポート番号が想定どおりかだけ再確認してください。
Windows Defender ファイアウォールが有効なら、受信規則で Clash または Mihomo の実行ファイル、あるいは該当ポート(例:TCP 7890)への許可が必要です。「詳細設定」から「受信の規則」を新規作成し、プロトコル TCP、ローカルポートに実際の番号を指定、プロファイルはプライベートのみに限定する、といった運用がおすすめです。公共のネットワークプロファイルのまま許可を広げるとリスクが上がるため、自宅 LAN 利用ではネットワークを「プライベート」に設定してからルールを絞るとよいでしょう。
他セキュリティソフトやサードパーティのファイアウォールを入れている場合は、同様にインバウンドをブロックしていないか確認します。テスト時は一時的にログを有効にして、どのルールで落ちているかを見ると原因が特定しやすいです。
macOS での手順
macOS でも GUI で LAN 許可をオンにするか、設定 YAML を直接編集して allow-lan: true にします。Apple シリコン/Intel どちらでも、バインドとファイアウォールの原則は同じです。
「システム設定 → ネットワーク → ファイアウォール」で、Clash 関連のアプリに着信接続を許可するか、ファイアウォールをオフにしているかを確認します。厳格モードでは個別許可が必要になるため、初回接続時にダイアログが出たら許可を選びます。コマンドラインバイナリだけを動かしている場合は、ターミナルから起動しているプロセス名がブロック対象になっていないかも見ておくと安心です。
スマホ・他 PC 側の設定
iOS/Android では「Wi-Fi の詳細設定」から HTTP プロキシを「手動」にし、サーバーに PC の LAN IP、ポートに mixed-port または port を入力します。認証は通常不要です(設定に認証がない前提)。
別の Windows/macOS では、OS のプロキシ設定またはブラウザ拡張で同じアドレスを指定します。システム全体で SOCKS5 を使うアプリもあれば、ホスト・ポート・タイプ(SOCKS5)を一致させます。
接続テストとして、スマホのブラウザで国内サイトと海外サイトの両方を開き、期待どおりルール分流されているかを見ます。挙動がおかしいときは、PC 側の Clash がルールモードか、DNS が意図どおりかをトラブルシューティング記事の流れで確認してください。
セキュリティ上の注意(必読)
allow-lan を有効にすると、同じ LAN にいる機器からプロキシにアクセスできる状態になります。家族や信頼できる端末だけが接続する自宅ならリスクは相対的に低いですが、シェアハウス、オフィス共有 Wi-Fi、カフェなど誰が接続しているか分からないネットワークでは、悪意ある同一 LAN 利用者にプロキシを悪用される可能性があります。
対策の例として、(1) 利用しないときは allow-lan をオフにする、(2) ルータのゲスト SSIDにスマホを載せない、(3) 可能ならプロキシに認証をかけられる構成や、VPN で出口を別にする、などがあります。また external-controller を LAN 全域に晒す設定は API が操作される危険があるため、通常は 127.0.0.1 に留め、必要なら SSH トンネルや別の認証レイヤーを検討してください。
ホテルや空港の Wi-Fi のように、ポータル認証の前に全トラフィックがプロキシに流れると挙動が壊れることもあります。そのような環境では LAN 共有をオフにし、通常の直結に戻すのが無難です。
うまく繋がらないとき
端末同士の疎通
まずスマホから PC の IP に ping が通るか、同じセグメントかを確認します。VPN クライアントが PC 側で全トラフィックを握っていて LAN が分断されているケースも稀にあります。
ポート番号の取り違え
7890 はよく使われる例ですが、設定によっては別番号です。ダッシュボード表示と実際の YAML を一致させてください。
ファイアウォール
受信許可がなく接続タイムアウトになることが最多です。OS とサードパーティ両方を疑ってください。
まとめ
Clash の LAN プロキシ共有は、allow-lan を有効にし、正しいポート(多くは mixed-port)を開き、OS ファイアウォールで受信を許可するのが三本柱です。手順は単純ですが、信頼できる LAN かどうかを常に意識することが安全運用の鍵になります。
デスクトップで安定したクライアントをまだ選べていない場合、Mihomo コア同梱で設定しやすい公式系 GUI から始めると、本記事のポート確認や LAN オプションも画面から扱いやすくなります。他ツールに比べ、ルール分流とコアの更新のしやすさで長く使い続けやすいのが Clash 系の強みです。→ Clash を無料ダウンロードして、自宅 LAN でも外出先でも快適に使い分ける