macos应用安装/卸载本身不走代理,需通过配置homebrew、curl等命令行工具或预下载pkg包实现代理;app store/mas必须直连,卸载通常无需代理。
macos 上的应用安装与卸载本身不走代理,但触发这些操作的工具(如 homebrew、app store、mas、pkgutil 或第三方安装器)会联网下载或验证软件。要让“特定软件的安装/卸载过程”走代理,关键不是给.app本身配代理,而是控制其背后调用的命令行工具或网络请求链路——这需要分场景精准配置。
Homebrew 安装/卸载依赖时走代理
Homebrew 默认读取 ALL_PROXY 环境变量,也支持 HTTP/HTTPS 代理。若你用 brew install 或 brew uninstall 下载公式(formula)或二进制包(bottle),只需确保终端已设置代理变量:
- 在
~/.zshrc中添加:export ALL_PROXY=socks5://127.0.0.1:7892export HTTP_PROXY=http://127.0.0.1:7892export HTTPS_PROXY=http://127.0.0.1:7892export NO_PROXY="localhost,127.0.0.1,*.apple.com,*.icloud.com" - 运行
source ~/.zshrc生效后,brew update和brew install就会自动经由代理拉取 GitHub 资源和 bottle 链接 - 若某次失效,可临时加前缀运行:
ALL_PROXY=socks5://127.0.0.1:7892 brew install wget
App Store 或 mas 命令安装/卸载 App 时绕过代理
App Store 和 mas(Mac App Store CLI 工具)使用苹果私有协议和域名(如 buy.itunes.apple.com、osxapps.apple.com),必须直连。即使系统开了全局代理,它们也常因证书校验或域名分流失败而卡住。
- 不要对 App Store 启用 PAC 或系统级 HTTP/SOCKS 代理;应在“系统设置 → 网络 → 代理”中保持关闭状态
- 如果使用
mas,确保NO_PROXY包含:*.apple.com,*.*.itunes.apple.com,osxapps.apple.com,appldnld.apple.com - 卸载 App Store 应用无需联网,但重装或更新需直连;若网络受限,建议改用离线 pkg 包或企业签名方式部署
pkg 安装器(.pkg 文件)走代理的两种可行路径
双击 .pkg 运行安装器时,它调用的是系统 installer 命令,该命令本身不读环境变量,也不支持代理参数。但你可以间接控制其行为:
-
方案一:提前下载好 pkg 包 —— 用已配好代理的终端执行:
curl -x http://127.0.0.1:7892 -L -o app.pkg "https://example.com/app.pkg"
再双击本地app.pkg安装,全程离线 -
方案二:命令行静默安装 + 自定义脚本预处理 —— 若安装器内部会联网(如检查许可证、下载组件),可在安装前用
launchctl setenv注入代理到 GUI 进程环境(仅限 macOS 13+):launchctl setenv HTTP_PROXY http://127.0.0.1:7892launchctl setenv HTTPS_PROXY http://127.0.0.1:7892
然后通过open -a Installer.app --args /path/to/app.pkg启动
卸载应用时是否需要代理?
绝大多数卸载操作(拖入废纸篓、用 brew uninstall、mas uninstall、rm -rf /Applications/App.app)都是本地文件操作,不联网。唯一例外是:
- 某些企业级管理软件(如 Jamf、Microsoft Intune 客户端)卸载时需向服务器上报状态,此时代理应由 MDM 策略统一配置,而非手动设置
- 部分开发工具(如 Docker Desktop、Visual Studio Code)卸载前会检查更新或发送遥测,可在设置中关闭“自动检查更新”和“遥测数据共享”,避免意外联网











