Skip to content

fix: Claude Code VPN 向け IPv4 preload の resolver を修正#16

Open
chaspy wants to merge 3 commits intomasterfrom
codex/fix-claude-ipv4-system-resolver
Open

fix: Claude Code VPN 向け IPv4 preload の resolver を修正#16
chaspy wants to merge 3 commits intomasterfrom
codex/fix-claude-ipv4-system-resolver

Conversation

@chaspy
Copy link
Copy Markdown
Owner

@chaspy chaspy commented Mar 13, 2026

概要

  • Claude Code 向けの IPv4 preload を dns.resolve4() 依存から dns.lookup(..., { family: 4 }) ベースへ変更しました
  • VPN 配下で queryA EREFUSED platform.claude.com が発生して OAuth ログインできない問題を回避します
  • origin/master に preload 本体がないため、再導入コミットもあわせて含まれます

変更理由

  • dns.resolve4() は system resolver を経由せず、VPN 提供 DNS と相性が悪い環境で A query が拒否されていました
  • dns.lookup(..., { family: 4 }) なら macOS / VPN の resolver を使いながら IPv4 固定を維持できます

影響ファイル

  • .claude/bun-ipv4-preload.js
  • .zshrc
  • symlink.sh

手動確認

  • node -e 'require("node:dns").resolve4("platform.claude.com", (err) => { console.log(String(err)); process.exit(err ? 1 : 0); })'queryA EREFUSED platform.claude.com を確認\n- node -e 'require("node:dns").lookup("platform.claude.com", { family: 4, all: true }, (err, addrs) => { console.log(err ? String(err) : JSON.stringify(addrs)); process.exit(err ? 1 : 0); })' で IPv4 解決成功を確認\n- node --import ./.claude/bun-ipv4-preload.js -e 'import https from "node:https"; await new Promise((resolve, reject) => { const req = https.get("https://platform.claude.com", (res) => { console.log(res.statusCode); res.resume(); res.on("end", resolve); }); req.on("error", reject); });'200 を確認\n- node --import ./.claude/bun-ipv4-preload.js -e 'console.log("preload ok")' で preload の構文読み込みを確認\n

chaspy and others added 3 commits March 12, 2026 07:56
昨日の障害は Claude 側の問題であり、IPv4 preload は無関係だった。
VPN 環境での安定性のため再度有効化する。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant