新人上手指南 · 每一步可复制执行

新 Mac 的
开荒手册

从拆箱到 Claude Code 在终端里跑起来——网络隧道、海外环境、基础依赖、AI 工具链,一条动线走完,不用来回问人。

// 面向第一次配置开发环境的新同学 · 顺序执行即可 · 全程约 60–90 分钟

APPLE SILICON SHADOWROCKET · TUN XCODE CLT HOMEBREW NODE LTS · FNM CLAUDE CODE 约 60–90 MIN
SCROLL / 向下滚动
00
Roadmap · Do It In Order

五段路线,顺序不能乱

整个开荒过程是一条严格有序的管线:网络层没搭好,后面每一步的下载都会失败或慢到怀疑人生。跟着流光走一遍,心里先有全图。

STEP 1
网络层
装 Shadowrocket、导入节点、开启隧道——让整台 Mac 的流量都能出海≈ 20 min
STEP 2
出口验证
终端里 curl 验证出口 IP,确认 Google / GitHub / claude.ai 全部可达≈ 5 min
STEP 3
基础依赖
Xcode CLT → Homebrew → git → Node → pnpm,一条链装完开发地基≈ 30 min
STEP 4
Claude Code
一条命令安装,浏览器扫码登录,跑 /doctor 自检≈ 10 min
STEP 5
终检
对照终检清单逐行跑命令,全绿即毕业≈ 5 min

// 卡在任何一步:先跳到本页最后一章「坑位速查」对症状,九成问题在那里有现成解法。

01
Network Layer · Shadowrocket

先把隧道搭好

国内网络直连不了 GitHub、Homebrew、Google 字体、Claude 的服务器。我们用 Shadowrocket(本是 iOS 应用,M 系列 Mac 可以直接跑)建一条系统级隧道:它接管整台电脑的流量,终端、浏览器、所有 App 自动走隧道,不需要再单独配任何代理变量

先决条件

