通过系统设置在 macOS 的 Safari 上设置代理

如何使用系统设置在 macOS 的 Safari 上配置代理服务器。本分步指南以 macOS 15.5 为例。对于 macOS 13 及以上版本同样适用,因为从 13 版本开始,系统设置界面(包括代理部分)发生了变化。

打开 Safari 设置

通过顶部栏进入 Safari 的设置。

在 macOS 的 Safari 中点击后出现的下拉设置菜单

进入“高级”部分,选择“更改设置”。

macOS 中带有可用网络列表的 Wi-Fi 设置菜单

这将打开系统的代理设置菜单。

输入代理服务器连接设置

进入代理设置子菜单,选择代理类型:HTTP、HTTPS 或 SOCKS。

macOS 中手动配置代理服务器的子部分

填写代理服务器参数:

  • IP 地址或服务器主机名(如 proxy.example.com 或 192.168.1.1);
  • 端口(通常为 4 或 5 位数字);
  • 如果你的代理需要用户名和密码,请勾选该选项并输入信息;
  • 排除简单主机名 —— 你可以指定哪些网站不使用代理。

点击“确定”以保存设置。至此,macOS 的代理设置完成。

macOS 中的代理服务器设置

检查网络连接和 IP 地址变化

打开 Safari,尝试访问任何可以显示你 IP 地址的网站。在我的情况下,Safari 还会额外要求输入代理的用户名和密码。

macOS 中 Safari 的代理服务器认证提示

如果一切设置正确,你会看到自己的 IP 地址发生了变化。

在 macOS 设置代理后 Safari 中显示的当前 IP 地址已变化

钥匙串问题

我遇到过这样的问题:在 macOS 设置中启用代理服务器后,系统会不断弹出钥匙串提示:“%appname% 想要使用存储在你的钥匙串中 ‘代理 IP 地址’ 的机密信息。要允许此操作,请输入‘登录’钥匙串密码。”在网上查找后,我发现了一些关于重置钥匙串密钥的解决方案,但因为不是我的 MacBook,所以没有实际操作 🙁。

macOS 中 %appname% wants to use your confidential information 提示

常见问题解答

macOS 支持哪些类型的代理?

macOS 支持 HTTP、HTTPS 和 SOCKS 代理(IPv4)。至于代理类型,支持所有类型(服务器、移动、住宅等)。

Safari 可以在哪里获得代理?

  • 在 Google 上查找免费的代理列表。有些网站会发布免费代理并通过流量盈利。不建议使用此方式,因为攻击者可能会获取你通过设备发送的数据。
  • 购买代理。这样你可以选择国家、代理类型、租用时长、流量等,并确保连接安全。
  • 自建代理服务器。如果你有自己的服务器(如在家或公司),可以通过它来转发你的流量。

哪些 macOS 版本支持代理?

所有现代 macOS 版本都支持代理。从 13 版本开始,设置界面发生了变化,因此本指南适用于 13 及以上版本。

如何查看 Safari 设置了哪个代理?

你可以在代理设置中查看:“系统设置” – “Wi-Fi 或网络” – 已连接网络旁的 “详细信息” – “代理”。

为什么需要在 Safari 使用代理?

  • 访问你所在地区受限的网站和服务;
  • 匿名和数据保护 —— 隐藏你的真实 IP 地址;
  • 更改地理位置 —— 访问你所在地区无法获取的内容;
  • 某些情况下,代理可用于广告屏蔽和节省流量。

HTTP、HTTPS 和 SOCKS 代理有何区别?

  • HTTP 代理:如果连接未加密(普通 HTTP),你的网络运营商可以看到你所有的流量 —— 你访问了哪些网站,发送了什么数据,加载了什么内容。如果用 HTTP 代理访问 HTTPS 网站(CONNECT 方法),运营商只看到网站名(SNI)和连接本身,但看不到页面内容(除非代理拦截并解密流量)。代理服务器所有者可以看到所有 HTTP 流量(包括地址、请求和响应)。通过 HTTP 代理访问 HTTPS —— 只能看到网站地址,看不到内容(除非存在中间人攻击)。
  • HTTPS 代理:与 HTTP 代理类似,但客户端与代理之间的连接经过 TLS/SSL 加密。运营商只能看到你连接了代理(IP 和端口),但无法看到任何内容(即使是你与代理之间的数据也无法看到,因流量已加密)。在代理之后 —— 如果访问的是 HTTP 网站,代理所有者可以看到一切;你的运营商则无法看到。
  • SOCKS 代理(通常为 SOCKS5):作为传输层的通用隧道协议,仅转发你与远程服务器之间的“原始”数据。如果应用使用加密协议(如通过 SOCKS 使用 HTTPS),运营商只能看到你与代理的连接,看不到流量走向。如果数据未加密(如通过 SOCKS 的普通 HTTP),则代理所有者可以看到流量,运营商看不到。代理所有者能看到所有未加密通过的数据。使用 HTTPS 时,只能看到网站名,与其他情况一样。
    • SOCKS 并非总是“VPN”:SOCKS 本身不加密流量,仅仅是隧道。
    • HTTPS 代理 ≠ VPN:只加密你和代理之间的通道,不加密你与目标网站之间的数据。
    • 运营商始终能看到你连接了代理(IP 地址和端口),但使用加密时不一定能看到内容。

代理和 VPN 有什么区别?

VPN 在操作系统层面运行,会将所有流量重定向到 VPN;而代理在应用层面工作,仅重定向特定应用或浏览器的流量。

可能遇到的问题

  • 输入代理数据后无法加载任何内容 —— 请检查代理设置是否正确,并注意钥匙串提示
  • 代理用户名或密码错误 —— 请检查代理参数设置

参考资料