この記事の要点

PC上のv2rayNで正常に通信できるようになったら、同じ信頼できるLAN内のスマホやテレビにローカルHTTPプロキシを共有できます。設定の要点は、PCのLANアドレス、実際の待ち受けポート、LAN接続の許可、ファイアウォールで許可する接続元の4つです。この記事では、入力方法と確認手順を192.168.1.20と10808の例で説明します。これらは設定例であり、お使いの機器のアドレスや標準ポートを示すものではありません。

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

スマホやテレビにPCのプロキシを設定すると、プロキシ設定に対応したアプリはまずPCに接続し、v2rayNが管理するコアがルーティング規則に従って直接接続またはプロキシ経由で通信します。接続先ノードのVMessやVLESSの設定を入力したり、PCのサブスクリプションをコピーしたりする必要はありません。PCは起動したままネットワークに接続し、コアを正常に動作させておく必要があります。

端末のアプリ PCのプロキシ接続先 コアのルーティング規則 直接接続またはプロキシ 接続先サービス

3つの設定を区別しましょう。PCの「システムプロキシ」は、OSのプロキシ設定を使うアプリに影響します。「LANからの接続を許可」は、ほかの端末からプロキシの待ち受け先に接続できるようにする設定です。TUNモードは別の通信制御方式です。HTTPプロキシを共有するだけなら通常TUNモードは不要で、PCのシステムプロキシを有効にするだけでも共有できません。

2. PCのアドレスとHTTP待ち受けポートを確認する

まずPCで利用可能なノードを選び、ブラウザーからプロキシ経由で目的のWebページを開けることを確認します。次に、現在使用している有線または無線LANアダプターのアドレスを調べます。Windowsではターミナルでipconfigを実行します。Linuxでは以下のコマンドを実行し、ルーターに接続しているネットワークアダプターを確認してください。ループバック、コンテナー、仮想ネットワークのアドレスではありません。

ip -4 address show
ip route

PCのアドレスが192.168.1.20、スマホが192.168.1.35で、どちらも同じルーターに接続しているとします。それでも、ルーターでゲストネットワーク分離や無線クライアント分離が有効になっていないか確認してください。同じWi-Fi名でも、端末同士が通信できるとは限りません。グローバルIPアドレス、デフォルトゲートウェイのアドレス、127.0.0.1をプロキシのホストとして指定しないでください。

PC側の設定例

LANアドレス
192.168.1.20
プロキシ待ち受けポート
10808
接続方式
HTTPまたはHTTP対応の混合ポート
ファイアウォールで許可する接続元
192.168.1.0/24

ポートとネットワーク範囲は実際の設定を確認してください。例の値をそのまま確認結果として扱わないでください。

スマホ・テレビ側の入力例

プロキシ方式
手動
プロキシのホスト名
192.168.1.20
プロキシポート
10808
アドレスの形式
IPアドレスのみ入力し、プロトコルの接頭辞は付けない

ホスト名欄にはhttp://を入力せず、ポート欄にもコロンやアドレス全体を入力しないでください。

v2rayNの「設定」→「パラメータ設定」で、ローカルの待ち受けポートと受け入れるプロトコルを確認します。バージョンによって、HTTPとSOCKSのポートが別々に表示される場合と、混合ポートとして表示される場合があります。「LAN」用のポートが別にある場合は、その接続先に対応するHTTPポートを端末に入力してください。この記事では、特定のバージョンの標準値を前提としていません。

3. LAN接続を許可し、実際の待ち受け状態を確認する

  1. v2rayNの「設定」→「パラメータ設定」を開き、「LANからの接続を許可」または同じ意味のLAN接続オプションを探します。
  2. 該当項目を有効にし、HTTPまたは混合ポートの番号を確認して設定を保存します。項目名や設定グループはバージョンによって異なる場合があります。
  3. クライアントがコアを再読み込みするまで待ちます。設定がすぐに反映されない場合は、クライアントのコア再起動機能を使うか、いったん終了してから起動し直してください。
  4. ログに「アドレスはすでに使用されています」「バインドに失敗しました」などのエラーがないことを確認し、OS上の待ち受け状態も調べます。

