TUNモードで全通信を引き受ける仕組みを詳しく解説:v2rayN・v2rayNGの設定手順

TUNモードは仮想ネットワークインターフェースでシステム上の全通信を処理し、システムプロキシを使わないアプリもプロキシ経由にできます。仕組みや違い、PC・Androidでの設定方法を解説します。

この記事の要点

この記事は、ノードには正常に接続できるものの、ゲームランチャーやコマンドラインツール、単独アプリだけプロキシを使えない方に適しています。読み終える頃には「通信を取り込む」ことと「すべてをプロキシ経由にする」ことの違いを理解し、v2rayNとv2rayNGのTUN設定を完了できます。ルーティング、DNS、権限、アプリの除外という4つの観点から問題を切り分けます。

TUNモードが通信を取り込む実際の流れ

TUNはネットワーク層で動作する仮想インターフェースです。有効にすると、システムはルーティング条件に合うIPパケットを仮想ネットワークインターフェースへ渡します。クライアントはパケットを読み取り、宛先アドレスとプロトコルを復元したうえで、ルールに従って直接接続、プロキシ、遮断を判断します。アプリから見ると、元のドメインとポートへアクセスしているだけで、ローカルのSOCKSやHTTPプロキシのポートを知る必要はありません。

システムプロキシは、よりアプリケーション層に近い場所で動作します。ブラウザーなどシステムプロキシ設定に従うソフトは、リクエストをローカルプロキシポートへ送ります。一方、一部のコマンドラインプログラム、ゲームコンポーネント、アップデーター、独自ネットワークスタックを持つソフトは設定を無視することがあります。TUNはアプリ側の対応に依存しないため、より多くの種類の通信をカバーでき、プロキシが必要なUDPリクエストにも対応できます。

アプリがリクエストを開始TUNインターフェースが捕捉宛先アドレスを識別ルールで振り分け対応するアウトバウンドを選択

「全通信の取り込み」とは、通信がクライアントの判定フローに入ることを指し、すべての接続がリモートノードを通るという意味ではありません。クライアントはドメイン、宛先IP、ローカルネットワークのセグメント、プロトコルに応じて振り分けます。たとえば家庭内ルーターには直接接続し、プロキシルールに一致するサイトはノード経由にし、DNSリクエストは指定した名前解決ポリシーで処理できます。

TUNとシステムプロキシの選び方

主にブラウザーやプロキシ設定に対応したソフトを使う場合は、システムプロキシのほうが軽量で、障害の影響範囲も小さくなります。クライアントが正常にローカルポートを待ち受け、アプリがシステム設定に従えば接続できます。システムプロキシを読み取らないプログラムも振り分け対象にしたい場合は、TUNを有効にするのが適しています。

比較項目 システムプロキシ TUNモード
取り込み位置 アプリケーション層のプロキシ設定 システムネットワーク層の仮想インターフェース
アプリのプロキシ対応 通常は必要 通常は不要
UDP対応範囲 アプリとプロキシの種類による クライアントで一元処理可能
必要な権限 通常のユーザー権限で可 インターフェース作成時にシステム権限が必要
LANアクセス 多くの場合は元の経路を維持 プライベートネットワークの除外ルールを確認
適した用途 ブラウザー、オフィスソフト、日常的なWebアクセス ゲームランチャー、ターミナルツール、単独アップデーター、UDPアプリ

切り分け中に、システムプロキシ、TUN、ルーティングモードを頻繁に同時変更しないでください。まずシステムプロキシでノードが使えることを確認し、ほかの一時的なネットワークツールを終了してからTUNだけを有効にする方法が確実です。接続状態が変わった場合、原因を仮想インターフェース、ルーティング、DNSに絞り込め、ノードそのものの問題と混同せずに済みます。

結論:取り込み範囲とプロキシ範囲は分けて考える

