チュートリアル Clash初心者 VPNとの違い プロキシ入門

Gemini CLIがClashで使えない?接続タイムアウトの直し方

2026年7月21日 更新日:2026年7月21日 読了目安:約10分

Gemini CLIがClashで接続タイムアウトになる理由

Gemini CLI を起動したときに、認証画面が開かない、モデル一覧を取得できない、または connection timeout と表示される場合があります。Clashをオンにしているからといって、すべての通信が自動的に正しい経路を通るとは限りません。コマンドラインツールはブラウザと異なる通信方式を使うため、ブラウザではGeminiを利用できるのに、Gemini CLIだけが失敗するケースも珍しくありません。

主な原因は、Clashの動作モード、Gemini関連ドメインのルール、DNS解決、ノードの品質、そしてCLIが参照する環境変数の不一致です。特に、システムプロキシだけを有効にしている状態では、ターミナルから直接送信されたHTTPS通信がClashを経由しないことがあります。本記事では、設定を闇雲に変更するのではなく、どの段階で通信が止まっているかを確認しながら、再現性のある切り分け方法を説明します。

この記事の目標

Gemini CLIの通信をClashで正しく捕捉し、認証、API接続、DNS、ノードのどこに問題があるかを短時間で特定できる状態を目指します。

1最初に確認する環境とエラーの種類

いきなり設定ファイルを書き換える前に、使用しているクライアントとコアを確認しましょう。Clash Verge RevなどのGUIを使っている場合は、Profilesで現在有効なプロファイルを開き、Mihomo(Clash.Meta)コアが実際に起動しているかを確認します。プロファイルを読み込んだだけで、Clashのサービスやシステムプロキシが起動していない場合もあります。

  • Clashの状態: プロキシサービスが起動し、ModeがRule、Global、Directのどれになっているかを確認します。
  • CLIの状態: Gemini CLIのバージョン、Node.jsなどの実行環境、ログイン済みのアカウントを確認します。
  • エラーの内容: DNSエラー、TLSエラー、認証エラー、単純なタイムアウトを区別します。
  • 接続先: ブラウザのGeminiとCLIのAPI通信は、同じドメインだけを使用するとは限りません。

たとえば「名前解決に失敗した」という表示ならDNSを優先して調べます。「401」や「403」であれば、プロキシ経路よりもAPIキー、ログイン状態、アカウント権限の確認が先です。一方、長時間待った後にタイムアウトする場合は、通信がDIRECTへ流れている、ノードが応答しない、またはCLIがプロキシ設定を受け取っていない可能性が高くなります。

先に切り分けるポイント

Gemini CLIのアカウント制限やAPI利用条件は、Clashの設定だけでは解決できません。認証エラーとネットワークエラーを混同しないようにしましょう。

2ClashのモードとCLIプロキシを確認する

最も多い原因は、Clashは起動しているものの、Gemini CLIの通信がプロキシへ送られていないことです。通常のブラウザはOSのシステムプロキシを自動的に利用しますが、ターミナル上のプログラムは環境変数を参照するか、独自のHTTPクライアントを使います。そのため、まずClash側のModeを一時的に Global に変更し、同じコマンドを再実行してください。

Globalモードで接続できるなら、ノードとClash本体は動作しています。次にRuleモードへ戻し、対象ドメインのルールを追加します。Globalでも失敗する場合は、ノードの応答、ポート番号、ファイアウォール、またはCLI側のプロキシ指定を調べます。

ターミナルからプロキシを指定する例

ClashのMixed Portが 7890 の場合、シェルで次の環境変数を設定してからGemini CLIを起動します。

# HTTP / HTTPS 通信をClashへ送る export HTTP_PROXY=http://127.0.0.1:7890 export HTTPS_PROXY=http://127.0.0.1:7890 # 大文字の変数しか参照しないツールへの対策 export http_proxy=$HTTP_PROXY export https_proxy=$HTTPS_PROXY # 環境変数を確認 env | grep -i proxy

ただし、すべてのCLIやNode.jsライブラリがこの変数を同じように扱うわけではありません。設定後も変化がない場合は、Clash Verge RevのSystem Proxyを有効にし、後述するTUNモードを試してください。プロキシを二重に設定すると挙動が不安定になることもあるため、検証時は一度に一つの方法だけを使うのが安全です。

3Gemini関連ドメインをRuleで振り分ける

Ruleモードを使う場合、Gemini CLIが接続するドメインをプロキシグループへ明示的に割り当てます。サービス構成や地域によって接続先は変わるため、ここでは代表的なドメインを例にします。実際のログで確認できたドメインを優先し、不要なキーワードルールを増やしすぎないでください。

proxy-groups: - name: Gemini type: select proxies: - Auto - Proxy-01 - DIRECT rules: - DOMAIN-SUFFIX,googleapis.com,Gemini - DOMAIN-SUFFIX,generativelanguage.googleapis.com,Gemini - DOMAIN-SUFFIX,accounts.google.com,Gemini - DOMAIN-SUFFIX,oauth2.googleapis.com,Gemini - DOMAIN-SUFFIX,googleusercontent.com,Gemini - MATCH,DIRECT

プロファイルによっては、すでにGoogle関連のルールや外部Rule Providerが読み込まれており、上のルールが適用されない場合があります。Clashのルールは上から順番に評価されるため、広いルールより前に置くことが重要です。管理画面のConnections、Logs、Trafficなどで、対象ドメインが実際に Gemini グループへ送られているかを確認してください。

ルール設定のポイント

