v2rayNのLAN接続設定|同じネットワークの他のデバイスでプロキシを共有

v2rayNでLAN接続を有効にする方法を解説。待ち受けアドレスとポート、macOSファイアウォールの許可設定、他のデバイスでのプロキシ設定を紹介します。

この記事のポイント

v2rayNを動かしているMacをLAN内のプロキシとして使うには、プロキシポートがLANインターフェースで待ち受けていること、ファイアウォールが着信接続を許可していること、他のデバイスで正しいホストアドレスとポートを指定することの3点が必要です。この記事では例として、アドレス192.168.1.20、HTTPポート10809、SOCKS5ポート10808を使って設定とトラブルシューティングを説明します。これらは説明用の値です。実際に設定する前に、クライアントの設定を確認してください。

LAN共有とシステムプロキシの違い

Macのシステムプロキシを有効にすると、システムプロキシ設定に従うMac上のアプリがリクエストをv2rayNに送信します。他のデバイスが自動的にプロキシを使えるようになるわけではありません。LAN共有では、Mac上で同じネットワーク内のデバイスから接続できるHTTPまたはSOCKSの受け入れ口を開き、他のデバイスからそこへ接続します。

リクエストは「他のデバイス → Macのローカル受け入れ口 → v2rayNの現在のルーティングとアウトバウンド → 接続先サイト」の順に流れます。リモートノードのアドレスやUUIDなどの認証情報はMacのクライアント設定に保持されます。接続するデバイス側で通常必要なのは、MacのLANアドレス、受け入れプロトコル、ポートだけです。利用前に、契約中のサービスがこの使い方と同時接続数を許可していることも確認してください。

待ち受けアドレス・LAN IP・ポートの関係

よくある間違いは、他のデバイスに127.0.0.1を入力することです。ループバックアドレスは、入力したデバイス自身を指し、v2rayNを動かしているMacを指すわけではありません。また、0.0.0.0をプロキシサーバーのアドレスとして入力するのも誤りです。これはサーバー側の待ち受けに使う値であり、クライアントの接続先にはできません。

設定値意味他のデバイスでの設定
127.0.0.1ローカルのループバックインターフェースのみで待ち受けこの待ち受け設定では他のデバイスから接続できません
0.0.0.0すべてのローカルIPv4インターフェースで待ち受けMacの実際のLAN内IPv4アドレスを入力
192.168.1.20この記事で使うMacのLANアドレス例現在のMacの実際のアドレスに置き換える
10809この記事で使うHTTP受け入れポートの例HTTPプロキシを提供していることを確認してから使用
10808この記事で使うSOCKS5受け入れポートの例SOCKS5を提供していることを確認してから使用

バージョンやコア、既存の設定によってポートは異なり、HTTPとSOCKSの混合受け入れ口が用意されている場合もあります。ポート番号だけでプロトコルを判断しないでください。まずパラメーター設定または生成された設定ファイルで受け入れ口の定義を確認し、HTTPとSOCKS5のどちらを入力するか決めます。設定にIPv6のワイルドカード待ち受け::があっても、それだけでIPv4から接続できるとは限りません。実際に接続して確認してください。

結論:プロトコルを確認してからアドレスを入力

まず利用できるHTTP受け入れ口を確認し、2台目のデバイスからMacの実際のLAN内IPアドレスに接続します。最初の動作確認ではこの接続経路だけを検証し、ポート、ルーティング、DNSを同時に変更しないでください。

v2rayNでLAN接続を許可する

まずMac上で現在のノードが使えることを確認してから、LAN接続用の入口を開きます。以下では一般的なデスクトップ画面を例に説明します。バージョンによって画面やスイッチの名称は多少異なりますが、確認するのはローカル受け入れ口の待ち受け範囲です。リモートサーバーのアドレスやサーバーポートではありません。

  1. Mac上で接続を確認

    v2rayNを起動し、利用可能なサーバーを選んで、Macのローカルプロキシ経由で接続先サイトにアクセスします。Mac上ですでに接続できない場合は、ノード、サブスクリプション、コアの起動状況を先に確認してください。いきなりLANの問題を調べる必要はありません。

  2. LAN接続を有効にする

    「設定」→「パラメーター設定」を開き、コアの基本設定または受け入れ設定の画面で「LANからの接続を許可」などの項目を探して有効にします。該当項目が見当たらない場合は、使用中のバージョンの受け入れ設定を確認してください。名前の似たリモート側の設定は変更しないでください。

  3. 受け入れポートを確認

    同じ設定画面で、HTTP、SOCKS、または混合受け入れ口の実際のポートを確認します。この記事ではHTTPの10809を例にします。混合ポートしかない場合は、そのポートがHTTPプロキシリクエストを受け付けることを確認してください。

  4. 保存して再読み込み

    設定を保存して、クライアントにコア設定を再読み込みさせます。コアの再起動を求められた場合は、画面の案内に従ってください。その後、ログにポートの競合、設定の読み込み失敗、待ち受け失敗が記録されていないか確認します。

  5. Macのアドレスを確認

    macOSの「システム設定」→「ネットワーク」→接続中のネットワークサービス→「詳細」→「TCP/IP」を開き、IPv4アドレスを確認します。Macが有線と無線の両方に接続されている場合は、接続するデバイスと通信できるネットワークのアドレスを選んでください。