开工前找管理员要两样东西:① 一条节点链接 / 订阅(形如 vless://… 或订阅 URL);② 一个海外区 Apple ID(Shadowrocket 只在海外区 App Store 上架,约 $2.99,团队一般有公用账号)。

你的 Mac 💻 全部流量 终端 / 浏览器 / App
Shadowrocket 🚀 TUN 虚拟网卡 系统级接管 + 分流规则
加密隧道 🔐 海外节点 团队自建 VPS 出口
目标站点 🌐 GitHub · Claude · Google 看到的是节点的海外 IP

// TUN 模式的含义:Shadowrocket 在系统里虚拟出一张网卡,所有进程的流量先进它、再按规则分流——国内站点直连、海外站点走隧道。所以终端不需要设 http_proxy,装完即全局生效。

1 · 安装 用海外区 Apple ID 登录 Mac App Store → 搜索 Shadowrocket → 结果页切到 「iPhone 与 iPad App」标签才能看到它 → 购买安装
2 · 导入节点 打开 Shadowrocket → 右上角 + → Type 选对协议(团队节点多为 VLESS,默认是 Shadowsocks,必须手动切)→ 粘贴节点信息保存;或直接在浏览器打开管理员给的订阅链接自动导入
3 · 开启隧道 首页选中节点 → 打开主开关 → macOS 弹「添加 VPN 配置」→ 允许并输入开机密码。菜单栏出现 VPN 图标即成功
4 · 模式检查 首页 Global Routing 保持 Config(按规则分流:国内直连、海外走隧道)。切成 Proxy 会把国内站点也推到海外出口,微信、国内网站反而变慢或打不开
🎭

坑 · 别信它Connectivity Test 会说谎

列表里的延迟数字和 Connectivity Test 只测 TCP 握手,绿色 ≠ 真能用,Timeout ≠ 节点挂了。唯一可信的验证是下一章的 curl 出口 IP。

🔁

坑 · 记住这个动作切节点后必须重启主开关

在列表里换了默认节点,隧道不会自动切换,旧节点还在跑。必须把主开关关掉再打开,新节点才真正生效。

🧯

坑 · 全局模式副作用Proxy 模式架空一切规则

Global Routing 切到 Proxy 后所有分流规则失效,国内流量也全走海外。排障时临时用可以,用完记得切回 Config

🏷️

坑 · 静默失败带 emoji 的节点名导入会失败

通过链接导入时,节点标签里含 emoji 会静默失败——不报错、节点也不出现。把标签里的 emoji 删掉再导入即可。

02
Verify Your Exit · Trust Only curl

验证出口,只认 curl

隧道开了不等于真的通了。打开终端(Terminal,在启动台里搜),跑下面三条命令——这是全页唯一可信的网络验证方式,之后任何时候怀疑网络,都回到这三条。

Terminal — 出口验证(循环演示)

// 上面是循环演示动画。出口 IP 应该是海外 IP(不是你家宽带的 IP);三条全部有正常返回,网络层就算毕业。

# ① 出口 IP:应返回一个海外 IP
curl https://api.ipify.org

# ② Google 可达:应返回 HTTP/2 200
curl -I https://www.google.com

# ③ Claude 可达:应返回 HTTP/2 200 或 3xx
curl -I https://claude.ai
为什么不用浏览器验证

浏览器有缓存、有自己的 DNS,「网页打得开」不能证明终端的流量也走了隧道——而后面所有安装命令都跑在终端里。curl 的返回就是终端视角的真相,眼见为实。

03
Foundations · CLT → Brew → Git → Node

基础依赖,一条链装完

这五步是依赖链:Homebrew 需要 Xcode 命令行工具,Node 用 Homebrew 装的 fnm 管理,pnpm 跑在 Node 上。按顺序执行,每步末尾都有「验证」命令,跑通再进下一步。

STEP 3.1 · XCODE COMMAND LINE TOOLS≈ 10 MIN

Xcode 命令行工具

编译器、git 底座,一切开发工具的地基。弹出安装窗口后点「安装」,等进度条走完。

xcode-select --install

验证:xcode-select -p → 输出 /Library/Developer/CommandLineTools

STEP 3.2 · HOMEBREW≈ 8 MIN

Homebrew — Mac 的软件包管家

之后装任何命令行工具都靠它。安装脚本走 GitHub,隧道必须已开启。装完后务必执行它最后提示的两行 eval 命令(把 brew 加进 PATH),或直接复制下面第二段。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安装完执行(写入 PATH,然后重开一个终端窗口)
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

验证:brew --version → 输出 Homebrew 4.x

STEP 3.3 · GIT≈ 3 MIN

Git — 版本控制

系统自带的 git 也能用,但用 brew 装最新版,并把你的名字和邮箱写进全局配置(提交记录会署这个名)。

brew install git
git config --global user.name "你的名字"
git config --global user.email "你的邮箱@example.com"

验证:git --version → 输出 git version 2.x

STEP 3.4 · NODE.JS(经 FNM)≈ 6 MIN

Node.js — 用版本管理器装,别装全局单版本

不同项目要求的 Node 版本不同,直接 brew install node 以后会打架。用 fnm(快、轻)管理,随时切版本。

brew install fnm
echo 'eval "$(fnm env --use-on-cd)"' >> ~/.zshrc
source ~/.zshrc
fnm install --lts
fnm default lts-latest

验证:node -v → 输出 v22.x(当前 LTS);npm -v 有输出

STEP 3.5 · PNPM + 可选件≈ 3 MIN

pnpm — 团队默认的包管理器

前端项目统一用 pnpm 装依赖(更快、更省磁盘)。顺手可以把 Python 工具链 uv 也装上(跑 Python 项目才需要,可跳过)。

npm install -g pnpm

# 可选:Python 工具链(需要跑 Python 项目时再装也行)
brew install uv

验证:pnpm -v → 输出 9.x / 10.x

这一章的通用心法

任何一步卡住报网络错误(Connection refused / timeout / 卡在 0%),先回第 02 章跑三条 curl——九成是隧道断了或节点抖了,而不是命令写错。

04
Claude Code · Install → Login → Doctor

装上 Claude Code

Claude Code 是跑在终端里的 AI 编码 Agent,也是团队的日常主力工具。官方推荐 native 安装器(一条命令,自带自动更新,和 npm 无关)。登录需要一个 Claude 订阅账号(Pro / Max / Team)——没有的话先找管理员。

Terminal — 安装 Claude Code(循环演示)
# ① 安装(native 安装器,装到 ~/.local/bin/claude)
curl -fsSL https://claude.ai/install.sh | bash

# ② 重开一个终端窗口,启动
claude
安装 一条命令装完。版本文件在 ~/.local/share/claude/,命令是 ~/.local/bin/claude,以后自动更新,不用管
登录 第一次运行 claude 会打开浏览器 → 用团队给的 Claude 账号授权 → 回到终端自动完成登录
自检 在 Claude Code 里输入 /doctor——它会检查安装、网络、权限,全绿即就绪
开工 cd 进任意项目目录再运行 claude,直接用中文描述你要做的事
常用入口命令作用
启动claude在当前目录开一个会话
自检/doctor体检安装 / 网络 / 配置,排障第一步
帮助/help会话内查看全部命令
设置/config主题、模型等偏好
手动更新claude update平时自动更新,报错时手动跑一次看真实错误信息
版本claude --version确认装好了、看当前版本号
05
Final Checklist · All Green = Done

终检清单:逐行跑,全绿毕业

开一个全新的终端窗口(保证 PATH 都已生效),从上到下逐行执行。任何一行不符合预期,就回到对应章节重来那一步。

检查项命令预期结果
① 出口 IPcurl https://api.ipify.org返回海外 IP(对应章节 01/02)
② GitHub 可达curl -I https://github.comHTTP/2 200
③ 编译工具xcode-select -p输出 CommandLineTools 路径(03.1)
④ Homebrewbrew --versionHomebrew 4.x(03.2)
⑤ Git 身份git config user.email输出你的邮箱(03.3)
⑥ Node LTSnode -vv22.x(03.4)
⑦ pnpmpnpm -v有版本号输出(03.5)
⑧ Claude Codeclaude --version有版本号输出(04)
⑨ 会话自检claude 内跑 /doctor全部通过(04)
一句话总括:新 Mac 开荒 = 先修路,再盖楼——隧道(Shadowrocket TUN)是路,curl 出口 IP 是验路的唯一标准;路通之后 CLT → Homebrew → Node 一条链盖地基,最后 Claude Code 一条命令上楼。任何环节报网络错,先验路,再查楼
06
Troubleshooting · Symptom → Fix

坑位速查:按症状对号入座

这些坑我们全都真实踩过。按症状找到你的情况,照方子执行即可。

🐌

症状brew / git clone 卡住或超时

先跑 curl 验出口 IP(第 02 章)。IP 不对或超时 → 隧道断了:Shadowrocket 主开关关掉重开;还不行就换一个节点(记得切完重启主开关)。

⬇️

症状claude update 报下载超时

其它网站都正常、只有更新失败——个别节点会掐 downloads.claude.ai 这个下载域。换一个节点再跑 claude update 即可。

👻

症状command not found: brew / fnm / claude

命令装了但 PATH 没生效。重开一个终端窗口;还不行就检查对应步骤里 echo … >> ~/.zprofile / ~/.zshrc 那行有没有执行过。

📵

症状微信 / 国内网站突然变慢打不开

八成是 Global Routing 被切到了 Proxy(全局),国内流量也被推到海外出口。切回 Config 模式即恢复。

🎥

症状云电脑 / 视频会议连不上

代理客户端的 fake-IP 模式会拦掉 UDP 流量,云桌面、实时音视频首当其冲。详见专文 「云电脑 / 云手机连不上?先查代理」(本页底部相关阅读)。

🔑

症状App Store 搜不到 Shadowrocket

两个原因:① 当前登录的是国区 Apple ID(它没在国区上架);② 搜索结果没切到「iPhone 与 iPad App」标签页。都对了还没有,找管理员用公用账号处理。

相关阅读 · upio.ai/learn

网络这条线想弄懂原理,接着读下面三篇。