v2rayNのLAN接続を許可する方法|スマホ・テレビ・別のPCでプロキシを共有

v2rayNでLAN接続を許可し、別の端末にホストのIPアドレスとポートを設定する方法を解説。ファイアウォール設定や接続できないときの確認ポイントも紹介します。

この記事の概要

PCでv2rayNを使えていて、同じルーターにつながったスマホ、テレビ、別のPCでも接続を共有したい方向けです。待ち受けアドレス、ホストのIPアドレス、受信ポート、ファイアウォール、端末側のプロキシ設定を順に確認します。まず1台でHTTPプロキシをテストし、対象アプリがシステムプロキシに対応しているかを調べれば、LAN接続の問題とノードの問題を切り分けられます。

プロキシ共有の仕組みと利用条件

LANでの共有は、サブスクリプションを別の端末にコピーするのではなく、PC上のプロキシ受信ポートに端末を接続する方法です。v2rayNが管理するコアがリクエストを受け取り、PCのルーティングルールに従って直接接続またはプロキシ経由で通信します。接続先サーバーへの通信は引き続きPCが行うため、スマホやテレビでは通常、ホストのアドレスとポートを設定するだけで済み、VMessやVLESSなどのノード情報は必要ありません。

端末のアプリ LANの受信ポート コアのルーティング 直接接続またはプロキシ 接続先サービス

「LANからの接続を許可」を有効にしても、受信ポートの待ち受け範囲が変わるだけです。他の端末のネットワーク設定が自動で変更されたり、端末の全通信がPC経由になったりするわけではありません。AndroidのWi-Fi手動プロキシは、通常、システムのHTTPプロキシ設定に従うアプリで使えます。ゲーム、独自のネットワーク処理を行うアプリ、一部のテレビ向けアプリでは、この設定が使われない場合があります。

手順1:ホストのIPv4アドレスと実際の受信ポートを確認する

ここではWindows PCを例に、IPアドレスを192.168.1.20、ポートを10808とします。入力方法を説明するための例であり、すべてのPCで同じ設定が使われているわけではありません。まずホスト上で現在のノードから目的のWebサイトにアクセスできることを確認し、ターミナルで次のコマンドを実行します。

ipconfig

通信中の「Wireless LAN adapter」または「Ethernet adapter」を見つけ、IPv4アドレスとデフォルトゲートウェイを確認します。仮想アダプター、切断中のアダプター、ループバックアドレスは選ばないでください。端末にはPCのLAN内IPv4アドレスを入力します。ルーターのゲートウェイ、ノードサーバーのアドレス、127.0.0.1ではありません。最後のアドレスは、スマホではスマホ自身を指します。

10808
この記事で使う受信ポートの例。実際の設定を確認してください
127.0.0.1
ローカルホスト専用。他の端末からは接続できません
192.168.1.20
この記事で使うホストのIPv4アドレスの例。実際の値に置き換えてください
  1. v2rayNの「設定」→「パラメーター設定」を開き、ローカルの待ち受けポートと「LANからの接続を許可」を確認します。画面のバージョンによって項目の分類名が異なる場合があるため、実際の表示に従ってください。
  2. HTTPに対応する受信ポートを確認します。混合ポートと表示されている場合は、通常、HTTPとSOCKSの両方を受け付けます。別々に表示されている場合は、それぞれ記録し、混同しないようにしてください。
  3. LAN接続のオプションを有効にして保存します。画面の案内に従ってコアを再起動してください。設定が反映されたか不明な場合は、v2rayNを終了して再起動します。
  4. 有効なサーバーとルーティングルールを再確認します。ホスト側のシステムプロキシを有効にする必要はありませんが、コアの受信ポートは動作している必要があります。

手順2:待ち受け範囲を確認し、ファイアウォールの許可範囲を絞る

まずサービスが実際に待ち受けているか確認してから、ファイアウォールを設定します。例のポートを使い、PowerShellで次のコマンドを実行してください。何も表示されない場合は、コアが起動していない、ポートが一致していない、または起動時にポートが競合した可能性があります。

Get-NetTCPConnection -State Listen -LocalPort 10808 |
  Select-Object LocalAddress, LocalPort, OwningProcess
