Windows PCでv2rayNを実行し、Androidスマートフォンやテレビを家庭内ネットワークに接続する場合を例に、PCのIPアドレス、プロキシの待ち受け、ファイアウォール、端末側の設定を順に確認します。HTTPポートとSOCKSポートの違いを押さえ、「PCでは使えるのにスマホでは使えない」原因を段階的に切り分けます。IPアドレスとポート番号は設定例です。実際の設定ではPCに表示された値を使ってください。
1. LANでプロキシを共有する仕組み
「LANからの接続を許可」すると、プロキシの接続先としてアクセスできる範囲が広がります。これまでPCだけが使っていた接続先を、同じLAN上のほかの端末からも利用できるようになります。スマートフォンやテレビからのプロキシ対応通信をPCに送り、v2rayNで実行中のコアがルーティングルールに従って直接接続するか、プロキシ経由で接続するかを選びます。
これはPCをルーターにすることでも、PCのネットワーク通信をすべて共有することでもありません。AndroidのWi-Fi設定で使う手動プロキシは通常HTTPプロキシです。ブラウザーなどシステムプロキシに従うアプリでは利用できますが、一部の動画アプリやゲーム、独自に接続を確立するアプリでは無視されることがあります。また、HTTPプロキシですべてのUDP通信が自動的に中継されるわけではありません。
- まずPCでv2rayNを使って接続先サービスに正常にアクセスできることを確認してから、LAN共有を設定してください。
- PCとスマートフォンは相互に通信できる家庭内ネットワークに接続してください。同じ名前のWi-Fiに接続していても、端末間の通信が許可されているとは限りません。
- PCは電源を入れ、ネットワークに接続した状態でコアを実行し続ける必要があります。スリープすると、ほかの端末からのプロキシ接続も切断されます。
- 共有用の接続先を開くためにTUNを有効にする必要はありません。「システムプロキシを設定」は主にPC自身に影響する設定で、LANからの接続を待ち受ける代わりにはなりません。
2. PCのIPアドレスとHTTPプロキシのポートを確認する
Windowsターミナルでipconfigを実行し、実際にネットワークへ接続している「ワイヤレス LAN アダプター WLAN」またはイーサネットアダプターを確認して、IPv4アドレスとサブネットマスクを控えます。仮想ネットワークアダプターや未接続のアダプターは選ばないでください。また、デフォルトゲートウェイをプロキシサーバーのアドレスとして入力しないよう注意してください。
ipconfig
記入例:
IPv4アドレス 192.168.1.23
サブネットマスク 255.255.255.0
デフォルトゲートウェイ 192.168.1.1
この例でスマートフォンに入力するサーバーアドレスは192.168.1.23です。ルーターのアドレス192.168.1.1でも、127.0.0.1でもありません。後者は常にその端末自身を指すため、スマートフォンに入力するとスマートフォン自身への接続を試みます。
バージョンやコアの設定によって、HTTP専用、SOCKS専用、またはHTTPとSOCKSの混合接続先が用意されている場合があります。上記のポート番号を固定の初期値と考えないでください。「設定」→「パラメーター設定」を開いてローカル待ち受けの項目を確認し、実行ログでもHTTPまたは混合接続先のポートを確認します。AndroidのWi-Fi設定の「プロキシのポート」には、HTTPプロキシに対応したポートを入力してください。SOCKS専用ポートは使えません。
接続先のプロトコルを確認してからポートを入力
PCの接続先がHTTPに対応していることを確認してから、スマートフォンを設定してください。実際に使える接続先が混合タイプの場合は、表示されているポートを使い、後述のコマンドにある10809も同じポート番号に置き換えてください。
3. LAN接続を許可し、待ち受け状態を確認する
- v2rayNで、動作を確認済みの設定を選び、コアが正常に実行されていることを確認します。
- 「設定」→「パラメーター設定」を開き、「LANからの接続を許可」のスイッチを探します。画面によって項目の場所は異なる場合があるため、実際の設定画面を確認してください。
- この項目を有効にして保存し、画面の案内に従ってコアを再起動します。待ち受けアドレスを個別に設定できる場合は、ループバックアドレスだけでなくLAN上のアドレスからも接続できるようにしてください。
- PowerShellで対象ポートを確認し、変更が実行中のプロセスに反映されたか調べます。
Get-NetTCPConnection -State Listen -LocalPort 10809 |
Select-Object LocalAddress, LocalPort, OwningProcess
待ち受けアドレスが127.0.0.1だけの場合、ほかの端末からIPv4のLAN経由で接続することはできません。0.0.0.0は通常、PCのすべてのIPv4アドレスで待ち受けることを示します。192.168.1.23は特定のネットワークアダプターのアドレスで待ち受けることを示します。::だけが表示されていても、IPv4で接続できるとは限りません。別の端末から実際に接続して確認してください。
コマンドの実行結果が表示されない場合は、まずv2rayNのログでポートの競合や起動失敗を確認し、次に接続先のポート番号を確認してください。PC側で待ち受けサービスが起動していない状態で、スマートフォンの設定を何度も変えても問題は解決しません。
4. Windowsファイアウォールで許可する範囲を限定する
待ち受けが正常なのにスマートフォンが接続タイムアウトになる場合は、次にファイアウォールを確認します。信頼できる家庭内ネットワークでは「プライベート」ネットワークプロファイルを使用できます。ホテルや公衆Wi-Fiなどでは、プロキシ共有のために「プライベート」へ変更しないでください。Windowsの「設定」→「ネットワークとインターネット」から、接続中のネットワークのプロパティを開き、ネットワークプロファイルの種類を確認できます。
次のコマンドは、管理者権限で開いたPowerShellで実行してください。この記事の例で使うTCPポートを対象に、プライベートネットワークプロファイルでローカルサブネットからのアクセスだけを許可します。すでに広い範囲を許可するアプリのルールがある場合は、そのルールも確認してください。許可範囲の狭いルールを追加しても、既存の広いルールは自動的に制限されません。
New-NetFirewallRule `
-DisplayName "v2rayN LAN HTTP 10809" `
-Direction Inbound `
-Action Allow `
-Protocol TCP `
-LocalPort 10809 `
-RemoteAddress LocalSubnet `
-Profile Private
10809は実際に使うHTTPまたは混合接続先のポートに置き換え、ルールの表示名も合わせて変更してください。LocalSubnetで制限されるのはローカルサブネットであり、特定のスマートフォンだけではありません。複数のネットワークアダプターがあるPCでは、ローカルアドレスや接続元のネットワーク範囲をさらに絞ることも検討してください。- ファイアウォール全体を無効にしないでください。セキュリティソフトに別のネットワーク保護機能がある場合は、そのソフトのルールも確認してください。
- スマートフォンがゲストネットワークや分離されたVLANに接続している場合、ファイアウォールで許可しても、ルーター側のネットワーク間通信の設定がなければ接続できません。
共有を使わなくなったら、今回追加したルールを削除し、v2rayNのLAN接続許可も無効にしてください。Windows側の許可とアプリの待ち受け範囲を両方元に戻せます。
Remove-NetFirewallRule -DisplayName "v2rayN LAN HTTP 10809"
5. Androidスマートフォンやテレビにプロキシを設定する
Android端末では通常、「設定」→「Wi-Fi」または「ネットワークとインターネット」から接続中のネットワークを開き、「ネットワークを変更」を選択します。詳細設定で「プロキシ」を「手動」に変更してください。メーカーによって項目名は異なりますが、入力する項目はサーバーのホスト名、ポート、必要に応じてプロキシを使わない接続先のリストです。
Windows PCの設定例
- LAN内のIPv4アドレス
- 192.168.1.23
- HTTP接続先
- TCP 10809
- LAN接続
- 許可してコアを再起動
- ファイアウォールの範囲
- プライベートネットワーク、ローカルサブネット
アドレスとポートは、現在のPCで確認した実際の値に置き換えてください。
AndroidのWi-Fi設定例
- プロキシの種類
- 手動のHTTPプロキシ
- サーバーのホスト名
- 192.168.1.23
- サーバーポート
- 10809
- 初回テスト時の除外リスト
- 空欄のまま
ホスト名欄にはアドレスだけを入力します。http://やポート番号は付けないでください。
保存したら、まずブラウザーで、通常はプロキシ経由でアクセスする必要があるHTTPSページを開きます。HTTPプロキシはCONNECTでHTTPSトンネルを確立できますが、接続先のページが暗号化されないHTTPに切り替わるわけではありません。テスト中はPCの接続ログを確認し、リクエストが実際にプロキシの接続先へ届いていることを確かめてください。
- テレビがネットワークの手動プロキシ設定に対応している場合は、接続中のWi-Fiの詳細設定で同じアドレスとポートを入力してください。
- テレビを有線LANで接続している場合は、イーサネット接続にプロキシ設定があるか確認してください。Wi-Fiのプロキシ設定は有線LANには自動適用されません。
- テレビのアプリがシステムプロキシに従わない場合、ネットワークのプロキシを設定しても通信を強制的に経由させることはできません。まず、アプリに独自のプロキシ設定があるか確認してください。
- 端末単体でプロキシを動作させる必要がある場合は、用途に応じてv2rayNGまたはv2flyNGを選べます。ただし、独立したクライアントでは各アプリ自身の設定を使うため、ここで説明したHTTPプロキシの入力項目をそのまま使うわけではありません。
v2rayNGはXrayコア、v2flyNGはv2flyコアを使用します。端末を独立したクライアントとして使う場合は、PC側のルールがすべて引き継がれると考えず、サブスクリプションとの互換性、ルーティング、DNSの設定を改めて確認してください。
6. 3段階のテストでポートとノードの問題を切り分ける
「PC上の接続先」「LANからの接続」「接続先サービス」の順にテストします。ブラウザーでページを開けないだけでは、最終的なリクエストが失敗したことしかわかりません。その現象だけでサブスクリプション、ノード、ファイアウォールのどれに問題があるかは判断できません。
- PC上のプロキシをテスト:共有元のPCで下の1つ目のコマンドを実行し、HTTP接続先がリクエストを処理できることを確認します。失敗する場合は、まずコアまたは接続先の設定を修正してください。
- LAN上のポートをテスト:同じネットワークに接続した別のWindows端末で、2つ目のコマンドを実行します。
TcpTestSucceededがTrueでも、TCP接続が可能なことを示すだけで、接続先のプロトコルや外部への接続が正常とは限りません。 - アプリからのリクエストをテスト:スマートフォンでプロキシ設定を保存して接続先のページを開き、PCのログで時刻、接続先、送信元アドレスを確認します。ページが開けることと、リクエストがログに記録されることの両方を確かめてください。
# 共有元のPCでHTTPプロキシ接続先をテスト
curl.exe --proxy http://127.0.0.1:10809 --connect-timeout 10 -I https://v2rayzip.com/
# 別のWindows端末でLAN上のTCP接続をテスト
Test-NetConnection -ComputerName 192.168.1.23 -Port 10809
1つ目のコマンドの応答ステータスは、必ずしも200になるとは限りません。リダイレクトや、サイトがHEADリクエストを拒否した場合は別のステータスが返ることがあります。接続が確立したかどうかとログを併せて判断してください。接続先がLANアドレスだけで待ち受け、ループバックアドレスでは待ち受けていない場合は、1つ目のコマンドでPCのLANアドレスを指定してください。
PCでは使えるのにスマートフォンが接続タイムアウトになる場合は?
スマートフォンに入力したサーバーアドレスが、PCの現在のIPv4アドレスと一致しているか確認します。次に、待ち受けが127.0.0.1だけになっていないか確認してください。両方に問題がなければ、ファイアウォールのネットワークプロファイルと、ルーターのゲストネットワーク、AP分離、クライアント分離の設定を確認します。
ポートに接続できるのに、ブラウザーでページが開けないのはなぜ?
そのポートがSOCKS専用ではなく、HTTPに対応していることを確認してください。次に、curl.exeでプロキシ経由の接続をテストし、具体的なエラーを確認します。PC自身でも同じ接続先を使って失敗する場合は、ファイアウォールの許可範囲をさらに広げるのではなく、ノードへの接続、ルーティングルール、ドメイン名の名前解決を確認してください。
ブラウザーは使えるのに、テレビの動画アプリでは変化がない場合は?
まずPCのログにそのアプリからのリクエストが記録されているか確認します。記録がなければ、アプリがシステムのHTTPプロキシを使わないか、プロキシ経由にならない通信方式を使っている可能性があります。HTTPポートを何度も変更しても通常は解決しません。アプリが対応するプロキシ設定、または独立したクライアントを使ってください。
PCを再起動したあと、スマートフォンから接続できなくなるのはなぜ?
DHCPによってPCのアドレスが再割り当てされていないか確認し、コアが起動していることも確認してください。ルーターでPCのDHCPアドレス予約を設定できます。実際に使うポートが変わっていないか、ネットワークプロファイルが「パブリック」に変わっていないかも確認してください。
7. 長期利用に向けてアドレスを固定し、共有範囲を絞る
安定して共有するには、アドレス、待ち受け、ネットワークの状態を一定に保つことが重要です。競合する可能性のある静的アドレスをPCにむやみに設定せず、ルーターのDHCPアドレス予約を使うことをおすすめします。また、PCのスリープ設定も確認してください。ディスプレイを消すだけならスリープにはなりませんが、ほかの端末からの接続を継続して処理するにはPCが稼働している必要があります。
- ルーティングはPC側で決まります:スマートフォンのリクエストがv2rayNに届いた後も、PC側のルールが適用されます。LANからの接続だからといって、すべてが自動的にプロキシ経由になるわけではありません。
- 共有できてもDNSの状態はわかりません:HTTP CONNECTでは接続先のドメイン名をプロキシ側で処理できますが、アプリ独自の名前解決、暗号化DNS、プロキシを経由しない接続は個別に確認してください。
- アドレスが変わったら設定を更新:ネットワークやネットワークアダプター、ルーターを変更した場合は、PCのアドレス、ネットワークプロファイル、ファイアウォールの許可範囲を再確認してください。
- 家庭内ネットワークを離れる前に接続先を閉じる:LAN共有を無効にし、不要になったファイアウォールルールを削除してください。テストに使った端末のプロキシ設定も元に戻しましょう。