ネットワーク 読了時間:約10分

FlClashの混合ポートとLAN接続の許可設定:スマホ・テレビでPCのプロキシを使う方法

混合ポートでHTTPとSOCKS5を同時に受け付ける仕組みを解説します。LAN接続を許可した後のPCのIPアドレスの確認方法、スマホやテレビのプロキシ設定、ファイアウォールの許可設定と安全上の注意点を紹介します。

1. 混合ポートとLAN共有の役割

スマホやテレビからPC上のFlClashを使うには、3つの条件が必要です。クライアントに利用可能な設定が読み込まれていること、PCがLAN上のアドレスでプロキシポートを待ち受けていること、スマホやテレビからそのアドレスへリクエストを送ることです。PCのシステムプロキシを有効にしただけでは、ほかの端末のプロキシ設定は自動で変更されません。

この記事では、PCのLAN側IPv4アドレスを192.168.1.20、混合ポートを7890とし、スマホとテレビは家庭用ルーターに接続している例を使います。いずれも説明用の値で、FlClashの固定デフォルト値ではありません。実際の設定では、PCのIPアドレスとクライアントに表示されるポートを確認してください。

設定項目役割間違えやすい点
mixed-portHTTPプロキシとSOCKS5プロキシの両方を同じ接続先で受け付ける2つのプロトコルのポートを足したものでも、Webサイト用のポートでもない
allow-lanLAN内の端末からプロキシの接続先へのアクセスを許可する待ち受けアドレス、OSのファイアウォール、ルーターの端末間通信制限の影響を受ける
システムプロキシシステムプロキシ設定に従うPC上のアプリを設定するスマホやテレビのネットワーク設定を遠隔で変更する機能ではない
TUNモード仮想ネットワークインターフェースを通じて、対象の通信を取り込むLAN内でHTTPプロキシを共有するために必須ではない

HTTPとSOCKS5、どちらを選ぶ?

スマホのWi-Fiで手動設定するプロキシは、通常HTTPプロキシです。ホストに192.168.1.20、ポートに7890を入力します。アプリにSOCKS5の設定項目がある場合も同じ混合ポートを使えますが、プロトコルはSOCKS5を選んでください。HTTPSサイトへの接続では、通常HTTPプロキシがCONNECTでトンネルを確立するため、スマホのプロキシ種類を「HTTPS」に変更する必要はありません。

2. PCで設定と待ち受けポートを確認する

  1. FlClashを開き、サブスクリプションが読み込まれていることと、使いたい設定が選択されていることを確認します。PC自体から接続先のサービスにアクセスできない場合は、まず設定や出口側の接続を確認してください。LANの設定も同時に変更すると、原因の切り分けが難しくなります。
  2. クライアントの設定画面で「混合ポート」と「LAN接続を許可」を探します。項目の分類や表記はバージョンによって異なる場合があるため、該当する設定名を確認してください。コントローラーポートをプロキシポートと取り違えないようにしましょう。
  3. この記事の例では7890を混合ポートとして記録し、LAN接続を許可します。画面の案内に従って設定を適用するか、コアを再起動し、設定が保持されていることを確認してください。
  4. FlClashは起動したままにします。PCの電源を切る、クライアントを終了する、PCをスリープ状態にするなどすると、スマホやテレビからプロキシを利用できなくなります。

設定ファイルでこれらの項目を管理する場合、mihomoでは以下の基本項目に対応します。この例は待ち受け設定のみを示しており、サブスクリプション、出口設定、ルールは含まれていません。単独では完全な設定として使えません。

mixed-port: 7890
allow-lan: true
bind-address: "*"

bind-address: "*"は、利用可能なすべてのアドレスで待ち受ける設定です。127.0.0.1だけで待ち受ける場合より公開範囲が広くなるため、ファイアウォールで接続元を制限してください。FlClashは画面上の設定をもとに最終的な設定を生成または上書きする場合があります。サブスクリプションの元データを編集する前にクライアントの実行時設定を確認し、画面とファイルの設定が互いに上書きされないようにしましょう。

待ち受け状態から設定の反映を確認する

WindowsではPowerShellで次のコマンドを実行します。実際のポートが7890ではない場合は、コマンド内の数値を置き換えてください。

Get-NetTCPConnection -State Listen -LocalPort 7890 |
  Select-Object LocalAddress, LocalPort, OwningProcess
  • 127.0.0.1だけが表示される:この接続先はPC上からのみ利用できます。LAN接続の許可設定と待ち受けアドレスを確認してください。
  • 0.0.0.0が表示される:すべてのIPv4インターフェースで待ち受けています。次にファイアウォールと端末間のネットワーク接続を確認してください。
  • PCのLAN側アドレスが表示される:そのインターフェースで待ち受けています。スマホが接続しているネットワークから到達できることを確認してください。
  • 結果が表示されない:コアが動作しているか、ポート番号に誤りがないかを確認してください。ポートの競合が発生した場合は、プロセスIDから使用元を調べ、正体の分からないシステムプロセスを終了しないでください。

3. PCのLAN側IPアドレスを確認し、端末間の通信を確かめる

