2025 年 macOS 代理设置教程(系统代理 + 终端代理)
2025 年 macOS 16 系统代理设置完整教程。覆盖系统偏好设置、终端命令行代理、浏览器代理配置和常见问题排查。
适用场景
2025 年 macOS 16 是 Mac 电脑的主流系统版本。在 macOS 上配置代理的需求很常见:在公司办公网络下通过代理访问企业内网资源、在数据采集和爬虫开发过程中使用代理 IP、在跨境电商运营中管理多个店铺账号。
温馨提示: macOS 的代理设置分为系统层面和终端层面。系统代理对 GUI 应用生效,终端代理对命令行工具生效。本文会分别介绍这两种方式。
准备工作
开始设置前,请确认以下代理信息已经准备就绪:
| 项目 | 说明 | 示例 |
|---|---|---|
| 代理服务器地址 | IP 地址或域名 | proxy.16yun.cn |
| 端口号 | HTTP 代理常用 8888,SOCKS5 常用 1080 | 8888 |
| 用户名 | 代理认证用(如果不需要认证可留空) | your-username |
| 密码 | 代理认证用 | your-password |
| 代理类型 | HTTP/HTTPS/SOCKS5 | HTTP |
方式一:系统偏好设置代理(GUI 方式)
macOS 系统偏好设置中的代理配置会影响大多数 GUI 应用程序,包括 Safari、Chrome、Mail 等。
第 1 步:打开系统设置 点击屏幕左上角苹果菜单,选择「系统设置」。也可以点击 Dock 栏中的系统设置图标。
第 2 步:进入网络设置 在系统设置中找到并点击「网络」选项。在 macOS 16 中,网络设置位于左侧列表的中间位置。
第 3 步:选择网络连接 在网络列表中选择您当前正在使用的网络连接。通常有两个选项:「WiFi」(无线网络)或「以太网」(有线网络),选择当前连接的那个。
第 4 步:进入代理设置 点击「详细信息」或「高级」按钮,在弹出的窗口中选择「代理」选项卡。
第 5 步:选择代理协议 macOS 支持多种代理协议,您可以根据需要勾选:
- Web 代理(HTTP):用于 HTTP 流量
- 安全 Web 代理(HTTPS):用于 HTTPS 流量
- SOCKS 代理:用于 SOCKS 流量(如果需要)
通常勾选「Web 代理(HTTP)」和「安全 Web 代理(HTTPS)」两项,输入相同的代理地址和端口。
第 6 步:输入代理信息 在对应的输入框中填写代理服务器地址和端口号。如果代理需要认证,勾选「代理服务器需要密码」并输入用户名和密码。
第 7 步:应用设置 点击「好」按钮关闭设置窗口,再点击「应用」按钮使设置生效。
验证方法
打开 Safari 浏览器访问 httpbin.org/ip。如果页面显示的 IP 地址是您的代理 IP,说明设置成功。
方式二:终端代理设置(命令行方式)
如果您在终端中使用命令行工具(curl、wget、git、npm 等),需要单独配置终端代理。终端代理不会跟随系统代理设置,需要手动配置。
临时设置(仅当前终端会话有效):
export http_proxy=http://proxy.16yun.cn:8888
export https_proxy=http://proxy.16yun.cn:8888
export HTTP_PROXY=http://proxy.16yun.cn:8888
export HTTPS_PROXY=http://proxy.16yun.cn:8888将以上命令粘贴到终端中执行,代理设置即对当前终端窗口生效。关闭终端或打开新终端窗口后需要重新设置。
永久设置(推荐方式):
将以下内容添加到您的 shell 配置文件中(~/.zshrc 或 ~/.bashrc):
# 代理设置
export http_proxy=http://proxy.16yun.cn:8888
export https_proxy=http://proxy.16yun.cn:8888
export HTTP_PROXY=http://proxy.16yun.cn:8888
export HTTPS_PROXY=http://proxy.16yun.cn:8888
# 本地地址不走代理
export no_proxy=localhost,127.0.0.1,10.*添加后执行 source ~/.zshrc 使配置立即生效。
SOCKS5 代理配置:
如果使用 SOCKS5 代理,终端设置方式有所不同:
export ALL_PROXY=socks5://proxy.16yun.cn:1080
export all_proxy=socks5://proxy.16yun.cn:1080工具级代理配置
除了系统环境变量,部分工具支持独立配置代理:
Git:
git config --global http.proxy http://proxy.16yun.cn:8888
git config --global https.proxy http://proxy.16yun.cn:8888
git config --global --unset http.proxy # 取消代理npm:
npm config set proxy http://proxy.16yun.cn:8888
npm config set https-proxy http://proxy.16yun.cn:8888
npm config delete proxy # 取消代理curl:
curl -x http://proxy.16yun.cn:8888 https://httpbin.org/ip常见问题排查
问题 1:Safari 和 Chrome 能走代理但终端不走
macOS 的系统代理只对 GUI 应用程序生效。终端需要使用 export 命令单独配置。如果您在终端中运行 curl、git、npm 等命令需要走代理,请执行 export 命令或在 shell 配置文件中添加代理设置。
问题 2:设置了系统代理后部分 App 不走
与 Android 和 Windows 一样,macOS 的系统代理也只对遵守系统代理设置的应用生效。部分第三方应用可能忽略系统代理。如果需要全局代理,推荐使用 Proxifier 等代理客户端软件。
问题 3:终端代理设置了但不起作用
检查 export 命令中的代理地址和端口是否正确。注意区分 http_proxy 和 https_proxy——前者用于 HTTP 请求,后者用于 HTTPS 请求。很多程序只识别小写版本(http_proxy),建议同时设置大小写两种格式。
系统代理 vs 终端代理 vs 工具代理对比
| 配置方式 | 影响范围 | 优点 | 缺点 |
|---|---|---|---|
| 系统代理 | GUI 应用 | 一次性配置,Safari/Chrome 等自动生效 | 对终端无效,不支持 SOCKS5 |
| 终端 export | 当前终端 | 命令行工具自动使用 | 每个新终端需重设 |
| shell 配置文件 | 所有终端 | 永久生效,不需要重复配置 | 需要编辑配置文件 |
| 工具级配置 | 单个工具 | 不影响其他工具 | 每个工具单独配置 |
注意事项
- 系统代理和终端代理是分开的,需要分别配置
- 编辑 shell 配置文件前建议先备份,以免配置错误导致终端无法正常使用
- 使用代理时,建议同时设置
no_proxy环境变量,让本地地址不走代理 - macOS 的 SOCKS5 代理配置需要通过工具级配置或代理客户端软件实现
- 不需要代理时,记得在系统设置中关闭代理,或在终端中取消 export 设置
更多参考
- Android 手机代理设置教程
- Windows 系统代理设置教程
- Linux 终端代理设置教程
多网络环境切换
macOS 的代理设置按网络连接独立保存。这意味着您可以为不同网络配置不同的代理:
- 办公室 WiFi:配置公司代理
- 家庭 WiFi:配置个人代理
- 以太网(有线连接):不配置代理
切换网络时,macOS 会自动加载对应的代理设置,不需要每次手动修改。这个特性在多环境工作的用户中非常实用。
浏览器 vs 系统代理的优先级
在 macOS 上,浏览器的代理优先级为:Firefox 独立配置 > Chrome/Edge 跟随系统设置。如果您在 Firefox 中配置了代理,它会覆盖系统代理设置。如果您在系统设置中关闭了代理,Firefox 仍然使用自己的代理配置。
常见问题补充
Mac 上终端代理不生效?
检查是否在正确的 shell 配置文件中设置了 export。如果使用 zsh(macOS 默认),代理配置要在 ~/.zshrc 中。如果使用 bash,要在 ~/.bash_profile 中。执行 source 命令后确认环境变量已生效:echo $http_proxy。
系统代理和 VPN 冲突吗? macOS 的代理设置和 VPN 可以同时使用。代理只影响特定的网络协议,VPN 影响所有流量。同时使用时,流量先从代理经过,再到 VPN。
代理脚本自动化
如果您经常需要在不同的代理配置之间切换,可以创建一个简单的 shell 脚本来快速切换:
#!/bin/bash
# 开启代理
function proxy_on() {
export http_proxy=http://proxy.16yun.cn:8888
export https_proxy=http://proxy.16yun.cn:8888
echo "Proxy enabled"
}
# 关闭代理
function proxy_off() {
unset http_proxy
unset https_proxy
echo "Proxy disabled"
}将以上函数添加到 ~/.zshrc 中,然后在终端中执行 proxy_on 或 proxy_off 即可快速切换。
代理与 AirDrop、Handoff 的兼容性
macOS 的系统代理设置不会影响 AirDrop、Handoff、AirPlay 等苹果生态功能。这些功能使用蓝牙和点对点 WiFi 直连,不经过代理服务器。
代理断开后的处理
如果代理服务器突然断开,正在使用的网络连接会中断。关闭系统代理后,网络会自动恢复到直连状态。如果使用终端代理,执行 unset http_proxy 即可恢复。
命令行工具走代理的排障
如果在终端中配置了 export 但某些命令不走代理,可能的原因:
- 大小写问题:部分命令只识别大写或小写的环境变量,建议同时设置
- 程序绕过代理:部分程序(如 curl)支持 --noproxy 参数
- 协议匹配:确保 http_proxy 走 HTTP 请求,https_proxy 走 HTTPS 请求
- localhost 排除:检查 no_proxy 是否包含了目标地址
macOS 不同版本代理设置差异
| macOS 版本 | 设置入口 | 区别 |
|---|---|---|
| macOS 10.15 (Catalina) | 系统偏好 → 网络 → 高级 → 代理 | 经典界面 |
| macOS 11-12 (Big Sur/Monterey) | 系统偏好 → 网络 → 高级 → 代理 | 界面微调 |
| macOS 13+ (Ventura 及以上) | 系统设置 → 网络 → 详细信息 → 代理 | 新版界面 |
虽然设置入口的名称和位置在不同版本中有所变化,但代理配置的核心选项和填写方式保持一致。如果您使用的版本与本文示例不完全一致,按照对应的设置入口操作即可。
安全建议
- 避免在公共 WiFi 环境中不使用加密的 HTTP 代理
- 优先使用用户名密码认证的代理,避免开放代理
- 终端中设置代理后,避免在同一个终端中执行涉及敏感信息的命令
- 定期检查 no_proxy 设置,确保本地网络不会意外走代理
- 不需要代理时及时通过 unset 命令清除环境变量
需要企业代理方案?
我们可根据目标站点、并发规模与稳定性目标提供定制方案。