Macの「ターミナル」で次の読み取り専用コマンドを実行すると、例に使うポートでTCP待ち受けがあるか確認できます。別のポートを使う場合は、コマンド内の数字を置き換えてください。権限の制限で結果が不完全なときは、コアのログもあわせて確認します。

lsof -nP -iTCP:10809 -sTCP:LISTEN

結果が127.0.0.1:10809だけの場合、待ち受けはMac上に限定されています。*:10809と表示された場合も、出力に含まれるIPv4・IPv6の種別から待ち受け範囲を確認し、別のデバイスから接続テストを行ってください。クライアントが生成したconfig.jsonでは、inbounds内のlisten、port、protocolを確認できます。ただし、生成ファイルを直接編集して恒久的な設定にするのは避けてください。次回の保存やノード切り替えで上書きされる可能性があります。

macOSファイアウォールとルーターの分離設定を確認

待ち受けに成功しても、LANからのリクエストがプロセスに届くとは限りません。macOSファイアウォール、他のネットワークフィルターツール、ルーターの分離設定が接続を遮断することがあります。トラブルシューティング中もファイアウォールは有効にし、必要なプログラムだけを許可してください。共有のためにファイアウォールを常時無効にするのは避けましょう。

  1. macOSの「システム設定」→「ネットワーク」→「ファイアウォール」→「オプション」を開きます。macOSのバージョンによって、項目名や場所が多少異なることがあります。
  2. 「すべての受信接続をブロック」が有効になっていないか確認します。このポリシーを維持する必要がある場合、一般的なアプリの受け入れ口を使った共有は、この記事の手順では動作しない可能性があります。管理対象デバイスでは、まず管理者のポリシーに従ってください。
  3. アプリ一覧でv2rayNの受信接続の許可設定を確認し、必要に応じて許可します。システムがネットワークへの受信を求めるダイアログを表示した場合は、要求元のプログラムが使用中のクライアントと一致することを確認してください。
  4. それでも遮断される場合は、lsofで実際に待ち受けているプロセスを確認します。パッケージの構成によっては、コアプロセスが待ち受けを担当します。正体のわからないプログラムを安易に許可せず、該当プロセスの権限を確認してください。
  5. ルーターの「ゲストネットワーク」「AP分離」「クライアント分離」を確認します。2台のデバイスを、相互通信が許可された信頼できるメインネットワークに接続してください。この目的でインターネット側へのポート転送を設定する必要はありません。

他のデバイスでHTTPとSOCKS5のどちらを設定するか

まず、アプリが対応しているプロキシの種類に合わせて接続口を選びます。HTTPプロキシはCONNECTを使って一般的なHTTPSリクエストも中継できるため、HTTPという名前でも通常のHTTPページだけに限られるわけではありません。SOCKS5を使うには、アプリまたはシステムが明示的に対応している必要があります。SOCKSポートをHTTPプロキシ欄に入力しないでください。

HTTP手動プロキシ

おすすめ

ホストを192.168.1.20、ポートを10809とする例では、それぞれサーバー欄とポート欄に入力します。最初の確認では、ブラウザーからこの接続口を使ってページを読み込めるかだけを試してください。

用途:AndroidのWi-Fi設定、Windowsのシステムプロキシ、HTTPプロキシ設定に対応したアプリ。

アプリのSOCKS5プロキシ

アプリでSOCKS5を選び、ホストに192.168.1.20、ポートに例として10808を入力します。ドメイン名を端末側とプロキシ側のどちらで解決するかは、アプリのリモートDNS設定を確認してください。

用途:SOCKS5に明示的に対応するデスクトップアプリ、コマンドラインツール、Linux環境。

サーバー欄には通常192.168.1.20だけを入力し、http://は付けません。ポートは専用の欄に入力します。「プロキシURL」を明示的に求めるツールでのみ、完全なURLを使ってください。受け入れ口に認証を設定している場合は、リモートノードのUUIDではなく、その受け入れ口で必要なユーザー名とパスワードを入力します。