Windowsではターミナルでipconfigを実行し、接続中の「ワイヤレス LAN アダプター Wi-Fi」またはイーサネットアダプターのIPv4アドレスを確認します。TUN仮想アダプター、未接続のアダプター、ループバックアドレスは選ばないでください。macOSでは「システム設定」→「ネットワーク」→接続中のネットワーク→「詳細」→「TCP/IP」でIPv4アドレスを確認できます。Linuxではip -4 addrを実行し、実際にネットワークへ接続しているインターフェースを確認します。

PCのIPv4:192.168.1.20
スマホのIPv4:192.168.1.35
サブネットマスク:255.255.255.0
プロキシ接続先:192.168.1.20:7890

上記のアドレスは同じ192.168.1.0/24サブネットに属する、家庭内ネットワークでよくある例です。ただし、同じ名前のWi-Fiに接続していても、必ず相互通信できるとは限りません。ゲストネットワーク、AP隔離、企業向けWi-Fiのポリシーによって、端末間の通信がブロックされることがあります。PCを有線接続、スマホをWi-Fi接続にしても、ルーターが両ネットワーク間の通信を許可していれば共有できます。

  • スマホには127.0.0.1やlocalhostを入力しないでください。これらはスマホ自身を指します。
  • プロキシがルーター上で動作している場合を除き、ルーターの管理用アドレスは入力しないでください。
  • PCがネットワークに再接続すると、IPアドレスが変わることがあります。長期的に使う場合は、ルーターのDHCPアドレス予約を使ってPCに同じLANアドレスを割り当ててください。
  • 最初の動作確認では、ホスト名の名前解決やIPv6の到達性という別の問題を避けるため、具体的なIPv4アドレスを使いましょう。

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

Android:接続中のWi-Fiにプロキシを設定する

Androidでは、「設定」→「ネットワークとインターネット」→「インターネット」→接続中のWi-Fi→ネットワークを編集→「詳細オプション」→「プロキシ」→「手動」の順に進むのが一般的です。メーカー独自のシステムでは、「WLAN」→接続中のネットワーク詳細に設定項目がある場合もあります。プロキシのホスト名とポートを見つけたら、PCのIPアドレスと混合ポートをそれぞれ入力します。

  1. プロキシのホスト名に192.168.1.20を入力します。http://やパスは追加しないでください。
  2. プロキシポートに7890を入力します。ポート専用の入力欄がある場合、ホスト名にポート番号を含めないでください。
  3. 最初の動作確認では、除外リストは元の設定のままにし、すべてのドメインに適用されるルールを追加しないでください。
  4. 保存後、ブラウザーで接続をテストし、PC上のFlClashの接続ログも確認してリクエストが届いているかを確かめます。

iPhone・iPad:接続中のWi-Fiに設定する

「設定」→「Wi-Fi」→接続中のネットワークの右側にある情報ボタン→「プロキシを構成」→「手動」の順に進みます。サーバに192.168.1.20、ポートに7890を入力して保存します。接続先でプロキシ認証を設定している場合に限り、「認証」をオンにして対応するアカウントを入力してください。これはシステムのWi-Fiプロキシ設定のため、スマホでFlClashを起動する必要はありません。

この設定は現在のWi-Fiにのみ適用され、モバイルデータ通信や別のWi-Fiには適用されません。PCのあるネットワークを離れても、プロキシ設定済みのネットワークに接続したままPCへアクセスできない場合、プロキシ設定に従うアプリは通信できなくなることがあります。その場合は「プロキシを構成」を「オフ」に戻してください。

テレビ:システムまたはアプリのプロキシ対応を確認する

一部のAndroid TVでは、接続中のネットワークの詳細設定から手動プロキシを設定できます。入力方法はAndroidスマホと同じです。テレビによってはWi-Fiのプロキシ設定だけを変更でき、有線接続には設定項目がありません。また、プロキシ設定に対応していないシステムもあります。設定項目が見つからない場合、PCでLAN接続を許可しただけではテレビの通信をプロキシ経由にできません。

テレビのアプリに独自のネットワーク設定がある場合は、対応しているHTTPまたはSOCKS5を選び、同じ接続先を入力してください。ブラウザーでは接続できるのに動画アプリが使えない場合は、混合ポートを何度も変更する前に、そのアプリがシステムプロキシに従うか確認しましょう。端末全体の通信を対象にするには、端末側のプロキシ設定やゲートウェイ方式を別途検討してください。PCのTUNを有効にしても、テレビのゲートウェイが設定されるわけではありません。

5. 信頼できるネットワークに限り、ファイアウォールでプロキシ接続を許可する

Windowsで初めてネットワークアクセスの確認が表示された場合は、実際の利用環境に合わせて許可範囲を選びます。信頼できる家庭内ネットワークでは「プライベート」プロファイルを使用できますが、共有のためにホテルや公共のWi-Fiをプライベートに設定しないでください。動作確認のためにファイアウォール全体を無効にするのも避けましょう。

正常に待ち受けているのに他の端末からの接続がタイムアウトする場合は、管理者権限のPowerShellで接続元を制限したテスト用ルールを作成できます。以下のコマンドは、プライベートネットワークプロファイルでローカルサブネットからTCP 7890への接続のみを許可します。現在のネットワークの種類は自動で変更されません。

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

