PCでv2rayNを使えていて、同じルーターにつながったスマホ、テレビ、別のPCでも接続を共有したい方向けです。待ち受けアドレス、ホストのIPアドレス、受信ポート、ファイアウォール、端末側のプロキシ設定を順に確認します。まず1台でHTTPプロキシをテストし、対象アプリがシステムプロキシに対応しているかを調べれば、LAN接続の問題とノードの問題を切り分けられます。
プロキシ共有の仕組みと利用条件
LANでの共有は、サブスクリプションを別の端末にコピーするのではなく、PC上のプロキシ受信ポートに端末を接続する方法です。v2rayNが管理するコアがリクエストを受け取り、PCのルーティングルールに従って直接接続またはプロキシ経由で通信します。接続先サーバーへの通信は引き続きPCが行うため、スマホやテレビでは通常、ホストのアドレスとポートを設定するだけで済み、VMessやVLESSなどのノード情報は必要ありません。
「LANからの接続を許可」を有効にしても、受信ポートの待ち受け範囲が変わるだけです。他の端末のネットワーク設定が自動で変更されたり、端末の全通信がPC経由になったりするわけではありません。AndroidのWi-Fi手動プロキシは、通常、システムのHTTPプロキシ設定に従うアプリで使えます。ゲーム、独自のネットワーク処理を行うアプリ、一部のテレビ向けアプリでは、この設定が使われない場合があります。
- 利用に向いているもの:ブラウザー、HTTPまたはSOCKS5を設定できるデスクトップアプリ、Wi-Fiのプロキシ設定に対応したアプリ。
- 個別の確認が必要なもの:動画アプリ、ゲーム、UDP通信、アプリ内部のドメイン名前解決。
- 共有を続ける条件:PCの電源が入り、ネットワークに接続され、v2rayNのコアが正常に動作していること。スリープ中は共有接続が切断されます。
手順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ではありません。最後のアドレスは、スマホではスマホ自身を指します。
- v2rayNの「設定」→「パラメーター設定」を開き、ローカルの待ち受けポートと「LANからの接続を許可」を確認します。画面のバージョンによって項目の分類名が異なる場合があるため、実際の表示に従ってください。
- HTTPに対応する受信ポートを確認します。混合ポートと表示されている場合は、通常、HTTPとSOCKSの両方を受け付けます。別々に表示されている場合は、それぞれ記録し、混同しないようにしてください。
- LAN接続のオプションを有効にして保存します。画面の案内に従ってコアを再起動してください。設定が反映されたか不明な場合は、v2rayNを終了して再起動します。
- 有効なサーバーとルーティングルールを再確認します。ホスト側のシステムプロキシを有効にする必要はありませんが、コアの受信ポートは動作している必要があります。
手順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の設定をそのまま使うことはできません。
- Androidスマートフォン:「設定」→「Wi-Fi」または「ネットワークとインターネット」→接続中のWi-Fiの編集画面を開きます。詳細設定を表示し、プロキシを「手動」に変更してホスト名とポートを入力し、保存してください。項目名や操作手順はOSによって多少異なります。
- テレビ:現在のネットワークの詳細設定にHTTPプロキシの項目があるか確認します。機種によってはネットワーク設定を編集すると表示されます。設定項目がない場合は、対象アプリに個別のプロキシ設定があるか確認してください。
- 別のWindows PC:「設定」→「ネットワークとインターネット」→「プロキシ」→「手動プロキシ セットアップ」を開き、アドレスとポートを入力します。テスト時は例外リストも確認し、対象のドメインが除外されていないか確認してください。
- アプリごとの設定:プロキシを個別に設定できるブラウザーやダウンロードツールでは、アプリ内で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/
- TCPテストに失敗する:ホストのIPアドレス、コアの待ち受け、Windowsファイアウォール、サードパーティ製セキュリティソフト、ルーターのクライアント間通信制限を確認してください。接続拒否と表示された場合は、まず待ち受けポートを確認します。
- TCP接続は成功するがHTTPテストに失敗する:ポートがHTTPに対応しているか、認証が必要か確認してください。v2rayNのログでハンドシェイクや接続先への通信に関するエラーも確認します。
- コマンドでは接続先の応答があるのにアプリは失敗する:アプリがシステムプロキシを使うか、プロキシの例外設定があるか、UDP通信が必要かを確認してください。
- トンネル確立のメッセージが表示される:続いてTLS接続と接続先の応答を確認してください。トンネル確立の1行だけで、アクセス全体が成功したとは判断できません。
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のプロキシポートを開くと、ネットワークからアクセス可能なサービスが新たに追加されます。共有中は、他の端末の通信にホストの外向き接続と帯域が使われ、同じサービスの通信量に計上される場合もあります。受信認証がない場合、同じネットワーク上で到達可能な他の端末もこのポートを使える可能性があるため、信頼できないネットワークで長期間公開しないでください。
- インターネット向けにポート転送しない:家庭内での共有に、ルーターで10808をインターネットへ転送したり、PCをDMZホストに設定したりする必要はありません。
- 共有が不要になったら:「LANからの接続を許可」を無効にし、コアを再起動して、待ち受けがローカルの範囲に戻ったことを確認します。
- 端末の設定を戻す:スマホ、テレビ、別のPCの手動プロキシを「なし」または元の設定に戻します。ホストの電源を切ったあとも、端末が使えないプロキシに接続しようとするのを防げます。
- ファイアウォール設定を整理する:今回の共有用に作成したルールを削除します。他のセキュリティソフトの設定を変更した場合は、そちらも元に戻してください。
この記事の例で作成したルールは、以下のコマンドで削除できます。今回作成した、指定の名前に一致するルールだけを削除してください。システムにある既存のルールをまとめて削除しないでください。
Remove-NetFirewallRule -DisplayName "v2rayN LAN TCP 10808"