Cursorだけ接続できないときに最初に確認すること
Clashを有効にするとブラウザは正常に通信できるのに、Cursorだけが接続タイムアウトになる、AI補完がいつまでも開始されない、ログイン画面が読み込み中のまま進まないという現象があります。この場合、ノード全体が停止しているとは限りません。Cursorは通常のウェブ閲覧だけでなく、認証、設定同期、拡張機能、AIリクエストなど複数の接続を使うため、1つの宛先だけが誤ったルールやプロキシ設定に入るとアプリ全体が使えないように見えます。
特に多い原因は、Clashのシステムプロキシ設定とCursor側のプロキシ設定が一致していないこと、ルールモードで必要な接続が DIRECT に送られていること、ノードのTLS接続やDNS解決が不安定なこと、TUNモードと他のVPNアプリが競合していることです。まず「すべての通信が遅いのか」「Cursorだけが失敗するのか」を分けると、確認すべき範囲を大幅に絞れます。
- ブラウザも開けない: ノード、Clashのポート、システムプロキシ、ネットワーク自体を先に確認します。
- ブラウザは開けるがCursorだけ失敗する: Cursorのプロキシ継承、ルールマッチ、証明書検証、アプリ固有の接続を確認します。
- ログインだけ失敗する: 認証用の接続が別のドメインや別ポートを使っている可能性があります。
- ログイン後のAI補完だけ遅い: AIリクエストの宛先が別ノードに送られている、またはノードの遅延・帯域・接続維持に問題がある可能性があります。
最初からTUN設定を変更しない
接続タイムアウトの原因がルールやノード選択なのに、いきなりTUNのスタックやDNSを変更すると、問題が複雑になります。まずは1つのノードを選び、システムプロキシとルールモードを確認し、Clashの接続ログでCursorの通信がどこへ送られたかを調べてください。
プロキシモードとCursorの設定を確認する
Clashのプロキシモードには、一般にルール、グローバル、ダイレクトがあります。ルールモードは設定ファイルの rules を上から順番に評価し、最初に一致した出口へ接続を送ります。グローバルモードは通常、選択したプロキシグループへ大部分の通信を送るため、ルールの誤判定を切り分けるテストに向いています。ダイレクトはプロキシを使わないため、Cursorの通信確認には適していません。
まずClashで動作確認用のノードを1つ選択し、モードをグローバルに変更してCursorを完全に終了します。Windowsならタスクトレイから終了した後、タスクマネージャーに残ったプロセスも確認します。macOSではメニューバーのクライアントを終了し、必要ならアクティビティモニタでプロセスが残っていないことを確認します。その後、Clashを有効にした状態でCursorを再起動してください。グローバルモードで接続できるなら、ノードよりもルールの問題である可能性が高くなります。
次に、Clashの「General」「設定」「System Proxy」などの画面でシステムプロキシが有効か確認します。HTTPポートとSOCKSポートはクライアントによって異なりますが、典型的にはHTTPが 7890、SOCKSが 7891 です。実際の値は必ずClashの設定画面で確認してください。Cursor側に手動プロキシ欄がある場合は、Clashが待ち受けているプロトコルとポートを一致させます。HTTPプロキシの欄にSOCKSポートを入力する、またはその逆にすると、ブラウザは動いてもCursorだけがタイムアウトすることがあります。
| 確認項目 | 正常な状態 | 問題がある場合の症状 |
|---|---|---|
| Clashのモード | 切り分け時はグローバル、通常運用はルール | ルールモードだけCursorがタイムアウトする |
| システムプロキシ | ClashのHTTPプロキシがOSに反映されている | ブラウザやCursorが直接接続する |
| Cursorのプロキシ | 自動継承または正しいHTTP/SOCKS設定 | 接続待ちが続き、ログイン画面が完了しない |
| プロキシポート | Clashの実際の待受ポートと一致 | 接続拒否、タイムアウト、再試行を繰り返す |
| 他のVPN | 同時に有効なVPNやプロキシがない | 接続経路が二重になり、通信が不安定になる |
Cursorが環境変数やOSのプロキシを参照する構成では、アプリを起動した時点の設定が使われる場合があります。Clashのシステムプロキシを後からオンにした場合は、Cursorを再起動してください。また、会社や学校のネットワークでTLS検査が行われている場合、プロキシを指定しても証明書検証に失敗することがあります。このケースでは、証明書検証を無効にする設定を安易に追加せず、管理ネットワークの証明書ポリシーを確認してください。
ルールと接続ログで失敗箇所を特定する
ルールモードでだけ失敗する場合は、Clashの接続ログを開いたままCursorを起動し、ログインまたはAI補完を一度実行します。ログには接続先のホスト名、使用されたルール、選択された策略グループ、接続の成功・失敗が表示されます。ここで重要なのは、ブラウザで開いたページのログではなく、Cursorのプロセスが発生させた接続を確認することです。
必要な接続が DIRECT に入ってタイムアウトするなら、そのドメインを適切なプロキシグループへ送るルールを追加します。反対に、認証や更新のためのローカル・社内宛て通信までプロキシへ送っている場合は、LANや社内ドメインを先に DIRECT にします。ルールは上から評価されるため、広すぎる DOMAIN-KEYWORD や早い位置の MATCH,DIRECT があると、後ろに追加したルールは一切使われません。
rules:
- DOMAIN-SUFFIX,local,DIRECT
- IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- DOMAIN-SUFFIX,example.invalid,PROXY
- MATCH,PROXY
上の例では、example.invalid は実在サービスを示さない確認用のドメインです。実際の設定では、Clashのログに表示された必要な宛先をサービス提供元の案内に従って追加してください。ドメイン名を推測して大量に登録するより、ログで実際に失敗している宛先を1件ずつ確認するほうが誤設定を防げます。
ルールを追加しても反映されない場合
サブスクリプションから読み込んだ設定を直接編集している場合、更新時に変更が消えることがあります。クライアントの「Profiles」「設定編集」「オーバーライド」などの機能を使い、管理対象の設定を上書きする形で追加してください。編集後は設定を保存し、現在有効なプロファイルを再読み込みします。
DNSとノードを別々に確認する
ログに「名前解決に失敗」「TLS handshake timeout」「connection reset」などが出る場合、原因は同じタイムアウトでも異なります。名前解決の失敗ならDNS、TLS handshake timeoutならノードの到達性や混雑、connection resetなら途中の切断やプロトコル相性を優先して確認します。ClashのDNS機能を有効にしている場合、fake-ip と redir-host の違いも影響します。Cursorのようにアプリ内で複数の接続方式を使うソフトでは、まず互換性の高い redir-host で動作を確認し、問題がなければ通常のDNS構成へ戻す方法が安全です。
同じノードでブラウザもCursorも失敗するなら、別のノードへ切り替えて比較します。1つのノードだけで失敗する場合は、そのノードの遅延、ポート、TLS設定、サーバー側の混雑が疑われます。複数ノードでCursorだけ失敗する場合は、Clashのルール、アプリのプロキシ継承、TUNまたは証明書環境を優先してください。
実際に行う切り分け手順
ここでは設定を一度に変えすぎないよう、変更と確認を分けて進めます。各段階でCursorを再起動し、接続ログに変化があるかを記録してください。ノード名、モード、エラーの種類、発生時刻を書き留めると、元の設定へ戻すときにも役立ちます。
- 他のVPN、プロキシ拡張、ネットワーク監視ツールを終了し、Clashだけを起動します。Clashの接続テストで選択ノードが応答することを確認します。
- Clashのモードをグローバルに変更し、HTTPプロキシのポートを確認します。システムプロキシをオンにした後、Cursorを完全終了してから起動します。
- ログイン画面、設定同期、AI補完を順番に試します。グローバルで成功した場合は、ノードではなくルールの問題として次へ進みます。
- ルールモードへ戻し、Cursorを起動して接続ログを監視します。失敗した接続のホスト名、ルール名、出口グループ、エラー内容を記録します。
- 必要な宛先が
DIRECTなら、対象を限定したDOMAINまたはDOMAIN-SUFFIXのルールを追加し、広いキーワードルールより前に配置します。 - DNSエラーが出る場合は、ClashのDNSを一時的に確認し、nameserver、fallback、fake-ipの設定を見直します。DNSだけを理由なく複数追加しないでください。
- システムプロキシで改善しない場合だけTUNをテストします。TUNを有効にする前に、別のVPN、仮想ネットワークアダプター、セキュリティソフトのネットワーク保護を確認します。
- 最後に、変更を1つずつ元へ戻して再現条件を確認します。原因が特定できたら、動作した設定をバックアップとして保存します。
TUNは、システムプロキシを利用しないアプリの通信も仮想ネットワークインターフェースで取り込む仕組みです。CursorがOSのプロキシ設定を無視している場合には有効ですが、TUNをオンにしただけで必ず直るわけではありません。mihomo系の設定では、たとえば次のような項目が関係します。
tun:
enable: true
stack: mixed
auto-route: true
auto-detect-interface: true
dns-hijack:
- any:53
この設定例は概念確認用です。クライアントのGUIが生成する設定や、利用中のカーネルが対応している項目を優先してください。Windowsではサービスモードや管理者権限、macOSではネットワーク拡張の許可が必要になることがあります。TUNとシステムプロキシを同時に使う場合、クライアントによっては同じ通信が二重に処理され、遅延やループが発生するため、まず一方だけでテストするのが安全です。
よくある症状別の対処方法
- ログイン画面が終わらない: グローバルモードで認証関連のログを確認し、ブラウザ認証後に戻る処理がファイアウォールで遮断されていないか調べます。認証用ブラウザとCursorで異なるプロキシが使われている場合もあります。
- AI補完だけタイムアウトする: ログイン用通信とAI用通信が別の宛先である可能性があります。接続ログを分けて確認し、AIリクエストだけ別の策略グループへ入っていないか確認します。
- 入力中の補完が非常に遅い: ノードの遅延だけでなく、パケットロスや長時間接続の切断も確認します。複数のノードで短い入力テストを行い、最も安定するノードを選びます。
- Clashを終了すると直る: システムプロキシが残っている可能性があります。Clash終了後もOSのプロキシ設定にlocalhostとポートが残っていないか確認し、必要なら自動設定へ戻します。
- 再起動後だけ再発する: 起動順序、プロファイルの自動更新、TUNサービスの権限を確認します。古いプロファイルが自動選択されていないかも確認してください。
証明書検証を無効にして解決しない
TLSエラーを見て、設定全体の証明書検証を無効にするのは推奨できません。原因がシステム時刻、企業ネットワークの証明書、ノードのTLS設定、古いクライアントのいずれかを確認し、必要な範囲だけを修正してください。認証情報を扱う通信では、検証を無効にすると別の安全上の問題が発生します。
CursorとClashに関するFAQ
ブラウザが使えるのに、なぜCursorだけタイムアウトしますか?
ブラウザはOSのシステムプロキシを使っていても、Cursorが独自のプロキシ設定、環境変数、内蔵ネットワークライブラリを使っている場合があります。また、ログイン、同期、AI補完で異なる宛先へ接続するため、ブラウザで確認できた経路がCursorの全通信を保証するわけではありません。グローバルモード、Cursorの再起動、接続ログの確認を順番に行ってください。
ルールモードとグローバルモードのどちらを使うべきですか?
原因の切り分けではグローバルモードが便利です。グローバルで接続でき、ルールで失敗するなら、必要な宛先が誤ってDIRECTへ送られている可能性があります。通常運用では、国内やLANを直接接続し、必要な外部通信だけをプロキシへ送るルールモードのほうが管理しやすくなります。
TUNを有効にすれば必ず接続できますか?
TUNはシステムプロキシを使わないアプリを取り込むのに有効ですが、ノード障害、DNS設定、誤ったルール、VPNの競合を自動的に解決する機能ではありません。まずシステムプロキシで原因を切り分け、必要な場合だけTUNを有効にしてください。TUN使用時は管理者権限、DNS hijack、IPv6、他の仮想アダプターも確認します。
設定を変更してもタイムアウトが直りません。次に何を確認しますか?
変更した設定を一度に戻し、別のノード、別のネットワーク、別のモードで比較してください。Clashのログにエラーが出ていない場合は、Cursor側のプロキシ継承やファイアウォール、証明書環境を確認します。ログインだけ、AI補完だけなど機能ごとに再現条件を分けると、必要な接続を特定しやすくなります。
Clashの動作環境を整える
Cursorの接続問題は、ノード、モード、ルール、DNS、TUNを順番に切り分けると原因を見つけやすくなります。クライアントやカーネルが古い場合は、対応状況を確認したうえで更新し、設定をバックアップしてから再テストしてください。