ブラウザーは接続できるのに、コマンドラインツールやゲーム、ほかのデスクトップアプリがプロキシを経由しない場合は、まずシステムプロキシを参照しているか確認しましょう。この記事ではWindows版v2rayNを例に、TUNによる通信の取り込み、管理者権限、DNS、ルーティングの関係を解説し、有効化から動作確認、ネットワークの復旧まで順を追って紹介します。接続トラブルが起きても設定を一度に変更せず、TUNが必要か判断できます。
システムプロキシとTUN:通信の入口の違い
システムプロキシは、アプリにプロキシサーバーのアドレスを知らせる仕組みです。アプリがこの設定を読み取って利用すると、通信はv2rayNのローカルプロキシに入ります。環境変数だけを参照するコマンドラインツールや、独自のネットワークスタックを使うアプリもあるため、ブラウザーが使えてもほかのアプリが接続できるとは限りません。
TUNはIP層で動作する仮想ネットワークインターフェースです。システムはルーティング条件に合うパケットを仮想NICに送り、連携するコアが接続を処理して出口を選択します。通常、アプリごとにHTTPやSOCKSのアドレスを設定する必要はありませんが、管理者権限、システムルート、DNS設定が通信の取り込みに直接影響します。
「全通信を取り込む」とは、取り込み対象の範囲を示すもので、「すべての通信をプロキシノード経由にする」という意味ではありません。TUNを有効にしても、中国本土のサイトやLAN、ダイレクト接続ルールに一致する通信は直接接続される場合があります。仮想NICに入らない通信が自動的に取り込まれるわけでもありません。IPv6、ほかの仮想NIC、明示的に除外したルートは個別に確認してください。
- ブラウザーだけで使う場合:通常はシステムプロキシで十分です。TUNを有効にする必要はありません。
- アプリが手動プロキシに対応している場合:まずそのアプリにHTTPまたはSOCKSの入口を設定しましょう。影響範囲を小さくできます。
- プロキシ非対応のアプリも通信を取り込みたい場合:一部のゲームやランチャー、独立したネットワークツールなどでは、TUNを検討してください。
- UDPを使う場合:TUNは該当するIPパケットを受信できますが、転送できるかどうかはプロトコル、コア、ノード、接続先のネットワークによります。スイッチの状態だけでは判断できません。
有効化の前に:ノードと権限を確認
v2rayNは設定管理とコアの起動を担うクライアント、TUNは通信の入口、VMessやVLESSなどはプロキシプロトコルです。それぞれ役割が異なります。TUNを有効にしても、使えないノードが利用可能になるわけではなく、サーバーにない転送機能が補われることもありません。
配布パッケージによって、設定画面の場所や項目名が異なる場合があります。ここではメイン画面の「Tunを有効にする」スイッチと、「設定」→「パラメーター設定」にあるTUN関連項目を例に説明します。画面の表示が異なる場合は、使用中のパッケージの表示と実行ログを確認してください。特定バージョンが生成したコア設定全体を、別バージョンにそのまま上書きしないでください。
- 現在の設定を記録する。使用中のサーバー、システムプロキシのモード、ルーティングプリセットを控えておきます。初回のテストでは、サブスクリプショングループ、出口プロトコル、DNSを同時に変更しないでください。
- 通常のプロキシ接続を確認する。TUNをオフにしたまま、システムプロキシを使って到達可能なHTTPSサイトに接続します。失敗する場合は、サブスクリプション、ノード認証、システム時刻、ネットワーク接続を先に確認してください。
- 競合する通信制御ツールを終了する。ほかのVPN、仮想NICソフトウェア、企業向けセキュリティクライアントが同時にルートを書き換えている場合があります。終了するのは管理権限のあるプログラムだけにしてください。管理対象の端末では、事前に組織のポリシーを確認しましょう。
- 管理者権限を準備する。Windowsで初回のトラブルシューティングを行うときは、v2rayNを終了し、プログラムを右クリックして「管理者として実行」を選択します。仮想NICの作成やルートの変更には通常、昇格した権限が必要です。配布パッケージが対応するサービス方式を使う場合は、該当サービスの権限を確認してください。
Tunを有効にする:一つずつ順番に操作
初回設定では、クライアントが提供するTUNのデフォルト値を使いましょう。最初からネットワークスタックを切り替えたり、MTUを変更したり、出所不明の高度な設定を読み込んだりしないでください。v2rayNのTUN経路はsing-boxなどの連携コアで動作する場合があり、選択したサーバーで使うXrayなどの出力コアと連携することもあります。詳細は実行ログで確認してください。
- 動作確認済みのサーバーを選ぶ。メイン画面で使用するサーバーを選択し、テスト結果が表示されるだけでなく、通常のプロキシ接続で実際のリクエストが完了することを確認します。
- TUNの設定を確認する。「設定」→「パラメーター設定」を開き、TUN関連項目を探します。ネットワークスタックとMTUはデフォルトのままにしてください。自動ルート設定がある場合は、その状態を確認します。仮想NICを作成しただけで有効なルートが設定されていなければ、想定どおり通信を取り込めないことがあります。
- テストを切り分けるため、システムプロキシを解除する。メイン画面の「システムプロキシ」メニューから「システムプロキシを解除」を選びます。すべての環境で必須の操作ではありません。ブラウザーが古い明示プロキシを使い続け、テスト結果が曖昧になるのを防ぐための手順です。
- 「Tunを有効にする」をオンにする。画面の指示に従って権限を昇格するか、再起動してください。その後ログを確認します。スイッチの色だけで判断せず、コアが正常に起動したか、仮想インターフェースが作成されたか、ルート設定が完了したかを確認しましょう。
- 対象のアプリを起動する。まず、これまでシステムプロキシを参照しなかったアプリをテストし、その後LANへの接続を確認します。問題が起きたら、まずTUNをオフにして元の状態に戻してください。プリセットを続けて複数切り替えるのは避けましょう。
macOSやLinuxのデスクトップ版でも、仮想インターフェースの作成やルート変更に必要な権限が必要です。ただし、権限昇格の方法はWindowsとは異なります。Windowsの右クリック操作をほかのOSにそのまま適用しないでください。エラーを回避するために、インストールフォルダー全体へ過剰な権限を恒久的に付与するのも避けましょう。
DNSハイジャック:問い合わせを受け取る仕組みと、すべての名前解決の置き換えは別
TUN環境でのDNSハイジャックとは通常、条件に一致する従来型DNS問い合わせを、コア内蔵のDNS処理経路に渡すことです。Webページの内容を書き換える機能ではありません。正しく設定すれば、名前解決とプロキシルーティングを連携できます。設定に問題があると、ノードには接続できるのにドメイン名でアクセスできないことがあります。
これらは各プロトコルでよく使われるポートであり、v2rayNのローカル待ち受けポートでも、このサイトのテスト結果でもありません。宛先ポート53だけに一致するルールでは、すべての暗号化DNSを自動的に識別して取り込むことはできません。ブラウザー内蔵のセキュアDNS、アプリ内蔵のDoH、カスタムDNSリゾルバーは、別の経路で名前解決する場合があります。
- スイッチだけでなく、生成された設定を確認する。バージョンによっては、デフォルトテンプレートでDNSハイジャックのルールを生成するため、同じ名前のチェックボックスがない場合があります。TUNの設定とログを確認してください。生成された設定を見る場合は読み取り専用で確認し、一時ファイルを恒久設定として編集しないでください。
- 名前解決のループを避ける。プロキシサーバーのアドレスがドメイン名の場合、まず利用可能な名前解決経路が必要です。リモートDNSがまだ確立していないプロキシに依存すると、起動時に依存関係のループが発生することがあります。
- LAN内ドメインを区別する。企業内ネットワークや家庭内機器のローカルドメインは、LAN内のDNSでしか解決できない場合があります。すべての問い合わせをパブリックDNSに送らないでください。
- IPv6を個別に確認する。AAAAレコードとIPv6ルートは、対応関係を保つ必要があります。IPv4だけを処理していても、すべての通信が同じ経路を通るとは限りません。
切り分けの基本:名前解決経路をそろえてからルーティングを調整
ブラウザーとほかのアプリで結果が異なる場合は、まずブラウザー独自のセキュアDNSを一時的にオフにして比較し、名前解決経路の違いが原因か確認します。すぐにすべてのルートをプロキシ経由に変更しないでください。テスト後、必要に応じてブラウザーの設定を元に戻しましょう。
通信の取り込みを確認:接続、ルート、LANをチェック
TUNの動作確認には、少なくとも二種類の証拠が必要です。OS上で想定したインターフェースやルートの変化があること、そして対象アプリの通信がルールに従って適切な出口に送られていることです。外部IPアドレスが変わっただけでは、そのリクエストの出口が変わったとしか判断できず、すべてのアプリやプロトコルが取り込まれた証明にはなりません。
Windowsでは、PowerShellで以下の読み取り専用コマンドを実行し、状態を確認できます。有効化の前後で実行して結果を比較してください。ネットワークアダプター名は設定やバージョンによって変わるため、特定の名前を前提に探さないでください。
# 非表示のインターフェースを含むネットワークアダプターを確認
Get-NetAdapter -IncludeHidden
# IPv4とIPv6のルートを確認
Get-NetRoute -AddressFamily IPv4
Get-NetRoute -AddressFamily IPv6
# 各インターフェースのDNSサーバー設定を確認
Get-DnsClientServerAddress
DNSハイジャックが通信処理経路内で行われる場合、システムに表示されるDNSサーバーのアドレスが変わらないことがあります。そのため、最後のコマンドだけではハイジャックの成否を判断できません。ルートの取り込みも、デフォルトルートの置き換えとして表示されるとは限らないため、実際に生成されたルールとログを確認しましょう。
- 対象アプリをテストする:アプリに手動設定したプロキシやプロキシ環境変数を解除してから再起動します。明確な接続を一度発生させ、時刻を手がかりにv2rayNのログで宛先と出口の記録を確認してください。
- ドメイン名の解決をテストする:同じドメイン名について、通信の取り込み前後で問い合わせとアクセス結果を比較します。キャッシュが判断に影響する場合は、Windowsで
ipconfig /flushdnsを実行してシステムDNSキャッシュを消去し、対象アプリを再起動してください。 - イントラネットをテストする:実際に利用できるルーターの管理画面、プリンター、共有サービスにアクセスします。プライベートネットワークには
192.168.0.0/16だけでなく、10.0.0.0/8や172.16.0.0/12も含まれます。企業内では、これらとは別の専用ルートが設定されている場合もあります。 - UDPをテストする:実際にUDPセッションを開始するアプリを使って確認します。Webページを開けることやpingが成功することだけでは、UDPプロキシが使える証明になりません。
よくあるトラブル:症状から原因を絞り込む
一度に変更する設定は一つだけにし、変更前後のログを保存してください。ログにはサブスクリプションURL、サーバーアドレス、認証情報が含まれる場合があります。他者に共有して調査を依頼する前に、機密情報を隠しましょう。以下では、利用開始時によくある四つの症状と確認方法を紹介します。
「Tunを有効にする」をオンにすると、すぐ自動でオフになります。どうすればよいですか?
まず同じ時刻のコアログを確認します。権限不足のメッセージが出る場合は、終了して管理者として再起動してください。仮想インターフェースの作成失敗なら、ほかの通信制御ソフトやセキュリティポリシーを確認します。設定項目の非互換が原因なら、TUNのデフォルト設定に戻し、クライアントと連携コアが同じ配布パッケージに含まれていることを確認してください。
TUNを有効にしたらインターネットに接続できません。まずDNSを変更すべきですか?
まずTUNをオフにして元のネットワークが復旧するか確認し、次に通常のシステムプロキシをテストします。通常のプロキシも失敗する場合は、ノードまたは基本ネットワークの問題を先に解決してください。TUNだけが失敗する場合は、ルートの競合、コアの起動状態、名前解決のループを確認します。ノードとDNS設定を同時にすべて変更しないでください。
ブラウザーは使えるのに、ゲームが接続できません。
まずブラウザーが独自の明示プロキシを使っていないか確認し、次にゲームの通信がログに記録されるか調べます。記録があるのにUDPが失敗する場合は、ノードのUDP対応状況とネットワーク制限を確認してください。記録がない場合は、ルートの除外設定、ほかの仮想NIC、ゲーム独自のネットワーク設定を確認します。TUNを使ってもゲームの遅延が下がるとは限りません。
有効化後、プリンターや社内ネットワークにアクセスできません。
まずTUNをオフにして比較し、対象サービス自体が利用できることを確認します。その後、該当するネットワークセグメントのダイレクト接続・バイパスルールと、社内ドメインが引き続き社内DNSで解決されるかを確認してください。企業VPNの専用ルートとTUNの自動ルートが競合する場合があります。デフォルトルートの優先度を上げるだけで安易に解決しようとしないでください。
無効化して元に戻す:システムネットワークを確認
通常終了する場合は、まず「Tunを有効にする」をオフにして、コアの停止とルートの復旧を待ってから、システムプロキシを戻すか判断します。通常のプロキシ経由でブラウザーを使い続ける場合は、システムプロキシを再設定してください。利用を完全に停止する場合は、解除した状態を維持し、停止済みのローカルポートへアプリが接続し続けないようにしましょう。
- TUNをオフにした後、以前アクセスできたサイトやLAN内の機器に接続し、基本的な通信が復旧したことを確認します。
- クライアントが異常終了した場合は、まず再起動してTUNを通常の手順でオフにし、作成したインターフェースとルートの削除を試みてください。
- 問題が続く場合は、ログとルート情報を保存してから、OSの手順に従って端末を再起動します。仮想NICをまとめて削除したり、すべてのネットワーク設定をリセットしたりしないでください。ほかの業務用接続に影響するおそれがあります。
- 最終的に利用できたノード、ルーティングプリセット、DNS方式を記録しておきます。今後アップグレードした場合は、対象アプリの動作を再確認してから、自動起動や常時通信の取り込みを元に戻してください。
TUNの役割は、クライアントの処理経路に取り込める通信の範囲を広げることです。サブスクリプションの管理、ノードの稼働確認、ルーティング設計に代わるものではありません。基本的な設定項目は設定ガイド、ネットワークの基本的なトラブルはトラブルシューティングを参照し、順に確認してください。