待ち受け結果意味次の確認項目
127.0.0.1ローカルのIPv4接続のみ受け付けるLAN接続の設定が保存されているか確認し、コアを再起動する
0.0.0.0すべてのローカルIPv4インターフェースで待ち受けるファイアウォールを確認し、信頼できる接続元に限定する
192.168.1.20指定したLANインターフェースにバインドするそのアドレスが現在通信中のネットワークアダプターに割り当てられているか確認する
::IPv6のワイルドカードアドレスで待ち受けるIPv4でも接続できるか別途テストし、この結果だけで判断しない

信頼できる家庭内または職場のネットワークでのみ共有してください。Windowsでは「設定」→「ネットワークとインターネット」→現在の接続のプロパティからネットワークプロファイルを確認できます。共有のために、公共のWi-Fiを安易にプライベートネットワークへ変更しないでください。以下のルールは管理者権限のPowerShellで実行し、プライベートネットワーク上のローカルサブネットからのTCP 10808だけを許可します。

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

このルールはポート単位の許可であり、特定のプログラムに限定するものではありません。複数のネットワークアダプターがあるPCでは、LocalSubnetが複数の直結サブネットを対象にする場合があります。さらに制限するには、接続元を特定の端末の固定アドレス、または確認済みのネットワーク(例:192.168.1.0/24)に変更してください。範囲の広い既存の許可ルールも確認が必要です。範囲を絞ったルールを追加しても、古いルールの範囲は自動で狭まりません。

確認の順序:待ち受けを確認してから、必要最小限の範囲で許可する

待ち受けが127.0.0.1のままでは、ファイアウォールルールを追加しても解決しません。待ち受け設定を確認してから、実際に使うTCPポートを許可し、プライベートネットワークと接続元の制限を維持してください。ファイアウォール全体を無効にする必要はありません。

手順3:スマホ・テレビ・別のPCにプロキシを設定する

端末とホストが相互に通信できる必要があります。同じWi-Fi名に接続していても十分とは限らず、ゲストネットワークや無線クライアント間の通信制限によって接続できない場合があります。以下の2つの設定例では同じホストを使います。プロトコルは受信ポートの種類に合わせてください。

Wi-Fiの手動HTTPプロキシ

ホスト名
192.168.1.20
ポート
10808
プロトコル
HTTP(HTTPまたは混合の受信ポートが必要)
認証
ホスト側の実際の設定に合わせる

ホスト名欄にはIPアドレスだけを入力します。プロトコル名、スラッシュ、ポート番号は付けません。

SOCKS5対応のデスクトップアプリ

サーバー
192.168.1.20
ポート
10808
種類
SOCKS5(SOCKSまたは混合の受信ポートが必要)
ドメインの名前解決
対応している場合は、プロキシ経由で名前解決する設定を選ぶ

SOCKSに別のポートが設定されている場合は、そのポートを入力してください。HTTPの設定をそのまま使うことはできません。

  1. Androidスマートフォン:「設定」→「Wi-Fi」または「ネットワークとインターネット」→接続中のWi-Fiの編集画面を開きます。詳細設定を表示し、プロキシを「手動」に変更してホスト名とポートを入力し、保存してください。項目名や操作手順はOSによって多少異なります。
  2. テレビ:現在のネットワークの詳細設定にHTTPプロキシの項目があるか確認します。機種によってはネットワーク設定を編集すると表示されます。設定項目がない場合は、対象アプリに個別のプロキシ設定があるか確認してください。
  3. 別のWindows PC:「設定」→「ネットワークとインターネット」→「プロキシ」→「手動プロキシ セットアップ」を開き、アドレスとポートを入力します。テスト時は例外リストも確認し、対象のドメインが除外されていないか確認してください。
  4. アプリごとの設定:プロキシを個別に設定できるブラウザーやダウンロードツールでは、アプリ内でHTTPまたはSOCKS5を選択します。アプリ独自のプロキシ設定がシステム設定より優先される場合があります。