アプリの通信がTUNに入ったことは、通信がクライアントに処理されたことを示すだけです。最終的にノードを経由するかどうかはルーティングルールが決めます。ローカルプリンター、ルーターの管理画面、イントラネットサービスを使いたい場合は、プライベートネットワークを直接接続に設定し、TUN全体を無効にしないでください。

v2rayNでTUNモードを有効にする

以下はv2rayN 7.12.5のWindows画面を基準にしています。小さなバージョン違いでボタンの位置が変わる場合はありますが、ノードの準備、仮想インターフェースの権限許可、TUNの有効化、ルーティングモードの確認という4段階は変わりません。開始前に、通常のシステムプロキシモードでノードの遅延とWeb接続を一度テストし、ノードの障害をTUNの問題と誤認しないようにしてください。

  1. 使用可能な設定を選択。v2rayNのメイン画面で、接続テスト済みのVMessまたはVLESS設定を選び、アクティブサーバーに設定します。
  2. システムプロキシの状態を確認。TUNを初めてテストする際は、システムプロキシをいったん無効にすると、2つの取り込み方式が同時に変化することによる混乱を減らせます。
  3. TUNを有効化。メイン画面またはトレイメニューから「TUNモード」スイッチを見つけて有効にします。Windowsで権限確認が表示されたら、今回の操作を許可してください。クライアントが仮想インターフェースを作成し、ルートを書き込むために必要です。
  4. 振り分け方式を確認。「設定」→「パラメータ設定」を開き、TUN関連の設定と現在のルーティングモードを確認します。中国本土やLANへ直接接続したい場合は、ルールベースの振り分け設定を選び、「全通信の取り込み」という表示だけでアウトバウンド方式を判断しないでください。
  5. DNSとアクセス経路を確認。まず普段使うWebページにアクセスし、次にこれまでシステムプロキシに従わなかったアプリをテストします。両方が接続できたら、ルーターの管理画面やLAN機器にも引き続きアクセスできることを確認します。

v2rayNの基本チェック

画面で確認する項目
7.12.5
ローカルポート
10808
TUNの状態
有効
アクティブ設定
遅延テストに成功
プライベートネットワーク
直接接続を維持

10808は一般的なデフォルトのローカルポートです。設定を変更している場合は、パラメータ設定に表示される実際の待受ポートを確認してください。

Windowsでの確認手順

ステップ1
ノードの直接接続テスト
ステップ2
仮想インターフェースを作成
ステップ3
デフォルトルートを確認
ステップ4
ドメイン名前解決をテスト
確認する時間
最低5分

スイッチの色だけを見ないでください。継続的なアクセスとDNS名前解決が正常であることが、仮想インターフェースが安定して動作している証拠です。

動作が安定したら、必要な自動起動設定を戻して構いません。システムを再起動するたびにTUNを作成できない場合は、クライアントの起動権限と関連サービスの状態を確認してください。サブスクリプションを何度も削除する必要はありません。サブスクリプションはサーバーとプロトコルのパラメータを提供するだけで、仮想インターフェースを作成できるかどうかは端末環境の問題です。

v2rayNGでシステム全体の通信を取り込む

v2rayNGはAndroidのシステムVPNインターフェースを使って仮想ネットワークを構築し、デスクトップのTUNによる通信取り込みに近い役割を果たします。以下はv2rayNG 1.10.4の画面を基準にしています。初回起動時にシステムの接続許可ダイアログが表示されます。許可して初めて、アプリの通信がv2rayNGのルーティングとプロキシ処理に入ります。

  1. 設定をインポートして選択。サブスクリプションを更新したら、接続テスト済みのVMessまたはVLESSノードを選択します。
  2. VPN設定を確認。「設定」→「VPN設定」を開き、プロキシが必要なアプリを除外対象にしていないか確認します。初回はアプリ別の絞り込みを無効にし、まず全体の通信経路を検証するのがおすすめです。
  3. メイン画面に戻って起動。メイン画面の起動ボタンをタップします。システムがVPN接続の許可を求めたら「許可」を選び、ステータスバーにVPNが表示されてからテストしてください。
  4. ルーティングモードを確認。用途に応じてルールベースの振り分け、またはグローバルプロキシを選びます。ルールベースならLANや指定した宛先を直接接続にでき、グローバルプロキシなら取り込んだ接続の多くをプロキシのアウトバウンドへ渡します。
  5. ドメインとIPを分けてテスト。まず普段使うWebページを開いて名前解決を確認し、次に対象アプリをテストします。Webページは開くのにアプリだけ失敗する場合は、アプリ別プロキシ設定を確認してください。IPには接続できるのにドメインで失敗する場合は、DNSを重点的に確認します。