コマンドでポートの接続不可とプロキシの失敗を切り分ける

以下のテストは、共有元のMacだけでなく、別のデバイスから実行してください。macOSと一般的なLinux環境ではcurlを使えます。Windowsではcurl.exeを実行し、ターミナル環境の同名コマンドエイリアスによる誤判定を避けてください。テスト用の接続先には例示ドメインを使います。リクエストの流れを確認するためのもので、すべての接続先サイトでの動作を保証するものではありません。

# HTTP受け入れ口:Macの実際のアドレスとポートに置き換える
curl --noproxy "" -I -v --connect-timeout 5 --max-time 15 \
  --proxy http://192.168.1.20:10809 https://example.com/

# SOCKS5受け入れ口:socks5hはドメイン名の解決をプロキシ側に任せる
curl --noproxy "" -I -v --connect-timeout 5 --max-time 15 \
  --proxy socks5h://192.168.1.20:10808 https://example.com/
結果まず確認する項目次の対応
接続が拒否されるポートの入力ミス、コアが未起動、ループバックアドレスのみで待ち受けMacで待ち受け状態と起動ログを確認し、接続を明示的に拒否するフィルタールールも確認する
接続がタイムアウトするアドレスに到達できない、ファイアウォールによる破棄、無線LANの分離現在のIPアドレスとネットワークサービスを確認し、受信接続の許可とゲストネットワークの設定を確認する
407が返るHTTP受け入れ口でプロキシ認証が必要受け入れ口の認証情報を入力する。ノードの認証情報で代用しない
接続後にリクエストが失敗するプロトコルの不一致、アウトバウンドの問題、DNSまたはルーティングの問題リクエストの時刻に対応するコアのログを確認し、想定したアウトバウンドが使われているか確認する
接続先から応答があるそのプロキシリクエストの経路は確立済み普段使うアプリと、アプリ独自のプロキシ設定も確認する

上記の接続タイムアウト5秒、全体のタイムアウト15秒はトラブルシューティング用の設定であり、通信速度や遅延の測定値ではありません。Webページを1つ読み込めても、UDP、ゲーム、リアルタイム通話がプロキシ経由になるとは限りません。HTTPプロキシでは通常、任意のUDP通信を中継できません。SOCKS5のUDP転送も、接続するアプリ、受け入れ口、その後の通信経路が対応しているかによります。共有を有効にしただけで利用できるとは限りません。

LAN内プロキシ共有でよくある質問

Macではインターネットにつながるのに、他のデバイスでタイムアウトするのはなぜですか?

まずlsofで、ポートが127.0.0.1だけで待ち受けていないか確認します。次に、他のデバイスにMacの現在のLAN内IPアドレスが入力されているか確認してください。その後、ファイアウォールとゲストネットワークの分離設定を調べます。最初からサブスクリプションをリセットしたり、リモートノードを変更したりする必要はありません。

スマートフォンではWebページを開けるのに、特定のアプリだけプロキシを使わないのはなぜですか?

AndroidのWi-Fi手動プロキシ設定は、すべてのアプリに適用されるわけではありません。まず、そのアプリにHTTPまたはSOCKS5の個別設定があるか確認してください。デバイス側で個別に通信を処理する必要がある場合は、用途に応じてv2rayNGまたはv2flyNGを設定してください。Macのポートを何度も変更する必要はありません。

昨日は使えたのに、今日は同じアドレスに接続できないのはなぜですか?

Macのネットワーク詳細を開き、IPv4アドレスをもう一度確認してください。DHCPリースの更新やネットワークの切り替えで、アドレスが変わることがあります。長期間使う場合は、自分が管理するルーターでDHCPアドレス予約を設定すると便利です。他のデバイスと競合する可能性がある静的アドレスを、根拠なく設定しないでください。

共有を終了した後、どの設定を戻せばよいですか?

まず接続したデバイスの手動プロキシ設定を解除し、次にv2rayNのLAN接続を無効にしてコアを再読み込みします。待ち受け確認コマンドを実行し、ポートがループバックアドレスのみになったか、待ち受けが停止したことを確認してください。設定を戻さないと、デバイスが別のネットワークに接続した際も、古いアドレスへの接続を試みる場合があります。

安定した共有には、アドレス、待ち受け範囲、アクセス範囲を適切に管理することが大切です。初回の設定後は、受け入れプロトコル、ポート、ルーティングモードを記録しておけば十分です。生成された設定ファイル全体を各デバイスに配布する必要はありません。クライアントの更新やコアの変更後は、別のデバイスから接続テストを行い、共有設定が引き続き有効か確認してください。

v2rayN をダウンロードプラットフォームに合ったクライアントを選択