[{"data":1,"prerenderedAt":155},["ShallowReactive",2],{"content-/claude-code-connection-refused-hosts-fix":3,"all-pages-for-dir":132,"related-/claude-code-connection-refused-hosts-fix":133,"og-image-/claude-code-connection-refused-hosts-fix":154},{"id":4,"title":5,"body":6,"category":112,"concepts":113,"description":114,"extension":115,"meta":116,"navigation":117,"ogImage":113,"path":118,"project_name":119,"published":120,"publishedAt":121,"seo":122,"source":123,"stem":124,"tags":125,"todo":113,"unpublished":120,"updatedAt":113,"__hash__":131},"pages/2026-08/2026-08-16/claude-code-connection-refused-hosts-fix.md","Claude Code で頻発する「API Error: Connection refused」の原因調査と hosts 回避（.10 → .11）",{"type":7,"value":8,"toc":103},"minimark",[9,13,18,21,24,32,36,39,43,54,57,61,71,78,81,100],[10,11,12],"p",{},"朝 8 時 37 分、セッションを開いて最初に打ったのは、エラーメッセージの貼り付けだった。\n「API Error: Connection refused — a firewall or proxy may be blocking it (ConnectionRefused)」。\nClaude Code でこのところ頻発している。\nファイアウォールにもプロキシにも心当たりはない。\nそのまま「全部調べて、何が原因か」と投げた。",[14,15,17],"h2",{"id":16},"まずは-pc-の中定番の容疑者から","まずは PC の中、定番の容疑者から",[10,19,20],{},"Connection refused は、サーバー側の拒否ではなく、接続先かプロキシが TCP レベルで拒んでいるときのエラーだという。\nそこで定番の容疑者を順に当たらせた。\n死んだローカルプロキシを指したままのプロキシ設定、hosts や DNS の汚染、セキュリティソフトとファイアウォールの遮断だ。\nこのどれかだろうと思っていた。",[10,22,23],{},"全部白だった。",[10,25,26,27,31],{},"代わりに浮かび上がったのは、PC の外の構図だった。\nAnthropic の全サービスは単一の anycast IP ",[28,29,30],"code",{},"160.79.104.10"," に集約されている。\nそしてこの IP のポート 443 宛の「新規 TCP 接続」だけが、10〜30分の波で断続的に落とされていた。\n遮断が起きているのは PC 側ではなくその先で、自宅ルーターの NAT/SPI か、回線事業者の網か、Anthropic 東京エッジの防御機構か、どれなのかまでは絞り切れない。\nここまでの調査は issue ファイルに記録させた。",[14,33,35],{"id":34},"codex-で-windows-と-mac-を突き合わせる","Codex で Windows と Mac を突き合わせる",[10,37,38],{},"ここから Codex 側で Windows と Mac の環境を突き合わせ、Windows の設定を変えた後の挙動まで検証した。\nこの追加検証で結論を二層構造に更新した。\n一層目は Anthropic の IPv4 経路の間欠障害、二層目は VirtualBox のフィルターによる IPv6 フォールバックの阻害だ。\nIPv4 が落ちたら IPv6 へ逃げればいい、というフォールバックの退路を、自分で入れた仮想化ソフトのフィルターが塞いでいた。",[14,40,42],{"id":41},"修正後の状態を-windows-実機で裏取りする","修正後の状態を Windows 実機で裏取りする",[10,44,45,46,49,50,53],{},"結論は出た。\nそれでも、Windows 実機のセッションからも修正後の状態を裏取りさせた（09:27〜09:32 JST）。\n計測はバックグラウンドで回した。\n途中で「どうですか、調子は」と聞くと、「思わしくない方向が濃厚」と返ってきた。\n09:31 時点の IPv6 デフォルトルート（",[28,47,48],{},"::/0","）の残り寿命は 47:44 だった。\n計測は、最後の ",[28,51,52],{},"curl -6"," が失敗する exit 28 で終わった（想定どおりの失敗コード）。\n修正したはずの Windows 側の IPv6 復旧は、維持できていなかった。",[10,55,56],{},"そして計測データは、設定変更ではなく「抜き差し（リンクアップ）こそが回復の直接トリガーだった」ことを示していた。\n直したつもりの設定は、直接は効いていなかったらしい。",[14,58,60],{"id":59},"hosts-の-10-11-回避を手順書にして-github-へ","hosts の .10 → .11 回避を手順書にして GitHub へ",[10,62,63,64,66,67,70],{},"遮断箇所がどこかは、まだ絞り切れていない。\nそれでも回避はできる。\nhosts で接続先を ",[28,65,30],{}," から隣の ",[28,68,69],{},".11"," へ振り替える。\nこの「.10 → .11 の hosts 回避」を詳細な手順書に起こし、GitHub へプッシュして、Windows と Mac の両機から参照できるようにした。",[10,72,73,74,77],{},"仕上げに、置き場所も含めて Windows 実機のセッションに検分させた。\n機体間の引き継ぎ文書を置きそうな claude-backup と dotclaude のリポジトリを直接確認して、PR #33 の手順書（",[28,75,76],{},"docs/troubleshooting/anthropic-api-ipv4-edge-hosts-workaround.md","）に行き着き、全文を読ませた。\n実機の hosts の状態と、いまどの IP に繋がっているかまで突き合わせさせた。\n手順書は妥当、実機側の判断とも一致し、しかも一歩先まで検証されている。\nそういう所感が返ってきた。\nissue ファイルには、手順書への相互参照と新しい実測結果も追記させた。\nこれで両機のどちらで詰まっても、同じ手順書と同じ記録に辿り着ける。",[14,79,80],{"id":80},"学び",[82,83,84,88,91,94,97],"ul",{},[85,86,87],"li",{},"エラー文の「a firewall or proxy may be blocking it」を真に受けて PC の中だけ探すと迷子になる。定番の容疑者を先に白にできたから、外側を疑う根拠が立った",[85,89,90],{},"全サービスが単一の anycast IP に集約されていると、その IP の不調がそのまま全サービスの不調になる",[85,92,93],{},"体感を悪くしていたのは IPv4 側の障害だけではない。IPv6 フォールバックを塞いでいた VirtualBox のフィルターという伏兵がいた",[85,95,96],{},"「復旧した」と「復旧が維持できている」は別物。計測を続けたから、維持できていないことに気づけた",[85,98,99],{},"回避手順は端末の中のメモにせず、git に置いて両機から参照できるようにする",[10,101,102],{},"次にこのエラーを見たら、まず hosts を確認する。\n手順書はもう GitHub にある。",{"title":104,"searchDepth":105,"depth":105,"links":106},"",2,[107,108,109,110,111],{"id":16,"depth":105,"text":17},{"id":34,"depth":105,"text":35},{"id":41,"depth":105,"text":42},{"id":59,"depth":105,"text":60},{"id":80,"depth":105,"text":80},"dev",null,"Claude Code で頻発した Connection refused の原因調査の記録。PC 側の設定は全部白。Anthropic の単一 anycast IP への新規 TCP 接続が間欠的に落ちる障害と、VirtualBox による IPv6 フォールバック阻害の二層構造を特定し、hosts で .11 へ逃がす手順書を GitHub に置いた。","md",{},true,"/claude-code-connection-refused-hosts-fix","claude-code-tools",false,"2026-08-16T00:00:00.000Z",{"title":5,"description":114},"make-diary","2026-08/2026-08-16/claude-code-connection-refused-hosts-fix",[126,127,128,129,130],"Claude Code","トラブルシューティング","ネットワーク","IPv6","hosts","OILvObWuYvotrG_1Cn5rQ5NtBB7MihEz3WH2xsirn3k",[],[134,138,142,146,150],{"title":135,"path":136,"publishedAt":137},"セミナー会場の全員のClaude Codeと会話する — 進捗を集めて、席に行かずに指示を出す","/claude-code-seminar-hub","2026-08-18T00:00:00.000Z",{"title":139,"path":140,"publishedAt":141},"Windows で Codex CLI が動かなくなった原因を切り分けて復旧した記録","/codex-cli-windows-fix","2026-08-13T00:00:00.000Z",{"title":143,"path":144,"publishedAt":145},"ログイン済みChromeにChrome DevTools MCPを繋ぐまでの切り分け記録","/devtools-mcp-logged-in-chrome-sns-setup","2026-07-29T00:00:00.000Z",{"title":147,"path":148,"publishedAt":149},"Claude CodeのWebFetchが『Unable to verify if domain is safe to fetch』で全滅した話","/claude-code-webfetch-domain-safety-check-error","2026-07-22T00:00:00.000Z",{"title":151,"path":152,"publishedAt":153},"小学生向け理科教材づくり：実験器具バッチを完了し、植物分野8トピックの生成に着手した日","/science-course-plants-batch","2026-07-04T00:00:00.000Z","https://log.eurekapu.com/favicon.svg",1787053849455]