AI 特集 · · 読了まで約 16 分

Claude Code のターミナルが頻繁にタイムアウト?Anthropic API と npm を Clash・mihomo で分流して安定させる実測手順(2026)

Anthropicが提供するターミナル/IDE 連携型のコーディング支援(いわゆる Claude Code 系ワークフロー)では、モデル呼び出し用の Anthropic API と、プラグインやテンプレート取得に伴う npm registry同じマシン・同じデフォルト出口を共有することがあります。経路がリクエストごとに変わると、API だけ遅い・依存インストールだけ固まるといった切り分けが難しいタイムアウトが出やすくなります。本稿では Clash / mihomo のドメイン分流DNS(fake-ip との整合)で、anthropic.com/Claude 関連ホスト/registry.npmjs.org意図した策略グループ安定して載せるための実務メモをまとめます。

1. なぜ「CLI だけ」タイムアウトが目立ちやすいか

第一に、ターミナルからの HTTPS と npm の HTTPS が、ブラウザとは別経路で評価されやすいことです。ブラウザはシステムプロキシや拡張の影響を受けやすく、一方で CLI は 環境変数やランタイムの既定プロキシ設定が空のまま直結の経路へ落ちることがあります。結果として、Claude Code 側のモデル呼び出しと npm install別々の出口 IPになり、片方だけタイムアウトするように見えます。

第二に、Anthropic 周辺は単一ドメインに収まらないことがあります。公式サイトやコンソール、計測・CDN、API エンドポイントなど、ログに出るホスト名が複数サフィックスに分かれる典型です。DOMAIN-SUFFIX,anthropic.com だけでは足りず、実際に失敗しているホストをログから拾い足す運用が安全です。

第三に、レート制限・アカウント状態・地域ポリシーは経路とは別レイヤです。HTTP ステータスやレスポンス本文にその筋のメッセージが出ているときは、いくらノードを替えてもプロキシでは直せないことがあります。本稿は名前と出口を揃える技術的な話に限定し、サービス利用規約や所在地ポリシーの順守は読者各自の責務として切り分けます。

2. Web 版 Claude の地域記事・Cursor 稿・MCP 稿との違い

当サイトでは、ブラウザ版Claude の地域メッセージと DNS・分流の関係別稿で扱っています。そちらはフロントのログイン画面や地域判定メッセージに検索意図が寄りがちです。一方、本稿のClaude Code/CLI/プラグイン前提のワークフローは、製品形態も検索意図も異なる補完関係になります。

Cursor 向けの記事特定 IDE の公式ドメインや VS Code 互換エコシステムが中心です。Claude Code を別 IDE で動かす場合でも、Anthropic と npm をまとめて束ねる視点は本稿側が直接的です。

MCP と npm/GitHubの記事は Model Context Protocol と tarball/GitHub APIが前面です。本稿ではAnthropic API と npm registry を CLI が連続で叩く開発者の典型的な経路に絞り、重なるドメインはログベースで冗長を削る前提で読んでください。

3. まずログで確認するホスト名の束

ドメイン一覧はサービス側の変更で入れ替わり得るため、以下は切り分けの出発点です。コアのログや開発者ツールで実際に出た名前を優先してください。

Anthropic/Claude まわりでは anthropic.com、ユーザー向け画面やブランドによっては claude.ai、API 呼び出しでは api.anthropic.com などが代表的です。認証やコンソールのホストが別名になる場合は、そのサフィックスごとにルールを分割すると運用が楽です。

npm では registry.npmjs.org が標準のメインレジストリです。npmjs.com や tarball のホスト、組織でミラーを使う場合はその fqdn を別ルールで明示してください。GitHub Packagesや tarball が GitHub にある場合は MCP 稿のドメインセットも参照します。

ルールの評価順は ルールルーティングの解説どおり、具体的な DOMAIN 行を、MATCH や GEOIP より上へ。購読ルールの末尾にだけ追記すると効かないことがある点に注意してください。

4. mihomo ルール例:DOMAIN-SUFFIX と評価順

実務では 「Anthropic+開発パッケージ用」の策略グループを一つ用意し、関連サフィックスをそこへ送る形が扱いやすいです。以下は構造の例です。プロキシ名や末尾の MATCH は環境に合わせて置き換えてください。

# proxy-groups: group for Anthropic API + npm tooling
proxy-groups:
  - name: ANTHROPIC_DEV
    type: select
    proxies:
      - LOW_LATENCY
      - NODE_STABLE
      - DIRECT

# rules: keep specific DOMAIN rows above broad MATCH / GEOIP
rules:
  - DOMAIN-SUFFIX,anthropic.com,ANTHROPIC_DEV
  - DOMAIN-SUFFIX,claude.ai,ANTHROPIC_DEV
  - DOMAIN-SUFFIX,api.anthropic.com,ANTHROPIC_DEV
  - DOMAIN-SUFFIX,registry.npmjs.org,ANTHROPIC_DEV
  - DOMAIN-SUFFIX,npmjs.org,ANTHROPIC_DEV
  - MATCH,PROXY

api.anthropic.comanthropic.com に包含されますが、読みやすさと後からの追記のために明示しておいても害はありません。PROCESS-NAME でターミナル実行ファイルだけを分ける手もありますが、OS ごとのプロセス名の差が大きいので、まずはドメインでの束ねから始めると安全です。

TUN と DNS の相互作用は TUN モードの解説も参照し、名前解決と実接続の策略が矛盾していないかを確認してください。

5. 策略グループ:開発者向け出口を一本化する

API と npm が別ノードにばらけると、レイテンシのばらつきだけでタイムアウトが増えたように見えることがあります。select で特定ノードに固定できるなら、チーム内で「Anthropic 用に決めたノード名」をドキュメントに書いて揃えると、個人設定の差による切り分けを減らせます。

自動切替を使う場合は url-test/fallbackの間隔や許容遅延が、対話型 CLI の体感に合うかを確認してください。頻繁にノードが切り替わると、長めのストリーミング応答が途中で別経路に載り替わり、エラーに見えることがあります。

UDP を多用する HTTP/3(QUIC)経由の通信では、ノードの UDP 扱い次第でHTTPS(TCP)より不安定に見える場合があります。ブラウザだけではなく CLI の一部ランタイムでも同様なので、ドメインを揃えたうえでまだ揺れるときはトランスポートの切り分けを検討してください。

6. DNS と fake-ip をルールと噛み合わせる

fake-ip/redir-host など DNS enhanced-mode の選択によっては、ブラウザとコアが異なる名前解決経路を通り、DOMAIN ルールが意図どおりに評価されないように見えることがあります。詳細な対照はClash Meta の DNS モード比較記事を参照し、分流が効かないときの修正順序と合わせて読むと理解が早いです。

CLI からの接続では スタブリゾルバとプロキシコアの DNSのどちらが効いているかが環境差で大きくなります。つまずいたら、失敗ホストの名前解決がどこで行われたかをログに残し、ルールのサフィックスと一致しているかを確認してください。

ブラウザの「安全な DNS(DoH)」が無効になっていないと、OS と Clash の意図がズレます。Windows の Chrome/Edgeでは システム代理と DoH の校正も合わせて確認すると、Web と CLI の見え方の差を減らせます。

7. ターミナル・npm のプロキシと OS の解決経路

Clash のシステムプロキシや TUN が有効でも、npm が環境変数を読まずに直結する構成は珍しくありません。HTTPS_PROXYHTTP_PROXYNO_PROXY を、社内レジストリやローカルホスト向けに分割して書くノウハウは、Windows 向け npm/pnpm と環境変数の記事で詳しく扱っています。

購読の取り込みとポート番号がずれていると、環境変数を設定しても別ポートへ向いてしまいます。基本設定は サブスクリプション導入ガイドで揃えたうえで、mixed-port と実際に指定しているポートが一致しているかを確認してください。

npm のレジストリ URL を組織プロキシ経由に変える場合でも、Clash のドメインルールと矛盾しないかを見てください。レジストリ fqdn が変わればルールの追加対象も変わります

8. 実測での切り分けとログの見方

実務では次の順が扱いやすいです。(1)コアのログで、問題のホストがどの策略グループにマッチしたかを確認する。(2)意図したグループに入っているのにタイムアウトするなら、そのグループ内のノードを入れ替えるか、同一ホストに対して別経路でレイテンシを比較する。(3)TLS エラーや確定的な HTTP エラーが出ていれば、経路以外(認証・キー・レート制限)を疑う。

API と npm を連続で叩いたときだけ失敗する場合は、単位時間あたりの接続数やダウンロード量がノード側の閾値に触れていないかもログで確認してください。体感の「なんとなく直った」ではなく、ログに残ったホスト名と策略名をメモに残すのが再現性向上の近道です。

CI やコンテナ内で同じワークフローを回す場合は、ホスト OS とコンテナのネットワーク名前空間が別になるため、ルールと DNS の前提が変わります。Docker とホストの Clashを併用するときは、ゲートウェイと NO_PROXYまで含めて再チェックしてください。

9. まとめ

Claude Codeのようなターミナル中心のワークフローでは、Anthropic APInpm registry同一出口を共有してタイムアウトが増えたように見えることがあります。mihomo のドメイン分流で関連ホストを開発者向け策略へ束ねDNS fake-ip と名前解決の経路を整合させ、必要ならターミナルのプロキシ環境変数まで揃える——この順で切り分けると、Web 版 Claude の地域記事や Cursor/MCP 各稿と検索意図が被らない補完関係として整理できます。

クライアントの世代や GUI の表記は移り変わりますが、ログドリブンでホストを足し込む運用は共通です。まずは安定したクライアントを手元に用意したい場合は、 → 無料で Clash をダウンロードし、快適な接続体験を試す ところから環境を整えるのがおすすめです。

トピックの近さで選んだ関連記事 — 同じカテゴリの Clash 実践ガイド。