保存したら、まずブラウザーでテストしてください。ゲームや動画アプリだけで接続可否を判断しないようにしましょう。Wi-Fiのプロキシ設定は通常、そのWi-Fi接続にのみ適用されるため、別のネットワークに切り替えたら再確認が必要です。スマホでv2rayNGまたはv2flyNGも動作している場合は、いったん停止して基本テストを行うと、複数のネットワーク処理による影響を避けられます。

手順4:2種類のテストでホスト側と端末側を切り分ける

最初のテストは別のWindows PCで実行し、TCPポートに到達できるかを確認します。pingだけで判断しないでください。ICMP応答を拒否する端末でも、TCPプロキシポートは正常に使える場合があります。

Test-NetConnection 192.168.1.20 -Port 10808

結果のTcpTestSucceeded : Trueは、TCP接続が確立できたことを示すだけで、プロキシプロトコルや接続先への通信が正常とは限りません。次に、システムプロキシ設定の影響を避けるため、HTTPプロキシを明示してHTTPSサイトへアクセスします。

curl.exe -I --connect-timeout 10 --max-time 20 --proxy http://192.168.1.20:10808 https://example.com/

SOCKS5をテストする場合は、ポートがこのプロトコルに対応していることを確認してから、以下のコマンドを使います。socks5hでは接続先のドメイン名をプロキシ側で解決するため、ローカルDNSとプロキシ側の名前解決を切り分けるのに役立ちます。ドメイン名が最終的にどのように処理されるかは、コアのDNS設定とルーティング設定にも左右されます。

curl.exe -I --connect-timeout 10 --max-time 20 --proxy socks5h://192.168.1.20:10808 https://example.com/

よくある質問:Webページは開けるのに、他のアプリがプロキシを使わないのはなぜ?

スマホのブラウザーでは開けるのに、テレビのアプリは接続できないのはなぜ?

まずテレビのブラウザーで同じアドレスを開いてください。ブラウザーで接続できる場合、対象アプリがシステムのHTTPプロキシを使わないか、別途UDP通信を行っている可能性があります。アプリに個別のプロキシ設定があるか確認してください。LAN接続を許可しただけでは、このような通信を強制的にプロキシ経由にできません。

昨日は接続できたのに、今日は以前のIPアドレスで接続できないのはなぜ?

ホストでipconfigを再実行し、IPv4アドレスが変わっていないか確認します。ルーターのDHCP設定で、ホストの現在のネットワークアダプターにIPアドレスを予約できます。ランダムなハードウェアアドレスを使用している場合は、予約に使ったアダプターのアドレスが変わらないことも確認してください。アドレスを変更したら、端末側の設定も更新します。

PCでは正常なのに、スマホで接続タイムアウトが続くのはなぜ?

まずスマホがゲストWi-Fiに接続していないか、ホストがスリープしていないか確認し、別のPCからTCP 10808をテストします。待ち受けが127.0.0.1のみの場合は、パラメーター設定でLAN接続を有効にしてコアを再起動してください。待ち受けが正しければ、ファイアウォールと無線の端末間通信制限を確認します。

共有したプロキシ経由で、すべての端末の通信を統一できますか?

既存のルーティング設定を開き、対象の通信が直接接続ルールに一致していないか確認します。比較のために一時的に全般プロキシモードを使うことはできますが、その対象はプロキシコアに届いたリクエストだけです。プロキシを使っていないアプリの通信が自動で切り替わるわけではありません。テスト後は通常のルーティングルールに戻してください。

共有を終了する:端末の設定を戻し、アクセス範囲を閉じる

LANのプロキシポートを開くと、ネットワークからアクセス可能なサービスが新たに追加されます。共有中は、他の端末の通信にホストの外向き接続と帯域が使われ、同じサービスの通信量に計上される場合もあります。受信認証がない場合、同じネットワーク上で到達可能な他の端末もこのポートを使える可能性があるため、信頼できないネットワークで長期間公開しないでください。

この記事の例で作成したルールは、以下のコマンドで削除できます。今回作成した、指定の名前に一致するルールだけを削除してください。システムにある既存のルールをまとめて削除しないでください。

Remove-NetFirewallRule -DisplayName "v2rayN LAN TCP 10808"
クライアントのダウンロードプラットフォームに合ったインストーラーを選択