Claude 被封后折腾 Mac 代理与 Docker 网络
作者因 Claude 账号莫名被封开始研究 IP 代理,梳理 TUN 下 Docker、VS Code 远程环境不走代理的排查思路。
卧槽!Mac 明明开了 TUN,为什么 Docker、VS Code 里的 AI 工具还是连不上网??? 😭 最开始为了用 GPT,随便买了个机场。 那时候只要能打开网页就觉得没问题。🤣 后来试着用 Claude,结果账号突然被封,原因也没搞明白。 从此开始了我的网络民工生涯…… 一路研究 IP、DNS、代理、VPS,后来又折腾起 Claude Code、Codex。 结果发现一个新坑: ✅ Safari 正常访问 ✅ Mac 终端联网正常 ❌ Docker 拉取镜像超时 ❌ 容器里的 npm 安装依赖失败 ❌ VS Code 远程环境里的 AI 工具连接不上 明明已经开了 TUN,怎么还有软件不走代理???🤯 1️⃣ TUN 不是万能的 🌐 TUN 可以在网络层接管流量。 但 Mac 上的流量、Docker 虚拟机里的流量、远程服务器的流量,不一定都经过相同的网络路径。 不是打开 TUN,所有环境就自动共享同一个出口。 2️⃣ Docker 里其实还有一套网络 🐳 Mac 版 Docker Desktop 通过 Linux 虚拟机运行容器。 而且还有个容易搞混的地方: 📦 docker pull:Docker 负责拉取镜像。 💻 容器里的 npm install:容器内部程序自己联网。 一个正常,不代表另一个也正常! Docker Desktop 的代理设置、容器环境变量,都可能影响结果。 3️⃣ localhost 也不是同一个!😂 Mac 上的 127.0.0.1 指向 Mac 自己。 容器里的 127.0.0.1 却指向容器自己。 所以直接把 Mac 的本地代理地址复制进容器,有时候根本连不上。 Docker Desktop 可以通过 host.docker.internal 访问 Mac 上允许容器访问的服务。 4️⃣ VS Code 也得看程序在哪运行 🖥️ 本地运行和 Remote SSH、Dev Containers 完全不同。 比如通过 VS Code 连接美国 VPS: 编辑器在 Mac 上。 但远程终端里的 Claude Code,实际上是在 VPS 上运行。 Mac 开了 TUN,不代表远程服务器也会自动使用它。 5️⃣ 现在我会这样排查 🔍 ① 先确认出问题的程序运行在哪里。 ② Docker 拉镜像失败,就检查 Docker Desktop 的代理设置。 ③ 容器内部联网失败,再检查容器的代理、DNS 和网络配置。 ④ VS Code 远程环境出问题,就去检查远程机器,而不是一直改 Mac。 以前只知道疯狂切节点、换 IP。 现在才明白,同一台电脑里看起来都在上网的程序,实际可能根本不在同一个网络环境! 本来只是想让 AI 帮我写个代码,结果连虚拟机、容器网络都研究起来了。 这网络民工还有毕业的一天吗???🤣😭