2025 年 macOS 代理设置教程(系统代理 + 终端代理)

2025 年 macOS 16 系统代理设置完整教程。覆盖系统偏好设置、终端命令行代理、浏览器代理配置和常见问题排查。

亿牛云技术团队2025年4月11日9 分钟阅读

适用场景

2025 年 macOS 16 是 Mac 电脑的主流系统版本。在 macOS 上配置代理的需求很常见:在公司办公网络下通过代理访问企业内网资源、在数据采集和爬虫开发过程中使用代理 IP、在跨境电商运营中管理多个店铺账号。

温馨提示: macOS 的代理设置分为系统层面和终端层面。系统代理对 GUI 应用生效,终端代理对命令行工具生效。本文会分别介绍这两种方式。

准备工作

开始设置前,请确认以下代理信息已经准备就绪:

项目说明示例
代理服务器地址IP 地址或域名proxy.16yun.cn
端口号HTTP 代理常用 8888,SOCKS5 常用 10808888
用户名代理认证用(如果不需要认证可留空)your-username
密码代理认证用your-password
代理类型HTTP/HTTPS/SOCKS5HTTP

方式一:系统偏好设置代理(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_proxyhttps_proxy——前者用于 HTTP 请求,后者用于 HTTPS 请求。很多程序只识别小写版本(http_proxy),建议同时设置大小写两种格式。

系统代理 vs 终端代理 vs 工具代理对比

配置方式影响范围优点缺点
系统代理GUI 应用一次性配置,Safari/Chrome 等自动生效对终端无效,不支持 SOCKS5
终端 export当前终端命令行工具自动使用每个新终端需重设
shell 配置文件所有终端永久生效,不需要重复配置需要编辑配置文件
工具级配置单个工具不影响其他工具每个工具单独配置

注意事项

  1. 系统代理和终端代理是分开的,需要分别配置
  2. 编辑 shell 配置文件前建议先备份,以免配置错误导致终端无法正常使用
  3. 使用代理时,建议同时设置 no_proxy 环境变量,让本地地址不走代理
  4. macOS 的 SOCKS5 代理配置需要通过工具级配置或代理客户端软件实现
  5. 不需要代理时,记得在系统设置中关闭代理,或在终端中取消 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 但某些命令不走代理,可能的原因:

  1. 大小写问题:部分命令只识别大写或小写的环境变量,建议同时设置
  2. 程序绕过代理:部分程序(如 curl)支持 --noproxy 参数
  3. 协议匹配:确保 http_proxy 走 HTTP 请求,https_proxy 走 HTTPS 请求
  4. localhost 排除:检查 no_proxy 是否包含了目标地址

macOS 不同版本代理设置差异

macOS 版本设置入口区别
macOS 10.15 (Catalina)系统偏好 → 网络 → 高级 → 代理经典界面
macOS 11-12 (Big Sur/Monterey)系统偏好 → 网络 → 高级 → 代理界面微调
macOS 13+ (Ventura 及以上)系统设置 → 网络 → 详细信息 → 代理新版界面

虽然设置入口的名称和位置在不同版本中有所变化,但代理配置的核心选项和填写方式保持一致。如果您使用的版本与本文示例不完全一致,按照对应的设置入口操作即可。

安全建议

  1. 避免在公共 WiFi 环境中不使用加密的 HTTP 代理
  2. 优先使用用户名密码认证的代理,避免开放代理
  3. 终端中设置代理后,避免在同一个终端中执行涉及敏感信息的命令
  4. 定期检查 no_proxy 设置,确保本地网络不会意外走代理
  5. 不需要代理时及时通过 unset 命令清除环境变量

需要企业代理方案?

我们可根据目标站点、并发规模与稳定性目标提供定制方案。