TUNモードはいつ使うべき?向いている場面と使う前の確認事項

TUNモードとは
TUNモードは、仮想ネットワークアダプターを使ってシステムの通信を引き受ける動作方式です。デバイス上の通信はまずこの仮想ネットワークアダプターに入り、設定に従ってVPNで処理されます。引き受けはシステムレベルで行われるため、アプリを1つずつ指定する必要がなく、カバーする範囲はアプリ別ルーティングより広くなります。
この特徴には両面があります。利点は、コマンドラインツール、開発環境、仮想マシンなど、個別に識別しにくいプログラムの通信もまとめてVPN経由にできることです。欠点は、対象になる通信が増え、ローカルネットワークへの影響も大きくなることです。
TUNモードとシステムプロキシは何が違うのか
多くの人になじみのある「システムプロキシ」は、システム設定にプロキシのアドレスを入力し、使うかどうかは各アプリが判断する方式です。ブラウザは通常この設定に従いますが、コマンドラインツール、バックグラウンドのサービス、ゲームの中には、この設定を読み取らないものが少なくありません。その結果、同じデバイスの中でも、プロキシを通るプログラムと通らないプログラムが出てきます。
TUNモードは、アプリの協力に依存しません。通信はシステムレベルで仮想ネットワークアダプターに誘導されるので、アプリ自体はプロキシの存在を知る必要がありません。コマンドラインや開発環境でTUNモードが向いているのも、このためです。これらはシステムプロキシを読み取らないのに、VPNを経由する必要があります。
TUNモードは、なぜ通信量が増えやすいのか
対象になる通信が多いぶん、消費も増えます。TUNモードをオンにすると、自分で使っているアプリのほかに、システム更新、バックグラウンドの同期、各ソフトの自動更新確認なども、VPNを通る可能性があります。1回ごとの通信量は小さくても、積み重なると無視できません。
通信量課金では、この点に特に注意が必要です。長時間オンにしておく場合は、ときどきアカウント内の使用量を確認して、容量が予想より早く減らないようにしてください。
アプリ別ルーティングとの違い
| 比較項目 | アプリ別スマートルーティング | TUNモード |
|---|---|---|
| カバー範囲 | ルーティングの一覧にあるアプリだけ | より広いシステムの通信 |
| 設定方法 | 必要なアプリを1つずつ選ぶ | オンにすると、システムレベルでまとめて引き受ける |
| 通信量の消費 | コントロールしやすい | 通常、アプリ別ルーティングより多い |
| ローカルネットワークへの影響 | 小さい | 大きいため、直接接続の要件を先に確認する |
| 典型的なケース | ブラウザ、指定したクライアント | コマンドライン、開発環境、仮想マシン |
基本的な使い分けは、アプリ別ルーティングで解決できる問題はアプリ別ルーティングを優先し、ルーティングの一覧ではカバーできないときにだけTUNモードを検討する、というものです。
TUNモードをオンにするのに向いているケース
コマンドラインツールと開発環境
ターミナルで動かすツール、たとえば依存パッケージの取得、リポジトリのクローン、APIを呼び出すコマンドなどは、通常のアプリのようにルーティングの一覧へ加えられないことが多くあります。TUNモードをオンにすれば、これらの通信もVPNを経由するので、1つずつプロキシを設定する必要がありません。
仮想マシンやコンテナ関連の作業
仮想マシンやコンテナ内のプログラムは、特定の1つのアプリから通信が出るとは限らないため、ルーティングの一覧で正確にカバーするのは困難です。こうした作業で全体をVPN経由にしたいときは、TUNモードのほうが手間がかかりません。
ルーティングの一覧に追加できないソフトウェア
ソフトによっては識別しにくかったり、複数のサブプロセスを起動したりするため、メインのプログラムを一覧に加えても、一部の通信がローカルネットワークを通ってしまいます。このような場合は、ルーティングの一覧を何度も調整するより、TUNモードでまとめてカバーするほうがうまくいきやすくなります。
全体をVPN経由にしたい短時間の作業
たとえば、一度きりの環境構築や、デプロイの一連の流れなどです。関係するプログラムが多く、通信も雑多なので、1つずつ設定するのは現実的ではありません。こうした短時間の作業では、一時的にTUNモードをオンにし、終わったらオフにするのが向いています。
典型的な例:ターミナルで依存パッケージを取得する
たとえば、ターミナルで海外のリポジトリをクローンし、続けて複数の依存パッケージをインストールするとします。アプリ別ルーティングだけでは、ターミナル本体と、そこから起動される各サブプロセスを1つずつ一覧に加えるのは困難です。TUNモードをオンにすれば、一連のコマンドが出す通信がすべてVPNを経由するので、クローンとインストールを一度に終えられます。作業が終わったらTUNモードをオフにして、アプリ別ルーティングに戻せば十分で、ずっとオンにしておく必要はありません。
オンにする前に確認すること
TUNモードはカバーする範囲が広いため、オンにする前に、次の点を1分ほどかけて確認しておくと安心です。
- ローカルのサービスやLAN内のデバイスを直接接続にする必要がないか確認します。たとえば、手元のPCの開発サーバー、共有フォルダー、プリンターなどです。
- ほかのVPNやプロキシソフトと同時にネットワークを制御しないようにします。両方が重なると、ネットワークの異常につながることがよくあります。
- 通信量の消費に注意します。TUNモードは対象の通信が多いため、アプリ別ルーティングより早く容量を消費します。
- 作業が終わったら、必要に応じてオフにします。不要なときは、デバイスを通常のネットワーク状態に戻しておきます。
オンにしたあとに問題が起きたときの確認方法
TUNモードをオンにしたあと、あるローカルのサービスやLAN内のデバイスに急にアクセスできなくなった場合は、そのアクセスがもともとローカルネットワークに依存していなかったかを思い出してください。依存していたなら、それもVPNに巻き込まれたということです。まずTUNモードをオフにして、アプリ別ルーティングに切り替えてみてください。
ネットワーク全体が遅くなった、あるいは頻繁に切断されるという場合は、デバイス上でほかのVPNやプロキシソフトが動いていないかを確認し、どちらか一方を終了してからもう一度試します。複数のソフトが同時にネットワークを制御していることが、この種の問題のよくある原因です。
特定のアプリだけアクセスできず、ほかのアプリは正常な場合は、TUNモード自体ではなく、そのアプリ自体の設定の問題であることが多いです。いったんアプリ別ルーティングに戻して、そのアプリだけを扱うとよいでしょう。
オンにしたあと、あるアプリにネットワークが利用できないと表示される場合は、TUNモードを一度オフにして、もう一度オンにし、仮想ネットワークアダプターを作り直します。あわせて、クライアントとOSが最新バージョンに更新されているかも確認してください。確認の順序は、簡単なものから複雑なものへと進めるのがおすすめです。まずほかのソフトとの競合がないかを見て、次にローカルのサービスがVPNに巻き込まれていないかを見て、そのうえで設定そのものを疑います。
使い終わったあとの片づけ
作業が終わったら、必要に応じてTUNモードをオフにして、デバイスを通常のネットワーク状態に戻します。オフにしたあとは、ローカルのサービスやLAN内のデバイスに通常どおりアクセスできるようになったかも、ついでに確認しておくとよいでしょう。次の作業が決まった数個のアプリだけで済むなら、アプリ別ルーティングに戻したほうが、TUNモードをオンにし続けるより通信量を節約できます。
アプリ別ルーティングの使い方は、まずアプリ別スマートルーティングの使い方をご覧ください。


