OpenRouter と各モデル API がタイムアウトしがち?2026 年、Clash の分流で統合 LLM ゲートウェイを安定させる
OpenRouter(公式ドメイン openrouter.ai)は、ひとつの API で OpenAI・Anthropic・Google ほか複数の LLM API に振り分ける、いわゆる開発者向け統一ゲートウェイとして 2026 年も広く使われています。一方で、ユーザーが体感する問題は共通語彙になりやすく、「ゲートウェイばかりタイムアウトする」「最初のチャンクが返らない」と報告されることが多いです。原因はモデル本体だけではなく、DNS の食い違い、出口ノードと上流リージョンのミスマッチ、ブラウザと CLI でTUN とシステムプロキシの適用が違う、といった「ネットワーク周りの複合問題」になりがちです。本稿では Clash を使い、統一ゲートウェイと上流ドメインの分流、ポリシーグループ、DNS(fake-ip)の整合から説明します。単一サービスだけを切るCodex/Hugging Face/Cursor IDE向け記事と棲み分けし、「入口ゲートウェイ」としての構成を明示します。Hugging Face 配下モデルや重いリポストとは対象経路が違う前提で読んでください。利用規約と法令遵守は各自の環境で必ず確認してください。
統一ゲートウェイほど、「出口の一貫性」が効く
サードパーティのアプリごとに直叩きで OpenAI と Anthropic と Google が混ざるより、まずすべてを OpenRouter へ寄せればクライアント側の構成は単純になります。その代わり、トラフィックが一つのサービスブランドへ集中するため、そのホストだけ出口がフラップすると「いつもタイムアウト」のように体感が増幅します。実態としては、アップロードとストリーミング読み込みが異なる上流へ伸びるセッションが混在していることもあり、ゲートウェイが全部悪く見えることがあります。
- TLS だけ通るように見える:実際には DNS が二系統になり、規則の悪い方に握られた IP でルールだけ外れ続けていることがあります。
- ノードだけ替えれば直るような気がしてしまう:
url-testは RTT が良くても、長い読み込みでのジッターに弱く、モデル側のレート調整とは別軸です。 - 開発ツールだけ失敗する:
HTTP_PROXYを読むシェルと、TUN 直下の GUI が異なる経路カタログになります。
ここでの目標は、特定地域や特定プロバイダへの規制迂回ではなく、自分が正当に使ってよい API トラフィックを、意図した出口と解決パスに揃えることです。組織のセキュリティポリシーがある場合は、そちらに従ってください。
症状のラベル付け:ゲートウェイ直か、上流か、DNS か
修復の順序を誤ると時間が溶けます。まず接続ビューで失敗したホスト名をメモし、次のどれに近いかを付けます。
症状の目安
- openrouter.ai のみ遅い:ゲートウェイ向けのルールと DNS を先に揃えます。
- 特定のモデル ID だけ失敗:ゲートウェイは通っているが上流の別ドメインが漏れている可能性。Connections で実ホストを確認します。
- ブラウザのコンソールは速いが CLI が遅い:プロキシ環境変数と TUN のズレを疑います。
一度に複数設定を変更すると復元が辛くなるので、DNS → 分流ルールの順序 → ノードグループ → タイムアウト値(アプリ側)の順が扱いやすく、2026 年現在もそのまま運用されています。
openrouter.ai を軸にした構成の骨格
公式サイトと API が同じ親ドメイン配下にあるタイプのアーキテクチャでは、DOMAIN-SUFFIX,openrouter.ai 一类の広い線をひとつの統一 egress ポリシーに載せ、その上で上流を足すレイヤーを取りやすくなります。実サービス側の詳細ホストが増えている場合でも、ログに出てきた実際の名前だけを増やしていく運用が、巨大なリストを張り込むより失敗が少なくなります。
習慣の提案
「まずモデル一覧 API が通る」を合格条件にすると判定が楽です。そのあとチャット_completion のストリーミングに進み上流の増幅問題を切り分けられます。
ストリーミングは細かいチャンクの往復になるため、往復だけでなくウィンドウサイズやバッファの影響で「最初の約一分」「途中から止まる」など症状が変わります。ネットワーク層だけで閉じないケースがある点は頭に置いてください。
上流が複数社にまたがるときのルール順
ゲートウェイが内部でモデル提供者のエンドポイントへ転送するとき、自分の側から見えるのはときどき一つの名前だけです。その一方で、開発者コンソールやミドルウェアログではOpenAI/Anthropic/Google/その他ベンダー固有のホスト名へ伸びている痕跡が残る環境があります。粗い GEOIP と巨大な広告リストを合わせると、まれに上流へ向かう名前がゲートウェイとは別グループに落ち出口が別都市になり、アップストリーム側のフェイルクローズにつながることがあります。
このサイトでは DeepSeek と Gemini を分ける話は別稿(DeepSeek と Gemini の分流)であり、単一サービスだけを決める構成はClaude のみやChatGPT 系のみの記事群と並びます。OpenRouter 稿は、その上にさらにあるゲートレイヤーの出口を主役にしている、という読み分けをおすすめします。
YAML のイメージ:ゲートウェイを先に明示する
以下は概念例です。GATEWAY や UPSTREAM_AI は、実環境の自分のポリシーグループ名へ置き換えてください。プロセス単位まで含めるときは GEOIP と最終 MATCH の上に置くのが原則です。
# Conceptual snippet — substitute real policy-group names & upstream domains after logging
rules:
- DOMAIN-SUFFIX,openrouter.ai,GATEWAY
- DOMAIN,ai.openai.com,UPSTREAM_AI
- DOMAIN,api.anthropic.com,UPSTREAM_AI
- DOMAIN-KEYWORD,googleapis,GATEWAY_OR_GOOGLE
- GEOIP,CN,DIRECT
- MATCH,PROXY
実際には各社の名前は変わり得ます。失敗ログに載った名前優先で増やしてください。リストを丸ごと持ち込みすぎると、開発用ローカルドメインと衝突したり、アップデートごとに壊れたりします。リモートのルールセットをマージするときも、自分の GATEWAY 用の細い線が結果の末尾で潰されていないかを確認しましょう。
| 観点 | 確認すること |
|---|---|
| ルールの前後 | 広い DIRECT より前か、広い広告リストより上位か |
| ポリシー名 | 自動選択グループだとフラップしないか(履歴ウィンドウを長めに) |
| 上流の列挙漏れ | モデル変更時のみ落ちるは典型のシグナルです |
DNS を揃える:fake-ip と二重リゾルバを疑う
Clash とブラウザの両方が独自 DNS を挟む構成では、「ルール上は GATEWAY と判定されたのに、実際には別 IP に張りついていた」状態がログと体感の不一致を生みやすくなります。DNS と fake-ip の整理を先に参照し、まず名前解決の一本化を検討すると良いです。VPN との併用、企業証明書、ローカルの /etc/hosts 上書きも合わせ技になりがちです。
- 検証ウィンドウの短さ:一度 DNS を統一できた昼と、ブラウザ拡張を戻した夜で症状が正反対になります。
- HTTPS のエラーだけが静かなケース:上流の証明書ピンとは別に、名前と IP の単純なミスマッチだけで止まっていることもあります。
- 開発マシンのみ:CI と同じ
cURLをローカルで再現しようとして、環境だけが違う典型です。
ノード選択と自動切り替え
長いストリーミング応答ほど細かなジッターに弱い構成があります。自動選択グループがある場合でも、モデル側のキュー状態とユーザー側のレイテンシは別物です。url-test とフォールバックのパラメータを理解し、「短い icmp が緑」を過信しないでください。また、モデル側のサービス状態はダッシュボードやステータスページで確認することが筋です。
注意
常時 Globalで出口をぐるぐる替えるだけが解決とは限りません。上流のモデルロックや請求フラグとも誤認しやすいので、ログのホスト名と HTTP コードをセットで確認してください。
IDE・スクリプト・コンテナ側の環境統一
VS Code/JetBrains/Cursor で OpenRouter の環境変数を読み込んだターミナルがある一方、Electron 側はシステムプロキシのみ、という構成はありがちです。当サイトには Cursor と AI のネットワークとして 専門稿があるので、統一ゲートウェイを使っている場合は両方読み込み自分のワークフローに当てはまる節だけ採ってください。また、コンテナビルド中のモデル試験だけが失敗するときはホスト側のTUN とブリッジや、コンテナ内だけの名前解決経路も疑います。
OpenAI Codex のみを直叩きする話は別稿(例:Codex 向け経路の整理)と題材が異なります。「まずすべて OpenRouter」構成のときに困る問題を本稿では主に扱います。
他ブランド稿との簡単な棲み分け
| 読みたいとき | 参照先の例 |
|---|---|
| 統一ゲートウェイひとつの出口を設計するとき(本記事の主題) | 本文および OpenRouter と Clash のルール順 |
| モデル開発者プラットフォームで重いモデル取得が主 | Hugging Face の分流・DNS |
| OpenAI が直接提供するワークフローを前提 | Codex 向けなど単一サービス線の記事 |
| 二つの巨大クラウド系を両方日常的に叩く | DeepSeek と Gemini |
よくある質問
ゲートウェイ経由のみタイムアウトで、直リンクは平気ということはありますか
ルール上流の名前がすべて揃っているか、アプリが参照するベース URL が自分にとって想定外の名前を握っていないかを確認すると切り分けが早くなります。クライアント SDK と UI の設定ソースが複数にあると起きやすいです。
モデル一覧は取れるが補間だけ終わらないように見える
ストリームの途中でモデルキュー側が待ちになっているときも体感は似ます。上流のステータスと、自分のキューにあるジョブ数を両方視野に。
チェックリスト
- Connections で失敗ホストとマッチしたルール、アウトバウンド名をセットでログに残す。
- openrouter.ai 系ルールが巨大ルールセットに負けていないか確認する。
- 名前解決の経路が二重になっていないか(ブラウザ DoH と OS/Clash)を確認する。
- TUN とシステムプロキシ両方がある場合、アプリ単位でどちらへ乗っているか明示する。
- モデル ID を変えるとだけ直るときは上流の名前忘れ/レート両方を疑う。
まとめと次のアクション
開発者から見て OpenRouter のような統一ゲートウェイは、設定を楽にできる反面、問題がネットワーク層だけで済まなくなりやすいです。Clash の分流ルール・DNS・ノードグループ・環境統一をセットで調整すると、いわゆる総タイムアウト体感を少しずつ切り崩せます。改善が見えないときはモデルサービス側の障害ページもセットでチェックしましょう。