サーバー設定をインポート済みで、ブラウザーは接続できるものの、ターミナルやほかのアプリがシステムプロキシを使わない場合に役立ちます。ここではWindowsを中心に、「ノードの確認、管理者として起動、TUNの有効化、ルーティングとDNSの確認」の順で手順を説明し、無効化後の復旧方法も紹介します。TUNで変わるのは通信を取り込む範囲であり、プロキシ経由にするかどうかはルールで決まります。
TUNとシステムプロキシの違い:入口が異なってもルールによる振り分けは行われる
システムプロキシは、127.0.0.1:10808のようなローカルのプロキシアドレスをアプリに提供します。アプリがこの設定を参照すると、プロキシの入口にリクエストを送ります。ブラウザーは通常システムプロキシを利用できますが、コマンドラインのプログラムでは環境変数や個別のプロキシオプションが必要な場合があります。そのため、「ブラウザーはつながるのにターミナルはつながらない」からといって、ノードの障害とは限りません。
TUNはレイヤー3の仮想ネットワークインターフェースです。条件に合うIPパケットはシステムルーティングによってこのインターフェースに送られ、TUNを管理するコンポーネントが接続を処理して出力先を選びます。アプリ側でHTTPやSOCKSプロキシを意識する必要はありません。v2rayNは設定・管理用のインターフェースであり、実際の受信、解析、転送は起動されたコアコンポーネントが行います。一般的なバージョンではsing-box関連のコンポーネントがTUNを処理しますが、詳細は使用中のバージョンのログで確認してください。TUNを有効にしても、Xrayがネイティブに仮想NICを作成するわけではありません。
| 確認項目 | システムプロキシ | TUNモード |
|---|---|---|
| 通信を取り込む入口 | ローカルのHTTPまたはSOCKS待ち受けポート | 仮想NICとシステムルーティング |
| アプリ側の対応 | アプリがプロキシ設定を参照するか、手動設定が必要 | 通常、アプリ側でプロキシ設定は不要 |
| 必要な権限 | 通常は一般ユーザー権限で設定可能 | インターフェースやルーティングの変更には通常、昇格した権限が必要 |
| UDP通信 | HTTPシステムプロキシだけでは対応できない | 取り込み可能。ただし出力先とサーバー側の対応も必要 |
| すべての通信をプロキシ経由にするか | アプリの設定とルーティングルールによる | 取り込み範囲とルーティングルールによる |
判断のポイント:TUNが必要なアプリか確認する
プロキシが必要なのがブラウザーだけなら、まずはシステムプロキシを使いましょう。ターミナル、ゲーム、その他のアプリでプロキシを設定できない場合に、TUNを試してください。有効にした後も直接接続のルールは残し、「通信を取り込む」ことを「すべての接続をリモートノード経由にする」ことと混同しないようにしましょう。
有効化前の確認:ノード、権限、ローカルポート
まずv2rayNで、接続できることを確認済みのサーバーを選びます。サブスクリプションはサーバー設定を配布する方法、VMessやVLESSなどはノードで使うプロトコル、TUNはローカルの通信を取り込む入口です。それぞれ役割が異なります。もともと接続できないノードが、TUNに切り替えるだけで使えるようになることはありません。
- メイン画面のサーバー一覧から対象のサーバーを選び、右クリックメニューでアクティブサーバーに設定します。次にシステムプロキシを使い、普段安定してアクセスできるHTTPSページを開けることを確認します。
- 「設定」→「パラメーター設定」を開き、ローカルの待ち受けポートを記録します。ページ構成や項目名はバージョンによって異なるため、現在の画面に表示されている値を確認してください。以下の
10808は例です。 - システムルーティングを変更しているほかのVPNや仮想NICツールを、いったん終了します。通常のネットワークアダプターはそのままにし、システムデバイスをまとめて無効化しないでください。
- 作業内容を保存し、タスクトレイで動作しているバックグラウンドプロセスも含め、v2rayNを終了します。プログラムを右クリックして「管理者として実行」を選び、システムのアクセス許可を求める画面で確認します。
ローカル接続情報
- 待ち受けアドレス
- 127.0.0.1
- ポートの例
- 10808(実際の設定値を確認)
- 確認方法
- まずシステムプロキシでHTTPS接続をテスト
- LAN接続
- ローカルのTUNでは有効化不要
TUNを有効にするために、待ち受けアドレスをすべてのネットワークインターフェースに変更しないでください。
TUN起動時の設定記録
- 実行権限
- Windowsの管理者権限
- 初期ルーティング
- 現在使えている振り分け設定を維持
- 初期MTU
- 使用中のバージョンのデフォルト値を維持
- ログで確認する項目
- インターフェースの作成、ルートの追加、DNSエラー
まず再現可能な基準状態を作り、その後ネットワーク設定を一つずつ変更します。
管理者として起動してもコンポーネント不足のメッセージが表示される場合は、インストールパッケージが正しく展開されているか、コアファイルがセキュリティソフトによって隔離されていないか、ログに記載されたファイルパスが存在するかを確認してください。出所不明のダウンロードサイトから、名前の似たドライバーファイルを追加しないでください。再インストールが必要な場合は、当サイトのダウンロードページからOSに合ったパッケージを選んでください。
TUNを有効にする:通信を取り込む入口は一度に一つずつ変更
v2rayNは世代によって画面の構成が異なります。よくある設定場所は、メインウィンドウ下部の「TUNを有効にする」スイッチと、「設定」→「パラメーター設定」内のTUN設定です。使用中のバージョンでTUN設定が独立したメニューになっている場合は、同じ名前の項目を開いてください。別バージョンの画面を参考に、存在しない項目を変更しないようにしましょう。
- アクティブサーバーを確認します。テスト時に別の接続が使われないよう、メイン画面で選択されているサーバーとログの出力設定を確認してください。
- システムプロキシを解除します。システムプロキシのメニューから「システムプロキシを解除」を選び、ブラウザーに手動で設定したプロキシも一時的に無効にします。これにより、古いローカルプロキシではなくTUNをテストできます。
- TUNのデフォルト設定を維持します。初回はプロトコルスタック、MTU、ルーティングモード、DNSを同時に変更しないでください。デフォルト設定のほうが、使用中のバージョンの設定生成ロジックと整合しやすくなります。
- 「TUNを有効にする」をオンにします。コアの起動を待ち、仮想インターフェースの作成やルートの追加に関するログが出るか確認します。すぐに終了する場合は、スイッチを何度も切り替えず、最初のエラーから対処してください。
- 新しい接続を開始します。開いているウェブページのタブやターミナルの接続をいったん閉じ、改めてアクセスします。確立済みの長時間接続は、設定の切り替え後すぐに経路が変わるとは限りません。
リモートノードのアドレスまでTUNに戻して送らないようにしてください。管理プログラムは通常、インターフェースのバインドやバイパスルートでループを防ぎますが、複数のネットワークツールを同時に使うと、この仕組みが崩れることがあります。同じノードアドレスへの接続がログに繰り返し記録され、タイムアウトや異常な通信量を伴う場合は、まずTUNを無効にしてルーティングの競合を調べてください。
DNSの設定:名前解決の失敗と接続の失敗を切り分ける
DNSはドメイン名をIPアドレスに変換し、その後ルーティングによって接続経路が決まります。TUNで通信を取り込む場合、DNSリクエストにも利用可能な経路が必要です。リモートDNSへの接続にプロキシが必要で、そのプロキシノードのドメイン名も同じリモートDNSでしか解決できない場合、起動時に依存関係の循環が起きることがあります。
- ノードのドメイン名解決:起動時に利用できる名前解決経路を確保してください。証明書の検証やサーバー側の設定で元のドメイン名が必要になる場合があるため、サブスクリプション内のサーバードメインを一時的なIPアドレスに安易に置き換えないでください。
- 直接接続するドメインの名前解決:解決結果が直接接続の経路と合うようにしてください。特に社内サービス、プリンター、社内ドメインでは注意が必要です。
- プロキシ経由のドメイン解決:リモートDNSサーバーへの接続にプロキシを使う設定の場合、まずノードへの接続が確立できることを確認してください。
- ブラウザーのセキュアDNS:ブラウザーが独自に暗号化DNSを使っている場合があります。そのため、ブラウザーとターミナルで結果が異なっても、システムDNSのキャッシュ破損とは限りません。
「設定」→「DNS設定」、または使用中のバージョンの「パラメーター設定」にあるDNS項目を開き、まず現在の値を記録してから、直接接続とリモート名前解決に関する設定を確認します。項目はコアやバージョンによって異なります。独立したコア向けのJSON設定を、GUIの任意の入力欄に貼り付けないでください。初回はそのバージョンで用意されているデフォルト設定を使いましょう。
# Windows PowerShell:ネットワークアダプターの状態とDNS設定を確認
Get-NetAdapter | Format-Table Name, InterfaceDescription, Status
Get-DnsClientServerAddress -AddressFamily IPv4
# システムの名前解決経路を確認。調査対象のドメイン名に置き換える
Resolve-DnsName example.com
# DNS設定の変更後にWindowsのDNSキャッシュをクリア
ipconfig /flushdns
Resolve-DnsNameはシステムの名前解決経路を確認するコマンドで、ブラウザー内蔵のリゾルバーの結果を示すものではありません。キャッシュを消去した後は、新しい接続を開始し、必要に応じてテスト対象のアプリを再起動してください。名前解決はできてもHTTPS接続がタイムアウトする場合は、DNSを何度も変更せず、ノード、ルーティング、ファイアウォールを調べましょう。
通信の取り込みを検証:インターフェース、ルーティング、アプリを照合
スイッチがオンになっただけでは十分ではありません。有効化前後のネットワークインターフェースとルーティングを比較し、プロキシを設定していないターミナルからリクエストを送信して、最後にv2rayNのログを確認します。仮想インターフェース名やインターフェース番号は、バージョンや環境によって異なります。特定の名前だけを探さないでください。
# Windows PowerShell:IPv4ルートとインターフェース番号を確認
Get-NetRoute -AddressFamily IPv4 |
Sort-Object InterfaceIndex, DestinationPrefix |
Format-Table DestinationPrefix, NextHop, InterfaceIndex, RouteMetric
# 現在のターミナルがプロキシ環境変数を引き継いでいるか確認
Get-ChildItem Env: | Where-Object Name -Match 'proxy'
# curlの明示的なプロキシを使わず、新しいHTTPS接続をテスト
curl.exe --noproxy "*" --connect-timeout 10 --max-time 20 -I https://example.com/
ここでの--noproxy "*"は、curlがアプリケーション層のプロキシ設定を使わないようにするオプションであり、OSのTUNルーティングを迂回するものではありません。テスト対象のドメインに直接接続するルールが適用されている場合、コマンドが成功しても、現在の経路が使えることを示すだけで、リモートノードを経由した証明にはなりません。プロキシ経由の通信をテストするときは、実際にアクセスが必要で、プロキシルールが適用される宛先を選び、接続ログで出力先を確認してください。
| 確認できた現象 | まず確認すること | 次の手順 |
|---|---|---|
| 新しいインターフェースがなく、起動ログに権限エラーがある | TUNの作成に失敗しています | バックグラウンドプロセスを終了し、管理者として再起動する |
| インターフェースはあるが、対象の接続に関するログがない | ルーティングが通信を取り込んでいないか、ルールで対象が除外されている | インターフェースのルート、除外ネットワーク、ほかのVPNを確認する |
| ドメイン名の解決に失敗するが、ノードには接続できる | DNS設定または名前解決経路に問題がある | リゾルバー、ドメインルール、ブラウザーのセキュアDNSを確認する |
| ウェブページは開くが、UDPを使うアプリが失敗する | UDPの出力機能またはルールが合っていない | ノードとサーバー側のUDP対応を確認し、次にファイアウォールを調べる |
| 小さなリクエストは通るが、大きなファイルの転送が止まる | MTUまたは経路の互換性に問題がある可能性 | 現在の値を記録し、MTUだけを小さくしてテストする |
判断のポイント:ウェブページが開くかだけでなく、ログで出力先を確認する
テスト時は対象ドメイン、テスト時刻、ログに表示された出力先を記録します。接続できても直接接続ルールに一致した場合と、プロキシルールに一致した場合では結果が異なります。速度や安定性を検討する前に、実際の経路を確認してください。
MTUが原因と思われる場合は、元の値を記録したうえで、TUN設定のMTUだけを1400に変更して比較テストし、TUNを再起動します。この値はトラブルシューティングの目安であり、すべてのネットワークに最適とは限りません。改善しなければ元の値に戻してください。DNS、プロトコルスタック、ノードを同時に変更すると、どの変更が影響したのか判断できません。
よくある質問と無効化後のネットワーク復旧
TUNを有効にしてもスイッチがすぐオフに戻るのはなぜ?
まずログを開き、今回の起動で最初に表示されたエラーを探します。権限不足の場合は、v2rayNのプロセスをすべて終了して管理者として起動してください。コンポーネントが見つからない場合は、インストール先と隔離履歴を確認します。設定の解析に失敗した場合は、直前に変更したTUN設定を元に戻してください。エラーを確認せず、何度もスイッチを押すだけでは解決しません。
TUNを有効にした場合も、システムプロキシを有効にする必要がありますか?
初回の検証では、2種類の入口が混在しないようシステムプロキシを解除してください。TUNが正常に通信を取り込めていれば、一般的なアプリではローカルプロキシの設定は通常不要です。アプリ単位でプロキシを指定する必要がある場合は別途設定できますが、テスト時はどの入口を使っているかを区別してください。
ウェブページは開くのに、社内ネットワークやプリンターに接続できない場合は?
現在の振り分け設定で、LAN内の宛先が直接接続になっているか確認します。よく使われるプライベートIPv4ネットワークには、10.0.0.0/8、172.16.0.0/12、192.168.0.0/16があります。社内ドメインでは内部DNSが必要な場合もあります。実際のアドレスと社内ネットワークの要件を確認してからルールを追加し、社内ネットワーク全体を安易にリモート経由にしないでください。
IPv4は正常なのに、一部のサイトで読み込みが止まります。IPv6が原因ですか?
同じ宛先に対してcurl.exe -4 -I https://example.com/とcurl.exe -6 -I https://example.com/を実行して比較し、IPv6のルーティングとDNSの応答も確認します。IPv6経路に問題がある場合は、TUNの取り込み範囲、名前解決の設定、実際のネットワークの対応状況を一致させてください。一度読み込みが止まっただけで、システムのIPv6を恒久的に無効化しないようにしましょう。
v2rayNを終了した後もインターネットに接続できません。どうすれば復旧できますか?
v2rayNを再度起動し、まず「TUNを有効にする」をオフにしてから、システムプロキシを解除し、通常の手順で終了します。Windowsの「設定」→「ネットワークとインターネット」→「プロキシ」を開き、手動プロキシのアドレスが残っていないか確認してください。それでも復旧しない場合は、現在のネットワークに再接続するか、システムを再起動します。すべてのネットワークアダプターやデフォルトルートを削除しないでください。
通常の終了時は「TUNをオフにしてからプログラムを終了」の順に操作すると、管理プログラムが一時インターフェースやルートを削除しやすくなります。スリープからの復帰、Wi-Fiの切り替え、社内VPNへの接続後にだけ問題が起きる場合は、発生条件を記録してからTUNを再起動し、再テストしてください。ネットワークの切り替えで物理的な出口が変わると、古いインターフェースのバインドや接続を再確立する必要があります。
- 問い合わせ前に、v2rayNのバージョン、Windowsのバージョン、TUN関連のコアバージョン、最初のエラーが発生した時刻を記録してください。
- 再現手順も記録します。システムプロキシを解除したか、ほかのVPNを終了したか、どのドメインやアプリで失敗したかをまとめてください。
- ログを共有する前に、サブスクリプションのURL、ユーザー識別情報、パスワード、ノードの認証情報を削除し、エラーの種類と必要なネットワーク状態は残してください。
クライアントとプラットフォームの選択
お使いのOSに合ったv2rayNのインストールパッケージを選びます。インストール後、ノードとシステムプロキシが使えることを確認してから、この記事の手順でTUNを有効にしてください。初めてのサブスクリプションのインポートやサーバーの選択については、使い方ガイドを参照できます。