最初からGoogle全体をプロキシにするのではなく、ログに表示されたドメインを一つずつ追加します。Google Driveや社内サービスまで海外ノードへ送ると、速度低下やログイン確認の増加につながります。

4実際に行う切り分け手順

ここでは、Windows、macOS、Linuxで共通して使える確認手順を紹介します。設定を変更したら、必ず同じコマンドを使って結果を比較してください。複数の項目を同時に変更すると、どの操作が効果をもたらしたのか分からなくなります。

5段階のテスト
  1. Clashを起動し、利用可能なノードを一つ選択します。まずは自動選択ではなく、応答が安定しているノードを固定します。
  2. ClashのModeをGlobalに変更し、ブラウザでGoogleの関連ページが開くことを確認します。
  3. ターミナルでプロキシ環境変数を設定し、DNSとHTTPSの疎通を確認します。
  4. Ruleモードへ戻し、Clashの接続ログでGemini関連ドメインの経路を確認します。
  5. 最後にSystem Proxyをオフにした状態でTUNモードを有効にし、CLIを再実行します。
# DNS解決の確認 nslookup generativelanguage.googleapis.com # HTTPS接続の確認 curl -I --proxy http://127.0.0.1:7890 \ https://generativelanguage.googleapis.com # 詳細ログを表示して接続先を確認 curl -v --proxy http://127.0.0.1:7890 \ https://generativelanguage.googleapis.com

nslookupは成功するのにcurlが失敗する場合、DNSではなくプロキシまたはノードの問題です。逆に、プロキシ経由のcurlは成功してGemini CLIだけが失敗するなら、CLIが環境変数を無視している、証明書検証に失敗している、または別のエンドポイントを利用している可能性があります。Clashのログに通信自体が出ない場合は、CLI側からClashへ到達していません。

5DNS、TUNモード、ノード品質を改善する

ルールが正しくても、DNSが不安定だったりノードのTLS接続が途中で切れたりすると、Gemini CLIはタイムアウトします。Mihomoを使用している場合は、DNSをClashで処理する設定を検討してください。家庭内ルーターや別のDNSサービスへ任せたままにすると、名前解決だけが別経路になり、プロキシ接続との整合性が崩れることがあります。

dns: enable: true enhanced-mode: fake-ip nameserver: - https://1.1.1.1/dns-query - https://dns.google/dns-query fallback: - https://1.0.0.1/dns-query fallback-filter: geoip: true

fake-ipで特定のアプリが動かなくなる場合は、無理に固定せず、fake-ip-filterで除外対象を調整してください。DNS設定を変更した後は、OSやClashのDNSキャッシュをクリアし、古い解決結果を使っていない状態で再テストします。

System Proxyや環境変数で捕捉できない通信には、TUNモードが有効です。Clash Verge RevでTUNを有効にする場合は、管理者権限、仮想ネットワークアダプター、Auto Routeの状態を確認します。WindowsのセキュリティソフトやmacOSのネットワーク許可がTUNインターフェースを遮断していると、Clashが起動していても通信は成立しません。

TUNモードの注意

TUNは端末全体の通信を捕捉するため、国内サービスや社内ネットワークまでプロキシへ送ることがあります。作業前に既存のVPNを停止し、必要な除外ルールとDNS設定を用意してください。

それでもタイムアウトが続く場合は、ノードを変更します。低価格の共有ノードは混雑時間帯にパケットロスやTLS遅延が発生しやすく、速度テストだけでは品質を判断できません。重要なのは、短時間の下り速度よりも、複数回の接続で応答時間が安定していること、443番ポートが正常に利用できること、長いHTTPS接続が途中で切れないことです。

6よくある設定ミスと再発防止策

接続が一度直っても、プロファイル更新やOSの再起動後に再び使えなくなることがあります。原因の多くは、設定変更が一時的なものだった、選択中のプロファイルが別ファイルだった、または自動更新によってルールの順番が変わったことです。

症状 考えられる原因 確認する場所
ログに通信が出ない CLIがプロキシを利用していない 環境変数、System Proxy、TUN
DNSエラーになる DNSの遅延、汚染、解決経路の不一致 Clash DNS、nslookup、DNSログ
接続先がDIRECTになる ルール不足、ルールの順番、Modeの設定 Rules、Connections、現在のMode
数分後に切断される ノード混雑、パケットロス、接続維持の失敗 別ノード、ログ、長時間の疎通
401または403が表示される 認証、APIキー、アカウント側の制限 Gemini CLIのログイン状態と権限

安定運用のためには、プロファイルをバックアップし、手動で追加したルールをメモしておきましょう。サブスクリプション更新後に設定が消えた場合は、プロバイダーの設定を直接編集するのではなく、Merge設定やローカルオーバーライドを利用すると再現しやすくなります。また、問題が解決した後もGlobalモードを常用せず、Gemini関連の通信だけをRuleで振り分ける方が、不要な通信を海外へ送らず安全です。

最終チェック

ClashのMode、選択ノード、CLIのプロキシ環境変数、DNS、接続ログの5項目を記録しておくと、次回の障害でも同じ手順で復旧できます。

Gemini CLIとClashの相性問題は、単に「プロキシをオンにする」だけでは解決しません。まずCLIの通信をClashが捕捉しているかを確認し、次にルール、DNS、TUN、ノードの順で範囲を広げて調査することが重要です。接続先やアカウントの条件が変わった場合も、ログを基準に必要なルールだけを更新すれば、設定を複雑にせず安定した環境を維持できます。

Clashを無料でダウンロード — 快適なネット体験をはじめよう →