この AIコーディングツール向け VPN ガイドは、クライアントの画面がきれいかどうかではなく、リクエストの性質で回線を並べています。Cursor、GitHub Copilot、各種コマンドライン AI ツールは、見た目はどれも「質問して答えをもらう」形ですが、ネットワーク上では3種類の異なるトラフィックです。インライン補完はキー入力のたびに発火し、チャット生成は途切れないストリーミング応答、Agent モードはツール呼び出しを伴う長いタスクの連続です。回線を間違えると、症状は「少し遅い」ではなく、生成が途中で止まったり、再試行を3回押すことになったりします。
結論から書きます。AIコーディングでは、ピーク帯域よりも長接続の安定性とパケットロスを見るべきです。補完に必要なのは初回応答の速さ、チャットと Agent に必要なのは生成が終わるまで接続が切れないこと。この2つは回線への要求が異なり、同じ回線が2つの場面でまったく逆の結果になることもあります。
まず3種類のリクエストを整理し、そのうえで回線を選ぶ
Cursor と Copilot の違いは、半分は機能設計、半分はリクエストのリズムにあります。Copilot の強みはエディタ内のインライン補完で、頻繁に発火し1回の返答は短く、補完1回が独立した短い接続になります。Cursor は補完に加えて、チャット、コードベース検索、Agent の多段実行を同じクライアントに載せており、長いタスクの比率が高くなります。コマンドラインツールにはエディタ画面がありませんが、1つのコマンドが長時間のストリーミング出力に対応することはよくあります。
| リクエスト種別 | 発生のきっかけ | 接続の形 | 切断時の影響 | 回線選びの要点 |
|---|---|---|---|---|
| インライン補完 | 編集の停止後に自動で発火 | 短い接続、高頻度 | 補完が表示されず、もう一度入力が必要 | 初回応答の遅延、ハンドシェイクのコスト |
| チャット生成 | 手動での質問 | 1本のストリーミング応答、生成完了まで継続 | 出力が途切れ、再生成で利用枠を消費 | 長接続の安定性、ジッタ |
| Agent とコマンドライン | 多段タスク、ツール呼び出し | 何度も往復し、数分間続く | コンテキストの再実行で所要時間が倍に | パケットロス率、再接続の速さ |
この表はよくある現象を説明します。適当に選んだ回線でも補完はそれなりに動くのに、Agent になると頻繁に失敗する。補完は毎回新しい接続なので、失敗しても1文字打ち直せば済みます。しかし Agent の接続が一度切れると、それまで読んだファイルも実行したコマンドもやり直しになり、代償はまったく違います。逆に短い接続が多い場面では、ハンドシェイクと TLS ネゴシエーションの比率が高くなり、回線の往復遅延が補完のたびに積み重なります。
専用線、中継、直結の実際の違い
回線の種類は、国境をまたぐ区間をどう通るかを決めます。同じ「つながった」でも、3つの経路は夜のピーク時間帯に最も差が出ます。
- 専用線 越境区間は通信事業者の専用線(IEPL など)を通り、公共の国際出口を経由しないため、ジッタは最小でコストは最も高くなります。通常は帯域に応じた課金です。
- 中継 中国本土側の入口ノードから海外の出口へ接続し、越境区間は最適化された経路を通ります。価格と安定性は両者の中間で、体感は入口と出口のあいだのスケジューリング品質で決まります。
- 直結 クライアントが海外のデータセンターへ直接接続します。経路は最短で価格も最安ですが、越境区間は公共の出口を奪い合うため、夜のピーク時間帯の変動が最も大きくなります。
AIコーディングの場面に当てはめると、Agent と長時間のチャットを専用線で動かすのが、途中でリセットされる確率は最も低くなります。日常の補完や軽い質問は中継で十分です。直結は予備として、また「回線の問題かサーバー側の問題か」を見分ける用途にも向いています。直結でも同じように失敗するなら、原因は回線ではない可能性が高いです。
昼間に測るとどの回線も同じに見えますが、夜8時を過ぎると差が開きます。コードを書くのに向いた回線かどうかは、勤務時間に測るのではなく、実際に腰を据えてコードを書く時間帯に測ってください。
プロトコルの設定:よく使う方式の役割分担
プロトコルは回線の外殻であり、ハンドシェイクの方法、暗号化の方式、そしてトラフィックがネットワーク上でどう見えるかを決めます。「最強のプロトコル」は存在せず、目の前のネットワーク条件に合うプロトコルがあるだけです。以下はクライアントで最もよく見かける種類で、役割もそれぞれ異なります。
| プロトコル | 転送と暗号化 | 特徴 | 向いている AI 用途 |
|---|---|---|---|
| Shadowsocks | TCP / UDP、AEAD 暗号化 | ハンドシェイクが軽くオーバーヘッドが小さい。HTTPS への偽装はしない | 補完のような短いリクエスト |
| VMess | TCP、WebSocket、gRPC などの転送に対応し、暗号化と時刻検証を備える | エコシステムが成熟し設定項目も多い。クライアントとサーバーの時刻ずれが大きいと認証に失敗する | 汎用的な用途 |
| VLESS | TLS に依存し、XTLS や REALITY と組み合わせることが多い。プロトコル自体は暗号化しない | オーバーヘッドが低く、Vision と組み合わせると TLS ハンドシェイクの繰り返しを減らせる | 長接続のストリーミング生成 |
| Trojan | HTTPS に偽装し、ドメインと証明書に依存する | 通常の Web トラフィックと同じポートを使い、能動的な探査に強い | 安定した TLS が必要な環境 |
| Hysteria2 | QUIC ベースで UDP 上を走る | パケットロスに強く、弱い回線でも安定。UDP は速度制限や遮断を受けることがある | モバイル回線、パケットロスが多い経路 |
| TUIC | QUIC ベースで多重化に対応 | 接続確立が速い。こちらも UDP が使えることが前提 | 多数のリクエストの同時実行 |
実際の設定では、プロトコルは層のひとつにすぎません。同じ VLESS でも、WebSocket + TLS と REALITY では夜のピーク時間帯の挙動が変わることがあります。同じ Hysteria2 でも、収容するデータセンターが違えばパケットロスへの強さも変わります。ですから「プロトコルを変えれば解決」と考えるのは禁物で、まず出口と転送方式を確認し、そのうえでプロトコルを論じてください。
Hysteria2 と TUIC はどちらも UDP 上で動くため、一部のネットワークでは UDP が速度制限されたり、そのまま破棄されたりします。「つながるのに速度が出ない」あるいは再接続を繰り返す場合は、まず TCP 系の VLESS や Trojan に切り替えて比較し、それから残すかどうかを決めてください。
切断とタイムアウト:原因を具体的な工程まで絞り込む
「生成が途中で止まった」は結果であって原因ではありません。よくある原因は3種類で、切り分けられれば対処はすぐです。
- 経路のパケットロス:ランダムに途切れ、同じプロンプトで何度試しても毎回違う位置で切れます。
- 分流ルールが誤った出口へ送っている:特定のドメインだけ失敗し、他のサービスは正常です。
- DNS 解決の問題:最初のリクエストだけ極端に遅い、あるいはドメイン解決の失敗がそのまま出ます。
順番に切り分けるほうが、ノードを何度も替えるより効果的です。
- まず範囲を見ます。1つのドメインだけ失敗するなら、分流ルールがそれを直結リストに入れている可能性が高いです。
- 次にランダム性を見ます。同じプロンプトで何度試しても毎回違う位置で切れるなら、ほぼ経路のパケットロスです。クライアントを替えるより回線を替えるほうが効きます。
- 最後に最初のリクエストを見ます。1回目だけ遅くて後は正常なら、DNS 解決がプロキシを通っていないか、解決結果が実際の出口と食い違っているのが原因です。
DNS リークは AIコーディングでは具体的な症状として現れます。クライアントがドメインを国内の ISP に解決させると、返ってくるのは自分に最も近いノードで、実際には海外の出口からアクセスしているため、CDN の振り分けが遠い側に落ちます。結果として接続は確立できても、初回応答が明らかに遅くなります。対処はクライアントで DNS をプロキシ経由(DoH またはプロキシ側の解決)にし、分流ルールで AI サービスの API ドメインが直結と誤判定されていないか確認することです。
分流ルールも個別に確認する価値があります。中国本土のサイトは直結、海外はプロキシ経由というのが一般的な設定ですが、AIコーディングツールの API ドメインは大手のメインドメイン配下にあることが多く、ルールに誤判定されがちです。もうひとつ見落とされやすいのがターミナルです。システムプロキシはシステム設定に従うプログラムしかカバーせず、ターミナルの curl、git、コマンドラインツールは従わないことがよくあります。この場合は TUN モードを有効にしてすべてのトラフィックを引き取る必要があります。そうしないとエディタはプロキシ経由、ターミナルは直結となり、同じタスクの中で出口が2つに分かれて切り分けが非常に面倒になります。
各プラットフォームのクライアントの違いと読み込み手順
Windows、macOS、iOS、Android、Linux の5プラットフォームの違いは、主に「どうやってトラフィックを引き取るか」で、画面の作りではありません。
- Windows:システムプロキシはシステム設定に従うプログラムにしか効かず、ターミナルや一部のツールは従いません。すべてのトラフィックを引き取りたいときは TUN モードを有効にします。
- macOS:初回インストール時にネットワーク拡張の許可が必要で、許可しないと接続が確立できません。許可後の挙動は Windows の TUN モードに近くなります。
- iOS:システムのネットワーク拡張で接続を確立します。バックグラウンドに回ると回収されやすいため、長時間の生成タスクはできるだけ前面に置いてください。
- Android:システムの VPN サービスでトラフィックを引き取ります。クライアントを省電力のホワイトリストに入れておかないと、画面オフ後に接続が切られます。
- Linux:一般にはカーネルの TUN か tun2socks を使います。エディタ、ターミナル、git が同じネットワーク環境に入るため、分流ルールは自分で管理する必要があります。
サブスクリプションの読み込み手順は各プラットフォームでほぼ同じです。順番に進めてください。
- ログイン後、管理画面でサブスクリプションリンクをコピーします。公開リポジトリや issue、スクリーンショットに貼らないでください。
- クライアントで「クリップボードから読み込み」は「サブスクリプション」を選、リンクを貼り付けてノード一覧を更新します。
- まず遅延を一通り測り、候補を2〜3本に絞ってから、1本ずつ実際に接続して生成を走らせます。
- 分流ルールを開き、AI サービスの API ドメインがプロキシ経由、中国本土のサイトが直結になっていることを確認します。
- curl またはクライアントのログで、出口と解決結果が一致していることを確認し、DNS リークを避けます。
再現できる比較テストの方法
回線を比較するときは変数を固定します。同じマシン、同じ時間帯、同じプロンプト、同じモデルで、毎回回線だけを替えます。まず curl 1本で接続確立の各段階を分解して見ます。
curl -N -sS -o /dev/null \
-w 'dns=%{time_namelookup} tcp=%{time_connect} tls=%{time_appconnect} ttfb=%{time_starttransfer}\n' \
-H "Authorization: Bearer $AI_API_KEY" \
https://api.openai.com/v1/models
URL はよく使うツールの API ドメインに置き換えてください。4つの数値はそれぞれ DNS 解決、TCP ハンドシェイク、TLS ハンドシェイク、初回応答の返却に対応します。補完のようなリクエストの総所要時間はおおよそ最初の4項目の合計です。ストリーミングのリクエストでは、接続確立後にデータが途切れずに返り続けるか、途中に長い空白がないかを見ます。
- ✅ 同じ時間帯で比較:少なくとも夜のピーク時間帯を1回は含め、午前中だけで測らない。
- ✅ 同じプロンプト:毎回の出力長を近づけないと、生成時間を比較できない。
- ✅ 切断位置を記録:何番目の段落で切れたか、再現するかどうかは、「なんとなく重い」よりはるかに役に立つ。
- ✅ 少なくとも1回は再測:回線の品質は時間帯で変わるので、1回の結果は参考程度に。
- ❌ クライアント表示の遅延だけで判断しない。あれはノードのハンドシェイクを測っているのであって、このストリーミング接続の実力ではない。
- ❌ 1回の失敗で回線を切り捨てない。まず分流と DNS の2つの変数を除外する。
回線をプランと通信量に落とし込む
回線を選んだら、利用枠も見ておきます。AIコーディングの通信量は動画視聴とは構造が違い、リクエスト本体は小さくレスポンスは大きいので、1日を通しても通常はそれほど多くありません。ただし Agent がファイルを繰り返し読み、コンテキストを何度も貼り付けると明確に増えます。月額プランは通信量で3段階に分かれ、通信量は契約開始日ごとに毎月リセットされます。途中でアップグレードした場合、差額は残り日数に按分され、次の周期まで待つ必要はありません。
| 種類 | 料金 | 通信量 | 説明 |
|---|---|---|---|
| 月額プラン | ¥9.9 / 月 | 60GB | 通信量は契約開始日に毎月リセット |
| 月額プラン | ¥18 / 月 | 250GB | 通信量は契約開始日に毎月リセット |
| 月額プラン | ¥28 / 月 | 500GB | 通信量は契約開始日に毎月リセット |
| 通信量パック | ¥158 | 300GB | 使い切るまで有効、期限なし |
| 通信量パック | ¥358 | 1000GB | 使い切るまで有効、期限なし |
| 通信量パック | ¥658 | 3000GB | 使い切るまで有効、期限なし |
デバイス数は無制限で、エディタ、ターミナル、モバイルが同時にオンラインになれます。「会社の PC と自宅のマシン」という使い方にはより現実的です。登録に必要なのはユーザー名とパスワードだけで、メールアドレスは不要です。支払いは Alipay、WeChat、USDT に対応しています。初回のお支払いから60日以内であれば理由を問わず全額返金を申請できるので、まずメイン回線で丸1日の業務を走らせてから決めることもできます。
タイトルの比較に戻りましょう。Cursor と Copilot のどちらが使いやすいかは、クライアントそのものよりも、どの回線を与えるかで大きく変わります。リクエストの性質、回線の種類、プロトコル、DNS の4つをそれぞれ確認してからプランと利用枠を論じるほうが、クライアントを何度も替えるより答えに近づきます。