v2rayNGの通信取り込み設定

画面で確認する項目
1.10.4
システムインターフェース
VPN
MTUの目安
1500
アプリ別フィルタリング
初回テストでは無効
ルーティング方式
ルールベースの振り分け

ネットワーク環境に応じてMTUを調整する場合は、段階的にテストしてください。断片化やハンドシェイクの問題がなければ、積極的に変更する必要はありません。

モバイルネットワーク切り替え時の確認

ネットワークの変化
Wi-Fiとモバイルネットワーク
再接続
10秒待つ
ドメインテスト
ページを再度開く
アプリの制限
バックグラウンド実行を許可
バッテリー設定
強制停止を避ける

ネットワークインターフェースの切り替え後に一時的な再接続が発生するのは正常です。通信が長時間発生しない場合にのみ、接続を停止して再起動してください。

Androidのバックグラウンド制限により、画面消灯後にクライアントが停止することがあります。前面では正常にアクセスでき、画面ロック後しばらくして接続が切れる場合は、システムのアプリ設定でv2rayNGのバックグラウンド実行を許可し、バッテリー設定がネットワーク活動を制限していないか確認してください。この現象はノードのプロトコルとは直接関係ありません。

DNS、MTU、ルーティングループでエラーが起きやすい理由

TUNによってより多くの接続を一元処理すると、DNSとルーティング設定の依存関係が明確になります。ドメインはまずIPへ名前解決する必要があり、そのリクエスト自体も直接接続かプロキシ経由かを選ばなければなりません。DNSリクエストが、初期化を終えていない同じTUNインターフェースへ誤って戻されると、Webページが長時間読み込まれたり、IPを直接入力した場合だけ接続できたりすることがあります。

10808
v2rayNでよく使われるローカルポート
53
標準DNSサービスのポート
1500
一般的なネットワークMTUの目安
10秒
ネットワーク切り替え後の観察時間

MTUは、現在のインターフェースで1つのネットワーク層パケットが送信できる最大サイズを示します。数値が実際の経路に合っていないと、小さなWebページは開けても、大きなアップロードや画像、特定のハンドシェイクだけが繰り返しタイムアウトすることがあります。この場合は現在の数値を記録してから少しずつ下げてテストし、毎回1つのパラメータだけを変更してください。ノードの転送方式、セキュリティ設定、MTUを同時に変えないことが重要です。

症状 優先して確認する項目 判断方法
ドメインは開けないが、IPには接続できる DNS経路 名前解決がタイムアウトしていないか確認し、DNSリクエストがループしていないことを確認
小さなリクエストは正常だが、アップロードや画像がタイムアウトする MTUと断片化 元の値を記録し、段階的に下げて同じテストを繰り返す
有効化するとすべての接続が直ちに切れる デフォルトルートと権限 仮想インターフェースが作成され、プロキシサーバーのアドレスが誤って取り込まれていないことを確認
LAN機器にアクセスできない プライベートネットワークのルール ローカルネットワークが直接接続または除外に設定されているか確認
ネットワーク切り替え後、長時間通信がない インターフェースの再接続 10秒待ち、戻らなければ接続を再起動

結論:ノードを固定し、端末側の問題を段階的に除外する

同じノードがシステムプロキシでは使えるのにTUNで失敗する場合は、権限、ルーティング、DNS、MTUの順に確認します。先にプロトコルを変更したりサブスクリプションを繰り返し更新したりすると、変数が増えて原因を特定しにくくなります。

TUN有効化後にインターネットへ接続できない場合のチェックリスト

切り分けの要点は、障害がどの層で発生しているかを確認することです。まず仮想インターフェースが正常に作成されたかを確認し、次にデフォルトルート、DNS、最後に個別アプリとプロトコルを確認します。各手順の結果を記録すれば、複数の設定画面を行き来せずに済みます。

Windowsでは、システム標準のコマンドでインターフェース、ルート、DNSを確認できます。コマンドは状態の確認だけに使い、意味を理解しないままルートを一括削除しないでください。新しい仮想インターフェースが表示されているか、デフォルトルートの向きが適切か、ドメインの名前解決結果が返るかを重点的に確認します。

ipconfig /all
route print
nslookup example.com

ログに接続タイムアウトが出ている場合は、プロキシサーバーへの接続がタイムアウトしているのか、アウトバウンド経由で対象サイトへの接続がタイムアウトしているのかを区別します。前者はノードアドレス、ネットワーク到達性、ルーティングループが原因になりやすく、後者は対象サービス自体に到達できない可能性があります。同じDNSリクエストがログに繰り返し現れる場合は、まず名前解決経路を確認してください。

よくある問題と利用上の注意

TUNは、アプリがシステムプロキシを読み取らない場合、UDPを一元的に処理したい場合、宛先ルールで通信を振り分けたい場合に適しています。ノード自体の帯域幅、遅延、到達性を改善するものではなく、誤ったサーバーアドレス、ポート、認証情報、転送パラメータを修正することもできません。

TUNを有効にした後もシステムプロキシをオンにする必要がありますか?

通常、両方を同時に使う必要はありません。初回設定ではシステムプロキシを無効にし、TUN単独で確認することをおすすめします。二重に通信を取り込むと切り分けが難しくなるためです。特定の作業でシステムプロキシが必要な場合は、TUNが安定してから1項目ずつ戻してください。

TUNモードならすべてのWebサイトがプロキシ経由になりますか?

いいえ。TUNは条件に合う通信をクライアントへ渡し、その後ルーティングルールが直接接続、プロキシ、遮断を決めます。ルールベースの振り分けでは、LANや指定した宛先を直接接続にできます。

有効化するとルーターの管理画面にアクセスできないのはなぜですか?

多くの場合、プライベートネットワークが直接接続になっていません。現在のLANアドレス範囲(例:192.168.0.0/16や10.0.0.0/8)を確認し、これらの宛先がリモートプロキシへ送られていないことを確認してください。

Webページは正常なのに、特定のアプリだけ通信できないのはなぜですか?

まずv2rayNGのアプリ別プロキシリスト、またはアプリ自身のネットワーク制限を確認します。アプリがUDPを使う場合は、現在のノード、コア設定、ルーティングルールが該当する通信を許可していることも確認してください。

ノードを切り替えたらTUNを再起動する必要がありますか?

ほとんどの場合、クライアントが新しいアクティブ設定を適用します。切り替え後も古い接続が長時間残る場合やDNS結果が更新されない場合は、接続を停止して数秒待ち、再起動してから同じ宛先を再度テストしてください。

安定した設定かどうかは、スイッチが点灯するかではなく、継続利用中のドメイン名前解決、Webアクセス、対象アプリ、LAN接続が期待どおり動作するかで判断します。確認後は現在のルーティングとDNS設定を保存しておくと、後で問題が起きたときに基準設定と比較できます。

v2rayNをダウンロード4つのプラットフォーム向けパッケージを確認