Linuxでは、例として以下のコマンドでポートを確認します。ssの出力が127.0.0.1:10808なら、PC内からのIPv4接続のみ受け付けます。0.0.0.0:10808は、ローカルのすべてのIPv4インターフェースで待ち受ける設定です。192.168.1.20:10808なら、そのネットワークアダプターのアドレスにバインドされています。IPv6のワイルドカードアドレスで待ち受けている場合も、IPv4で実際に接続を試してください。表示が1行あるだけで、IPv4とIPv6の両方から接続できるとは判断できません。

ss -lntp 'sport = :10808'

WindowsではPowerShellから、待ち受けアドレスとプロセスを確認できます。ポート番号が10808以外の場合は、コマンド内の数字を変更してください。待ち受けているプロセスは、v2rayNの画面ではなく、v2rayNが起動したコアの場合があります。

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

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

まずネットワークが信頼できることを確認し、Windowsで現在の家庭内ネットワークを「プライベートネットワーク」に設定します。プロキシ共有のために、公共のWi-Fiをプライベートネットワークに設定しないでください。「Windows セキュリティ」→「ファイアウォールとネットワーク保護」→「詳細設定」で受信規則を作成し、TCPと実際のプロキシポートを選択して、スコープでリモートIPアドレスを制限します。HTTPプロキシの接続許可には通常TCPだけで十分です。同じポートのUDPまで開放する必要はありません。

規則の項目この例の設定確認するポイント
方向と動作受信、接続を許可ファイアウォール全体を無効にしない
プロトコルとローカルポートTCP,10808実際のHTTP接続先に合わせる
リモートアドレス192.168.1.0/24実際に信頼できるネットワーク範囲に変更
プロファイルプライベートパブリックネットワークではこの規則を有効にしない

管理者権限のPowerShellからも、同じ範囲の規則を作成できます。PCのポートとネットワーク範囲が例と一致する場合に限り、そのまま実行してください。スマホ1台だけを許可する場合は、リモートアドレスをそのスマホの固定LANアドレスに絞ることもできます。

New-NetFirewallRule -DisplayName "v2rayN LAN HTTP 10808" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 10808 -RemoteAddress 192.168.1.0/24 -Profile Private

LinuxでUFWを使用している場合は、接続元を制限した規則を追加できます。複数のファイアウォール管理ツールのコマンドを併用しないでください。まず、ディストリビューションでUFW、firewalld、または別のツールのどれが使われているか確認してください。以下はUFWを使用している場合のみ対象です。

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

確認のポイント:待ち受けを確認してから原因を絞り込む

PCがLANアドレスで待ち受けているのに、別の端末からTCPポートへ接続できない場合は、まずファイアウォールやルーターの端末間分離を確認してください。この接続段階ではノードからの外向き通信はまだ関係しないため、サブスクリプションのノードを何度も変更する必要はありません。

5. スマホやテレビにPCのプロキシアドレスを設定する

Androidスマホ:モバイル通信ではなく、接続中のWi-Fiを変更する

  1. 「設定」→「WLAN」または「Wi-Fi」を開き、接続中のネットワークの詳細画面または編集画面を表示します。
  2. 「詳細設定」を開き、「プロキシ」を「なし」から「手動」に変更します。設定画面の名称や場所はメーカーによって異なる場合があります。
  3. プロキシのホスト名に192.168.1.20、ポートに10808を入力して保存し、ブラウザーで目的のWebページにアクセスします。
  4. テスト中はプロキシのバイパスリストを設定せず、目的のドメインが誤って除外されないようにします。接続を確認した後、必要に応じてLAN内のアドレスを追加してください。

Wi-Fiアイコンだけで接続成功と判断しないでください。OSの接続確認は同じプロキシ経路を使わない場合があり、接続に関する警告が表示されてもブラウザーでは正常にアクセスできることがあります。通常のWebページ、目的のWebページ、実際に使うアプリをそれぞれ確認してください。ブラウザーでは使えるのに特定のアプリが失敗する場合は、そのアプリがシステムHTTPプロキシに対応しているか確認します。

テレビ:まずシステムにプロキシ設定があるか確認する

Android TVの一部では、「設定」→「ネットワークとインターネット」→「接続中のネットワーク」→「詳細設定」からプロキシを設定できます。機種によっては、ネットワークの編集または再接続が必要です。ホスト名とポートの入力方法はスマホと同じです。有線ネットワークの設定がWi-Fiと別になっている場合もあるため、接続方式を切り替えた後は設定を確認し直してください。