このルールは、この記事のHTTPプロキシの動作確認用です。さらに厳しく制限するには、LocalSubnetをスマホやテレビの固定IPアドレスに置き換え、プログラムのパスによる制限も追加してください。macOSでは「システム設定」→「ネットワーク」→「ファイアウォール」→「オプション」で、対象のアプリがブロックされていないか確認できます。管理ポリシーで制御されている端末では、管理者に問い合わせてください。

テスト後に手動で作成したルールが不要になった場合は、次のコマンドで削除できます。以前にほかのルールを作成している場合は、ファイアウォールで1つずつ確認し、まとめて削除しないでください。

Remove-NetFirewallRule -DisplayName "FlClash LAN TCP 7890"

6. 症状別のトラブル対処:まず接続先、その後ルールとDNSを確認

確認作業では、一度に変更する項目を1つにします。まずリクエストがPCに届くか確認し、次にルールによってどこへ転送されるかを調べます。スマホに「Wi-Fiに接続」と表示されても、無線接続が確立したことを示すだけで、プロキシポートや上流への接続が利用できるとは限りません。

症状まず確認する項目次の操作
どのページも読み込み中のままタイムアウトするPCのIPアドレス、待ち受けアドレス、ファイアウォール、AP隔離7890で待ち受けているか確認し、PCがスリープ状態でないことを確かめる
接続が拒否されたとすぐに表示されるポート番号の誤り、コアの停止、またはファイアウォールによる拒否現在の待ち受け状態を確認し、まずDNSを変更しない
ブラウザーは使えるが、特定のアプリだけ失敗するアプリがWi-Fiプロキシに従うか、UDPが必要かアプリ独自のプロキシ設定と接続ログを確認する
PCには接続ログがあるが、接続先にアクセスできない適用ルール、出口の選択、ドメインの名前解決、上流への接続該当する接続のドメイン、適用ルール、エラーメッセージを確認する
昨日は使えたのに、今日は使えないDHCPによるIPアドレスの変更、設定の上書き、PCのネットワーク種別の変更IPアドレス、混合ポート、ファイアウォールの適用範囲を確認し直す

別のPCからプロキシプロトコルを確認する

同じLAN内に別のPCがある場合は、次のコマンドでHTTPプロキシへのリクエストを実行できます。Windowsではcurl.exeを使うと、一部のPowerShell環境でコマンドのエイリアスが異なる問題を避けられます。macOSとLinuxでは通常curlを使います。テスト先は確認用のアドレスであり、すべてのネットワーク環境で到達できるとは限りません。

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

192.168.1.20:7890への接続時点で失敗する場合は、LAN側の接続先を引き続き確認してください。プロキシトンネルが確立した後に接続先へのアクセスが失敗する場合は、出口側の接続とDNSを確認します。プロキシ認証で407が返る場合は、接続先のユーザー名とパスワードを確認してください。サブスクリプションを再読み込みする必要はありません。

ルールモードでは、共有端末の通信にもPCのルール設定が適用される

ルールモードでは、スマホから混合ポートに送られたリクエストも、クライアントの現在のルールに照合された後、対応する出口へ送られます。LAN接続を許可しても、すべてのリクエストが自動的にプロキシ経由になるわけではありません。ドメインにDIRECTが適用される場合は、共有の失敗と判断する前にルールの順序とポリシーグループを確認してください。

Wi-FiのHTTPプロキシを設定しても、スマホのDNSリクエストすべてがPCに転送されるわけではありません。プロキシ経由で送信されたドメイン名の解決とルーティングは、後続のmihomo設定によって決まります。プロキシを経由しないアプリは、引き続き端末自身の名前解決経路を使う場合があります。そのため、名前解決の問題を調べる前に、対象のリクエストが実際にクライアントへ届いているか確認してください。

7. 使用後に設定を元に戻す

  • スマホやテレビで共有プロキシを使わなくなったら、現在のネットワークのプロキシを「なし」または「オフ」に戻します。PCがオフラインになった後も、端末が接続に失敗し続けるのを防げます。
  • PCからの共有を終了する場合は、LAN接続の許可をオフにし、プロキシ接続先がPCからのみアクセスできる状態に戻ったことを確認してください。
  • 一時的に作成したファイアウォールルールを削除します。ルールを継続して使う場合は、ネットワークプロファイル、接続元アドレス、必要なポートに範囲を限定してください。
  • 再度有効にする前に、PCのIPアドレス、混合ポート、サブスクリプション設定、ルールモードの順に確認してください。変更済みのアドレスをそのまま使わないようにしましょう。

一連の接続確認では、端末がPCのLAN側IPアドレスと混合ポートに接続し、ファイアウォールがその通信を許可し、リクエストを受け取ったFlClashがルールに従って出口を選択する必要があります。この順番で確認すれば、「接続先に届かない」「アプリがプロキシを使わない」「上流への接続に失敗する」を切り分けて対処できます。

Clashをダウンロードプラットフォームとインストーラーを選択