macOS Catalina 代理设置:旧版入口、HTTP/SOCKS 选择与恢复方法
简答:macOS Catalina 10.15 的系统代理入口是:打开“系统偏好设置”→“网络”→选择 Wi-Fi 或以太网→“高级”→“代理”。先确认代理类型、服务器地址、端口和认证方式,再只启用服务端要求的选项;设置后用 networksetup 查看状态、用 curl 做实际请求测试。若无法上网,先关闭 HTTP、HTTPS、SOCKS、PAC 和自动发现,恢复直连后再逐项启用。本文为通用技术整理。
定义:macOS Catalina 代理设置,是在某个网络服务中配置 HTTP、HTTPS、SOCKS 或 PAC,让支持相应方式的应用通过代理服务器连接网络。
先看结论:Catalina 代理入口和最快设置方法
在 macOS Catalina 10.15 中,先打开系统偏好设置 → 网络,选择当前正在使用的Wi-Fi或以太网,点击高级 → 代理。Catalina 使用旧版“系统偏好设置”界面,不要套用新版 macOS 的“系统设置 → 网络 → 详细信息”路径。
Apple 的代理说明将自动发现、PAC、HTTP、HTTPS 和 SOCKS 列为不同设置项;当前官方文档可参考Apple:在 Mac 上输入代理服务器设置。界面名称随系统版本不同,但代理地址、端口、认证和绕过规则的含义相同。
| 你拿到的配置 | Catalina 中选择 | 填写方式 |
|---|---|---|
| HTTP 代理 | 网页代理(HTTP) | 填写服务器地址和端口;按要求填写账号密码 |
| HTTPS 代理 | 安全网页代理(HTTPS) | 仅在服务端明确提供 HTTPS 代理时启用 |
| SOCKS 代理 | SOCKS 代理 | 填写 SOCKS 服务器地址和端口 |
| PAC 地址 | 自动代理配置 | 将 PAC 文件 URL 填入 URL 栏 |
| 局域网自动发现 | 自动发现代理 | 仅在网络管理员或配置说明要求时启用 |
最短做法:不要按目标网站是否使用 HTTPS 来决定是否勾选“HTTPS 代理”。HTTP、HTTPS 是代理服务类型,是否启用取决于代理服务端提供的配置;SOCKS 也不能直接当作 HTTP 代理填写。
macOS Catalina 代理设置步骤
- 点击左上角苹果菜单,打开系统偏好设置,进入网络。
- 在左侧选择当前实际联网的服务,例如Wi-Fi或以太网。如果两者都要使用,必须分别检查和配置。
- 点击高级,再打开代理标签页。
- 根据配置资料,只勾选对应的 HTTP、HTTPS 或 SOCKS 代理类型,填写服务器地址和端口。
- 如果代理要求认证,启用“代理服务器需要密码”,再输入用户名和密码。不要将含密码的配置截图或写入公开脚本。
- 如果拿到的是 PAC 文件地址,勾选自动代理配置并填写 URL;不要把 PAC 地址填入普通代理服务器地址栏。
- 点击好,再点击应用,关闭并重新打开受影响的应用。
Safari 的代理入口会跳转到系统网络设置。Catalina 中可按Safari → 偏好设置 → 高级 → 代理旁的更改设置进入;Apple 当前 Safari 指南同样说明“更改设置”会打开网络设置,可参考Apple:在 Mac 上通过 Safari 设置代理服务器。
HTTP、HTTPS、SOCKS 和 PAC 到底怎么选
HTTP 代理、HTTPS 代理和SOCKS 代理是不同的代理类型,不是根据网页地址的协议自动决定。访问 HTTPS 网站,并不代表必须启用“安全网页代理(HTTPS)”;必须以代理服务端给出的类型、地址和端口为准。
- 只提供 HTTP:先只启用网页代理(HTTP),完成实际请求测试。
- 同时提供 HTTP 和 HTTPS:按服务端说明分别填写,不能只因地址相同就自行推断两个选项都必须开启。
- 只提供 SOCKS:只启用 SOCKS 代理,不要将 SOCKS 端口填进 HTTP 或 HTTPS。
- 提供 PAC URL:使用自动代理配置,避免同时开启多个手动代理造成判断混乱。
- 有绕过列表:只加入确实不应走代理的主机或域名,排查时可暂时记录并清空后对比。
Apple 的官方说明列出了 HTTP、HTTPS、SOCKS、PAC、自动发现和绕过主机域名等选项,可参考Apple:在 Mac 上更改代理设置。
配置完成后怎么验证:状态、请求、端口和 DNS
不要只看代理复选框是否勾选。建议按下面顺序验证,先确认系统状态,再做真实请求,最后区分端口、应用和 DNS 问题。
| 检查目标 | 命令或动作 | 成功信号 |
|---|---|---|
| 网络服务名称 | networksetup -listallnetworkservices | 找到当前使用的 Wi-Fi 或以太网名称 |
| HTTP 状态 | networksetup -getwebproxy "Wi-Fi" | 显示当前服务的启用状态、服务器和端口 |
| HTTPS 状态 | networksetup -getsecurewebproxy "Wi-Fi" | 显示安全网页代理状态 |
| SOCKS 状态 | networksetup -getsocksfirewallproxy "Wi-Fi" | 显示 SOCKS 代理状态 |
| 实际 HTTP 请求 | curl -I --max-time 10 -x http://代理地址:端口 https://example.com | 返回 HTTP 响应或明确的连接错误,而不是无限等待 |
| 直连对照 | curl -I --max-time 10 --noproxy "*" https://example.com | 与代理请求结果对照,区分代理问题和本地网络问题 |
| 端口监听 | nc -vz -w 5 代理地址 端口 | 在系统提供 nc 且网络允许时,能够建立 TCP 连接 |
| 当前 DNS 配置 | scutil --dns | grep nameserver | 看到当前解析器地址;这只能查看配置,不能单独证明不存在 DNS 泄漏 |
Apple 说明 networksetup 可列出网络服务并查看或配置网络设置,可参考Apple:networksetup 说明。curl 官方文档说明 -x 用于指定代理,--noproxy 可绕过代理,代理环境变量也会影响请求,可参考curl 官方命令手册。
如果代理地址包含账号密码,不建议直接写进命令行,因为命令可能出现在终端历史或进程信息中。测试完成后应清理历史记录中的敏感内容,并优先使用应用提供的安全认证方式。
Safari、Chrome、Firefox 和终端为什么表现不同
系统代理设置并不等于所有应用都会以同样方式使用代理。浏览器可能读取系统网络设置,也可能由扩展、独立配置或应用策略覆盖;终端工具还可能读取自己的环境变量。
- Safari:通过系统网络代理设置工作,Safari 的“更改设置”会跳转到网络设置。
- Chrome:在 macOS 上常见情况是参考系统网络设置,但扩展、启动参数或企业策略可能改变结果,需用实际网页请求验证。
- Firefox:可能使用自己的连接设置;若系统代理生效而 Firefox 不生效,应检查 Firefox 的连接设置,而不是反复修改 Catalina 系统代理。
- 终端与 curl:可能读取
http_proxy、HTTPS_PROXY、ALL_PROXY和NO_PROXY等变量。curl 官方资料说明,协议专用变量优先于ALL_PROXY,NO_PROXY可让指定主机绕过代理。
先执行下面的只读检查:
env | grep -i proxy
如果系统代理已经关闭但终端仍走代理,检查当前 Shell 会话和启动脚本中的变量;如果系统代理已开启但 curl 不走代理,可用带 -x 的单次命令做对照,不要立即修改长期配置文件。
代理开启后无法上网:按最小风险顺序恢复
- 回到系统偏好设置 → 网络 → 当前网络服务 → 高级 → 代理,记录原有设置后,暂时取消 HTTP、HTTPS、SOCKS、自动代理配置和自动发现。
- 点击好 → 应用,关闭并重新打开浏览器,再用直连方式访问普通网页。
- 如果直连恢复,只重新启用服务端明确要求的一种代理,先核对地址、端口和认证,再做 curl 请求测试。
- 如果直连仍失败,执行
networksetup -listallnetworkservices确认选中的网络服务没有错;再检查 Wi-Fi 或以太网本身是否能正常联网。 - 如果只有某个应用失败,检查该应用自己的代理、扩展、环境变量或网络扩展,不要继续修改系统代理。
| 现象 | 优先检查 | 下一步 |
|---|---|---|
| 所有网页都打不开 | 代理地址、端口、协议和认证 | 关闭全部代理,确认直连后再逐项恢复 |
| Safari 能用,终端不能用 | 环境变量和 curl 参数 | 执行 env | grep -i proxy,再做带 -x 与 --noproxy 的对照 |
| Wi-Fi 能用,以太网不能用 | 网络服务是否分别配置 | 在以太网服务中重新检查代理页面 |
| 端口测试失败 | 服务器、端口、防火墙或线路 | 核对服务端配置,不要继续更换浏览器设置 |
| 网页能开但解析异常 | DNS 配置、PAC 或应用规则 | 用 scutil --dns 查看解析器,并做直连与代理请求对照 |
常见问题
macOS Catalina 代理设置在哪里?
路径是“系统偏好设置 → 网络 → 选择 Wi-Fi 或以太网 → 高级 → 代理”。Catalina 使用旧版系统偏好设置,不是新版 macOS 的“系统设置”。
HTTP、HTTPS 和 SOCKS 代理需要全部勾选吗?
不需要。只勾选代理服务端明确提供的类型。是否同时填写 HTTP 和 HTTPS,不能仅凭端口相同或目标网站使用 HTTPS 来判断。
macOS Catalina 设置代理后无法上网怎么办?
先记录原值,再关闭 HTTP、HTTPS、SOCKS、PAC 和自动发现,点击“应用”恢复直连。如果直连恢复,再逐项启用并核对服务器地址、端口和认证信息。
Safari 能用代理,但终端不能用,是什么原因?
系统代理和终端环境变量属于不同配置层。先执行 env | grep -i proxy,再用 curl 的 -x 参数做单次测试,不要把含密码的代理地址直接写入长期配置。
Wi-Fi 和以太网需要分别设置代理吗?
需要分别检查。代理设置跟随选中的网络服务保存,Wi-Fi 与以太网通常是不同服务,不能假设一个服务的代理设置会自动复制到另一个服务。
用 scutil --dns 能确认没有 DNS 泄漏吗?
不能。该命令只能查看当前系统解析器配置。它适合确认 DNS 是否仍指向预期的解析器;是否存在实际泄漏,还要结合具体应用、代理类型和可控的外部测试环境判断。
继续阅读:从系统代理进入连接排查
如果 Catalina 已经完成系统代理设置,但具体应用仍无法连接,下一步应区分系统代理、网络扩展、DNS 和客户端配置,不要把所有问题都归因于代理地址。
常见问题
macOS Catalina 代理设置在哪里?
路径是“系统偏好设置 → 网络 → 选择 Wi-Fi 或以太网 → 高级 → 代理”。
HTTP、HTTPS 和 SOCKS 代理需要全部勾选吗?
不需要,只启用代理服务端明确提供的类型。访问 HTTPS 网站不代表必须启用 HTTPS 代理。
macOS Catalina 设置代理后无法上网怎么办?
记录原值后暂时关闭 HTTP、HTTPS、SOCKS、PAC 和自动发现,应用设置恢复直连,再逐项启用并核对地址、端口和认证。
Safari 能用代理但终端不能用怎么办?
检查终端环境变量:执行 env | grep -i proxy,再用 curl 的 -x 参数做单次代理请求测试。
Wi-Fi 和以太网需要分别设置代理吗?
需要分别检查,因为代理设置跟随选中的网络服务保存。
scutil --dns 能证明没有 DNS 泄漏吗?
不能。它只能显示当前 DNS 配置,是否存在实际泄漏还要结合应用、代理类型和外部测试环境判断。