6. 2段階で確認:ポートへの接続後にプロキシ経由の通信を確認する

原因を切り分けるには、プロキシを動かしているPC自体ではなく、同じLAN内にある別の端末でテストするのが効果的です。コマンドラインを使える別のPCから、まずTCP接続を確認し、次にcurlでHTTPプロキシを明示してリクエストします。以下のアドレスとポートも、この記事で使用している例です。

Test-NetConnection 192.168.1.20 -Port 10808
curl.exe -I --connect-timeout 5 --max-time 15 --proxy http://192.168.1.20:10808 https://example.com/

最初のコマンドはWindows PowerShell用です。Linuxでは2つ目のcurl.exeをcurlに置き換えて実行できます。2つ目はプロキシを明示的に指定するため、ブラウザーやシステムのプロキシ設定に依存しません。接続タイムアウト5秒、全体のタイムアウト15秒はテスト用の設定値であり、ネットワーク性能の測定結果ではありません。

テスト結果考えられる原因次に確認すること
TCP接続テストに失敗プロキシの接続先に到達できないIPアドレス、待ち受け、ファイアウォール、端末間分離を確認
TCP接続は成功するが、プロキシ経由のリクエストに失敗ポートには接続できるが、プロトコルまたは外向き通信に問題があるHTTPポートを確認し、コアのログを確認
407が返るプロキシで認証が必要受け入れ側の認証設定を確認
curlは成功するが、テレビのアプリは失敗アプリがシステムプロキシを使っていない可能性があるアプリに個別のプロキシ設定があるか確認

接続先サイトからHTTPレスポンスが返れば、そのプロキシリクエストは通常成功しています。ただし、すべての通信がリモートノード経由になっていることを示すものではありません。ルーティング規則により、テストしたドメインが直接接続に振り分けられる場合があります。対象の通信がどの経路を通ったか確認するには、コアのアクセスログで対象ドメインとアウトバウンドのタグを確認します。ログの形式は、使用中のコアとログレベルによって異なります。

7. プロキシ共有でよくある質問と解除方法

PCでは使えるのにスマホがタイムアウトする場合、まず何を確認すればよいですか?

まず、スマホに入力したアドレスが127.0.0.1ではなく、PCの現在のLAN内IPアドレスであることを確認してください。次に、プロキシがループバックアドレスだけで待ち受けていないか、スマホがゲストWi-Fiに接続していないかを確認します。「アドレス、待ち受け、接続元の規則、端末間分離」の順に確認し、最初にノードのプロトコルを変更しないでください。

ルーターを再起動したら接続できなくなりました。ポートは変えていません。

PCに割り当てられたDHCPアドレスが変わった可能性があります。ネットワークアダプターのアドレスを確認し、端末側のプロキシホスト名を更新してください。長期間共有する場合は、ルーターでPCのDHCPアドレスを予約できます。ファイアウォールで特定のスマホだけを許可している場合は、スマホのアドレスが変わる可能性も考慮してください。

スマホでもv2rayNGを同時に起動する必要はありますか?

Wi-FiのHTTPプロキシでPCの接続先を共有する場合、スマホで別のプロキシ接続を起動する必要はありません。PCを介さず単独で接続したい場合は、まずWi-Fiのプロキシを「なし」に戻してから、v2rayNGまたはv2flyNGを設定してください。2つの接続経路が干渉するのを防げます。

PC自身の通信に影響を与えず、共有を完全に停止するにはどうすればよいですか?

まずスマホとテレビのプロキシを「なし」に戻し、次にv2rayNのLAN接続オプションを無効にしてコアを再読み込みします。共有用に追加した受信許可規則を削除または無効にし、待ち受けがPC内のアドレスに戻ったことを確認してください。PC自身のシステムプロキシは、必要に応じてそのまま使えます。

端末単独で長期間接続する場合は、端末に対応クライアントを直接設定するほうが管理しやすいことがあります。Android版v2rayNGはXrayコアを、v2flyNGはv2flyコアを使用します。プロトコルや設定が使えるかどうかは、各クライアントとコアの対応状況を確認してください。LAN共有は、PCが安定して動作し、端末のアプリがHTTPプロキシに対応している場合に適しています。すべての通信に有効な透過型ゲートウェイとして使うものではありません。