macOS开发环境依赖下载慢的核心问题是工具默认不走代理、DNS解析错位或直连被限速;需通过分层控制,配置ALL_PROXY/HTTP_PROXY/HTTPS_PROXY环境变量、按工具单独加固代理、设置NO_PROXY绕过苹果及CDN域名,并替换DNS为223.5.5.5等国内解析服务器。macOS 开发环境依赖下载慢,核心问题不在带宽,而在工具默认不走代理、DNS 解析错位、或直连苹果/开源服务器时被限速。解决的关键是“分层控制”:让不同工具走各自适配的通道,同时避开干扰系统服务的域名。
优先配置终端级代理环境变量
图形界面代理设置对命令行工具无效,必须显式声明环境变量。编辑 ~/.zshrc(m1/m2/m3 mac 默认 shell):
-
SOCKS5 代理(推荐):适合 Homebrew、curl、git 等通用 CLI 工具
添加:export ALL_PROXY=socks5://127.0.0.1:7892 -
HTTP/HTTPS 代理(必要补充):部分工具(如 npm、pip、Gradle)只读取 HTTP_PROXY
添加:export HTTP_PROXY=http://127.0.0.1:7892export HTTPS_PROXY=http://127.0.0.1:7892 - 保存后运行
source ~/.zshrc生效,用echo $ALL_PROXY验证
按工具单独加固代理配置
有些工具忽略 ALL_PROXY,需手动指定:
-
Homebrew:自动识别 ALL_PROXY;若失效,可临时加前缀:
ALL_PROXY=socks5://127.0.0.1:7892 brew install node -
Git:运行
git config --global http.proxy http://127.0.0.1:7892 -
NPM:执行
npm config set proxy http://127.0.0.1:7892和npm config set https-proxy http://127.0.0.1:7892 -
Pip:写入
~/.pip/pip.conf,内容为:[global]proxy = http://127.0.0.1:7892
绕过关键苹果与 CDN 域名
代理不能一概而论,否则会导致 Xcode 下载失败、iCloud 同步中断、系统更新卡住:
让 macOS 自动化像说话一样简单 —— 用代码控制你的 Mac,无需学习 AppleScript 系统要求 macOS 14+ (Sonoma) Python 3.9+ 需要开启:辅助功能 + 屏幕录制权限
- 在终端中添加排除规则(适用于 curl/wget):
export NO_PROXY="*.apple.com,*.icloud.com,*.cdn-apple.com,osxapps.apple.com,swscan.apple.com" - 将该行也加入 ~/.zshrc,并
source生效 - 企业 PAC 用户务必在系统代理设置中“忽略这些主机与域名”里填入上述域名
替换 DNS 并刷新系统缓存
DNS 解析不准会把请求导向海外节点,尤其影响 GitHub、npm、PyPI 等源:
- 系统设置 → 网络 → 当前连接 → 详细信息 → DNS
删除原有条目,添加 223.5.5.5 或 114.114.114.114 并置顶 - 终端执行:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
立即生效,无需重启

















