返回博客

Mac代理设置教程:从macOS配置到连接验证与故障排查

Adrian Cole

2026年9月21日 · 教程 · 22 分钟阅读

在macOS Ventura 13及更新版本中,Mac代理设置的入口是“系统设置 → 网络 → 当前网络服务 → 详细信息 → 代理”。 准备好代理服务器地址、端口和认证信息后,开启对应的代理选项,填写参数并保存。Monterey 12及更早版本的入口见下方对照表。

这里最容易误解的是“系统代理”的范围:它只对遵循macOS系统代理设置的应用起作用,并不保证整台电脑的所有流量都经过代理。因此,配置完成后还要分别检查浏览器、命令行工具和实际使用的软件。

本文以Rola IP为例,介绍如何手动设置代理、通过终端检查连接、使用PAC自动配置,以及让指定网站不走代理。

Mac代理怎么设置?先看操作要点

  1. 在代理服务控制台生成连接参数,准备服务器地址、端口、用户名和密码。
  2. 打开当前正在使用的Wi-Fi或以太网服务,进入“代理”面板。
  3. 根据服务商提供的协议填写参数。使用HTTP正向代理访问HTTP和HTTPS网站时,通常需要分别配置“网页代理”和“安全网页代理”。
  4. 保存后检查浏览器出口IP,并访问一个正常的HTTPS网站;需要进一步检查代理服务器时,可以在curl命令中直接指定代理地址进行测试。
  5. 如果某个软件仍未走代理,检查该软件自己的代理设置和认证支持情况。

出口IP变化只是辅助信息。 它既不能单独证明所有应用都已使用代理,也不能证明国家定位、网络类型或会话保持时间符合要求。

Mac代理设置在哪里?新旧系统入口对照

macOS版本 设置路径
Ventura 13及更新版本 苹果菜单 → 系统设置 → 网络 → 当前网络服务 → 详细信息 → 代理
Monterey 12及更早版本 苹果菜单 → 系统偏好设置 → 网络 → 当前网络服务 → 高级 → 代理

不同版本的中文界面可能使用“详细信息”或“详细设置”等表述,找到当前网络服务的详情页面即可。英文界面对应的是 Network → Details → Proxies。

Wi-Fi和以太网分别保存各自的代理设置。给Wi-Fi配置代理后,改用网线连接时,还需要检查以太网的代理设置。

Safari、Chrome通常会使用系统代理,但浏览器扩展、管理策略或其他网络软件可能改变连接方式。curl、Python脚本和部分应用则可能需要通过环境变量或软件内的选项单独设置代理。

HTTP、HTTPS和SOCKS5代理该选哪个?

按代理服务提供的接入协议选择,不能只看目标网站的网址。 例如,访问HTTPS网站时,服务商提供的入口仍可能是HTTP正向代理。

macOS面板选项 用途 配置时要注意什么
网页代理(HTTP) 为HTTP请求指定代理 只配置这一项,不代表HTTPS请求也会采用相同设置
安全网页代理(HTTPS) 为HTTPS请求指定代理 名称不代表Mac到代理网关之间一定使用TLS加密
SOCKS代理 为支持SOCKS的应用转发流量 用户名认证、DNS解析方式和协议支持取决于客户端
自动代理配置 按PAC文件的规则选择代理或直连 需要可信的PAC地址,且要检查规则是否实际命中
自动代理发现 在支持的网络中自动发现代理配置 一般按组织网络要求使用,不必为手动接入随意开启

“安全网页代理”表示这组设置用于HTTPS请求。HTTP正向代理可以通过CONNECT隧道转发HTTPS流量,但访问网站时是否使用HTTPS,与Mac连接代理服务器时是否使用TLS加密,需要分别判断。

初次配置时,只启用需要的选项。不要把HTTP、HTTPS、SOCKS和PAC全部打开,否则出现问题时很难判断请求采用了哪套设置。Apple的在Mac上输入代理服务器设置说明了这些选项的基本用途。

配置前,先准备好连接参数

信息 用来做什么
当前网络服务名称 确认要修改Wi-Fi、以太网还是其他适配器
代理产品类型 区分住宅、机房或移动网络,避免混用接入规则
服务器地址(Host)与端口(Port) 分别填写到服务器和端口字段
用户名(Username)与密码(Password) 用于代理认证;用户名可能已经包含地区和会话参数
地区与会话要求 确定需要哪个国家的出口,以及是否要保持会话
配置前的公网IP 为后续对比留下基准

修改前,记录已有的代理开关、PAC地址、绕过列表,以及VPN、iCloud专用代理和浏览器扩展的状态。公司管理的Mac还可能受配置描述文件或MDM策略控制,应按管理员要求操作。

可以先在准备测试的浏览器中打开ipify公网IP查询接口,保存返回结果。前后对比时尽量保持VPN等其他网络条件一致,否则IP变化可能来自另一条网络路径。

Mac代理设置步骤:以Rola IP为例

以下截图使用英文界面,主要帮助定位设置入口。截图中的 127.0.0.1 是本机回环地址,不能直接作为Rola IP网关使用。 服务器、端口和账号信息均应以自己的控制台为准。

第一步:选择适合用途的代理网络

登录控制台,先按用途选择代理网络。需要查看网站在住宅网络环境中的展示效果时,可以选择住宅代理;进行API测试或批量数据请求时,可以考虑机房代理,但应先获得授权并遵守目标站规则;需要移动运营商提供的出口IP时,则选择移动代理。

移动代理只改变出口网络,并不会把Mac变成手机,也不会自动模拟移动端浏览器。选定产品后,再生成该产品对应的连接参数,不要沿用其他产品的端口或用户名格式。

Rola IP快速开始页面中的代理网络选择与连接信息入口

图1:英文快速开始页面示意,用于定位代理网络和连接信息。

第二步:完整复制服务器、端口和认证信息

从控制台复制服务器地址、端口、用户名和密码,分别对应Host、Port、Username和Password。填写服务器字段时,通常只填主机名或IP地址,不要把包含账号、密码和端口的完整代理链接填进去。

根据Rola IP中文代理参数文档(核验日期:2026年9月20日),动态住宅、动态机房和移动网络均支持国家级定位,州及城市参数仅适用于动态住宅网络。请按所选产品生成完整用户名,不要混用其他产品的账号标记或地区参数。

会话标识写在账号名后的下划线后面,不要自行改成单独的 -sessionid- 参数。如果同一流程需要尽量保持相同IP,应按文档使用相同的会话标识,并设置会话时长,不要同时开启“每次请求更换IP”。使用同一会话标识也不代表IP会永久不变。

Rola IP参数文档中的地区、会话与轮换设置说明

图2:根据所选产品核对地区和会话参数,用户名中的下划线、连字符都应完整保留。

第三步:打开当前网络的代理面板

点击左上角苹果菜单,打开“系统设置”,在侧边栏选择“网络”。

macOS系统设置页面及侧边栏中的网络入口

图3:从系统设置进入Network(网络)。

选择当前正在使用的Wi-Fi、以太网或其他网络服务,点击“详细信息”。

macOS当前网络详情窗口左侧的Proxies代理入口

图4:已进入当前网络的详情窗口,点击左侧Proxies(代理)继续配置。

在详情窗口中选择“代理”。修改前记下已有设置,尤其是PAC地址和绕过列表,便于测试结束后恢复。

macOS代理面板中的自动配置和HTTP代理选项

图5:Proxies(代理)面板上半部分,向下滚动可查看其他协议和不走代理的地址列表。图中为已有本地代理配置,仅用于说明填写位置,不要照抄地址或开关状态。

第四步:启用协议并填写连接参数

如果使用HTTP正向代理访问网页,按控制台说明分别填写“网页代理(HTTP)”和“安全网页代理(HTTPS)”。如果使用SOCKS5,则填写“SOCKS代理”。

macOS SOCKS代理的服务器、端口及绕过设置区域

图6:SOCKS配置位置示意。图中是已有的本地代理配置,地址、端口和开关状态不应照抄。

在对应字段填写服务器和端口。采用账号密码认证时,打开“代理服务器需要密码”,输入完整用户名与密码。SOCKS5是否支持用户名密码认证还取决于实际应用,系统保存成功并不等于应用一定能用。

macOS网页代理与安全网页代理的服务器和认证开关

图7:截图显示的是 127.0.0.1:4780 本地代理,且认证未开启。使用需要密码的Rola IP网关时,请填写自己的服务器地址和端口,并开启认证、填写账号密码。此图不是Rola IP连接成功的记录。

第五步:检查绕过列表,保存并验证

“忽略这些主机与域的代理设置”中的地址会尝试直连。保留确实需要直连的本地或内网地址,确认没有误加正在测试的网站,然后点击“好”或“确定”保存;旧版系统如出现“应用”按钮,还需应用更改。

保存后,先在浏览器中重新打开前面使用的IP查询地址,再访问一个正常的HTTPS网站,确认页面可以加载,且没有证书错误。如果需要核对出口IP所在地区,可使用IP查询辅助检查。不同数据库的定位结果可能存在差异;一次查询也无法确认出口属于哪类网络,或判断IP能保持多久。

如果浏览器无法正常访问,可以用下面的curl命令单独测试代理连接,进一步判断问题出在代理参数还是浏览器设置。

如何在终端查看Mac代理服务器设置?

遇到问题时,先读取配置,避免反复修改。打开“终端”,执行:

networksetup -listallnetworkservices
networksetup -getwebproxy "Wi-Fi"
networksetup -getsecurewebproxy "Wi-Fi"
networksetup -getsocksfirewallproxy "Wi-Fi"
networksetup -getautoproxyurl "Wi-Fi"
networksetup -getproxyautodiscovery "Wi-Fi"
networksetup -getproxybypassdomains "Wi-Fi"
scutil --proxy

先看第一条命令列出的网络服务名称,再把后续命令中的 Wi-Fi 换成正在使用的服务名称。networksetup 查看某个网络服务的配置,scutil --proxy 则显示当前动态代理状态。

使用networksetup在Mac终端中读取代理配置的输出示意

图8:本地代理配置的只读检查示意。能读到服务器和端口,说明配置存在,不代表网关连通或认证成功。

如何用curl验证代理是否可用?

在curl命令中直接指定代理地址,可以检查curl能否通过该代理完成请求。 如果测试成功而浏览器仍无法访问,就应进一步检查浏览器采用的代理设置。

以下示例适用于macOS默认的zsh,使用HTTP正向代理。proxy.example、端口和用户名都是占位值,必须替换为控制台生成的信息。本教程中的命令不是使用真实账号完成的实测记录。

ROLA_PROXY_HOST="proxy.example"
ROLA_PROXY_PORT="1000"
ROLA_PROXY_USER="copy-the-username-generated-by-your-console"
IFS= read -r -s "ROLA_PROXY_PASSWORD?请输入代理密码:"
echo

# 关闭 curl 层面的代理,获取对照结果。
curl -q --noproxy "*" --connect-timeout 10 --max-time 30 \
  --write-out '\nHTTP status: %{http_code}\n' \
  "https://api64.ipify.org?format=json"
ROLA_DIRECT_EXIT=$?
printf 'curl exit code: %s\n' "$ROLA_DIRECT_EXIT"

# 显式使用代理,避免 NO_PROXY 让目标地址绕过代理。
curl -q --noproxy "" \
  --proxy "http://${ROLA_PROXY_HOST}:${ROLA_PROXY_PORT}" \
  --proxy-user "${ROLA_PROXY_USER}:${ROLA_PROXY_PASSWORD}" \
  --connect-timeout 10 --max-time 30 \
  --write-out '\nHTTP status: %{http_code}\n' \
  "https://api64.ipify.org?format=json"
ROLA_PROXY_EXIT=$?
printf 'curl exit code: %s\n' "$ROLA_PROXY_EXIT"

unset ROLA_PROXY_PASSWORD

本例请求的是ipify接口,应同时满足三个条件:curl退出码为0、HTTP状态码为200、返回的JSON中包含有效IP地址。不能只看退出码或状态码,还要检查返回内容。

输出中的HTTP status表示目标请求的HTTP状态码。如果在建立HTTPS代理隧道时出现407等错误,还要结合curl的错误信息判断。请保留实际输出,先定位失败原因,再决定是否重试。

-q放在curl的第一个选项位置,用于忽略默认配置文件;--noproxy ""用于避免环境变量NO_PROXY中的直连规则让本次请求绕过代理。读取密码时,-r保留反斜杠原值,-s隐藏输入。

如果接入的是SOCKS5网关,把第二条命令的代理地址改为 "socks5h://${ROLA_PROXY_HOST}:${ROLA_PROXY_PORT}",并使用对应的SOCKS5端口。socks5h 让代理解析目标域名,socks5 则由本机解析;其他认证和超时选项保持不变。

这些命令只控制curl自己的代理设置,无法排除VPN、透明网关或企业安全设备的影响。curl测试成功后,仍需单独检查浏览器的HTTPS访问和证书校验。直连IP可能变化,代理也可能与直连使用相同出口,因此不能仅凭IP是否变化判断代理是否生效;地区和IP保持时间还需另外查询或连续测试。

按提示输入密码,可以避免把密码直接写进命令历史,但命令运行时仍会短暂将密码作为进程参数传递。这种方式适合可信的本地环境;在共享设备上,应按组织要求处理账号密码。

进阶:通过终端配置macOS代理

日常使用优先通过图形界面填写认证信息。需要命令行配置时,先用 networksetup -help 确认当前系统支持的选项,并记录原有配置。下面的命令会修改网络设置,执行时可能需要管理员权限。

配置HTTP和HTTPS请求代理

将占位值替换为HTTP正向代理入口。两组设置分别对应HTTP请求和HTTPS请求,可以按服务商说明使用同一网关。

SERVICE="Wi-Fi"
ROLA_PROXY_HOST="proxy.example"
ROLA_PROXY_PORT="1000"
ROLA_PROXY_USER="copy-the-username-generated-by-your-console"
IFS= read -r -s "ROLA_PROXY_PASSWORD?请输入代理密码:"
echo

sudo networksetup -setwebproxy \
  "$SERVICE" "$ROLA_PROXY_HOST" "$ROLA_PROXY_PORT" on \
  "$ROLA_PROXY_USER" "$ROLA_PROXY_PASSWORD"

sudo networksetup -setsecurewebproxy \
  "$SERVICE" "$ROLA_PROXY_HOST" "$ROLA_PROXY_PORT" on \
  "$ROLA_PROXY_USER" "$ROLA_PROXY_PASSWORD"

unset ROLA_PROXY_PASSWORD

networksetup -getwebproxy "$SERVICE"
networksetup -getsecurewebproxy "$SERVICE"

配置SOCKS5代理

仅在控制台提供SOCKS5接入参数时使用。开始前确认实际应用支持所需的SOCKS认证方式。

SERVICE="Wi-Fi"
ROLA_PROXY_HOST="proxy.example"
ROLA_PROXY_PORT="1080"
ROLA_PROXY_USER="copy-the-username-generated-by-your-console"
IFS= read -r -s "ROLA_PROXY_PASSWORD?请输入代理密码:"
echo

sudo networksetup -setsocksfirewallproxy \
  "$SERVICE" "$ROLA_PROXY_HOST" "$ROLA_PROXY_PORT" on \
  "$ROLA_PROXY_USER" "$ROLA_PROXY_PASSWORD"

unset ROLA_PROXY_PASSWORD
networksetup -getsocksfirewallproxy "$SERVICE"

以上两套示例按需选用。开始前,按实际网络要求关闭不需要的其他代理或自动配置,避免相互干扰。运行networksetup时,密码同样会短暂作为进程参数传递;对账号密码有严格管理要求时,优先使用图形界面或管理员指定的方法。保存设置后,还需检查代理认证是否成功,以及实际使用的软件能否正常连接。

如何设置PAC自动配置,让指定网站不走代理?

什么时候使用PAC?

只有在管理员或服务商明确提供PAC地址时,才启用“自动代理配置”并填写URL。PAC文件通过规则决定某个网址应该使用哪个代理,或直接连接。

可以先检查文件是否能够下载,下面的地址同样需要替换:

curl -q --fail --location --connect-timeout 10 --max-time 30 \
  "https://proxy.example/proxy.pac"

下载成功只说明文件可访问,不能证明规则正确。即使文件包含 FindProxyForURL,仍要确认JavaScript语法、目标网址匹配结果,以及浏览器是否采用该结果。如果返回 DIRECT,请求会直连,这次访问就不能用来验证代理网关。

如何让指定网站不走代理?

在代理面板的绕过列表中填写需要直连的主机或域名。Apple中文说明列举的写法为apple.com、*apple.com和store.apple.com(核验日期:2026年9月20日)。通配规则会扩大直连范围,配置后应分别检查目标域名和相关子域名,避免将测试网站误排除在代理之外。

列表应尽量精简。本地服务、localhost、127.0.0.1 和企业内网地址是否需要直连,应按实际网络要求决定。排错时尤其要确认:测试网站没有被加入列表,也没有被过宽的通配规则覆盖。

Mac代理不生效、无法上网,应该怎么排查?

建议按“网络服务 → 网关连通性 → 认证 → 应用设置”的顺序检查。 先确定失败发生在哪一层,再调整对应参数。

现象 可能原因 检查、处理与复测
开启代理后所有网站都打不开 地址、端口或协议错误,无法连接代理服务器 检查原有网络、代理服务器的DNS解析、TCP端口和控制台状态;修正后用curl重新测试代理连接
返回407 代理要求认证,凭据未发送或未被接受 核对完整用户名、密码与认证方式;如启用白名单,再核对出口IP,修正后用同一目标复测
目标请求返回403 目标站或中间访问策略拒绝请求,不等同于407代理认证失败 检查响应来源、访问权限和目标站规则;修正授权或请求条件后,用同一目标复测
目标请求返回429 请求触发限流 降低频率和并发;若返回Retry-After,按该值等待后有限重试,仍失败则停止并记录
curl成功,浏览器失败 浏览器受系统设置、PAC、扩展或策略影响 核对当前网络服务、扩展和Chrome的chrome://policy;按权限修正冲突后重新请求同一HTTPS页面
浏览器正常,某个软件失败 软件不读取系统代理,或不支持相应认证 检查应用代理、环境变量与协议支持;在应用内修正后重新发起请求
出口IP没有变化 网站在直连列表中、应用未采用设置,或出口本来相同 检查绕过列表和网络服务,用curl直接指定代理进行测试;以实际请求结果判断,不强求IP必须变化
国家或城市与预期不同 参数格式、产品支持范围或定位数据差异 重新生成支持的地区参数,多次查询核对;保留差异结果供服务商排查
设置保存后又自动恢复 MDM、描述文件、VPN或代理客户端重写 查明配置来源,按管理要求调整;重新连接后读取代理状态,确认是否仍被重写
家里能用,公司网络不能用 防火墙、端口限制或出口白名单问题 核对公网出口与网络策略,必要时联系管理员;获准调整后在公司网络重新测试

参数看起来正确,为什么仍然连不上?

先确认账号、端口和密码来自同一产品,再区分“找不到网关”“端口不通”和“认证失败”。将示例替换成实际网关后执行:

dscacheutil -q host -a name "proxy.example"
nc -vz -G 10 "proxy.example" 1000

DNS查询有结果,只说明代理服务器的域名可以解析;TCP检查成功,只说明端口可以连接,尚未验证账号密码。接下来用前文的curl命令测试:如果提示域名解析失败,先检查DNS;如果连接超时或被拒绝,检查地址、端口和网络限制;如果返回HTTP 407,重点核对认证信息。

为什么只有某个应用不走代理?

先看该应用是否有自己的代理选项。如果有,就在应用内填写参数;如果依赖环境变量,则按该工具的文档配置。部分软件对macOS系统SOCKS代理的用户名密码认证支持有限,不能仅靠重复保存系统设置解决。

使用Rola Connect的用户,还需检查客户端当前连接和本地端口转发配置。客户端切换连接时可能重新写入系统代理,因此要确认最终生效的配置来源。

VPN、iCloud专用代理会影响结果吗?

可能会。VPN、iCloud专用代理、浏览器扩展和系统代理的作用范围不同,叠加使用时会增加判断难度。排查时一次只改变一项,并记录前后结果;如果企业PAC或代理网关依赖公司VPN才能访问,就应保留这项必要连接。

证书错误也应单独排查,不要通过 curl -k 或关闭浏览器证书校验来掩盖问题。代理不是“绝对匿名”或“所有连接都加密”的保证,目标网站是否使用HTTPS、DNS由谁解析、应用如何联网仍然需要分别确认。

如何关闭Mac代理并恢复网络?

回到当前网络服务的“代理”面板,关闭本次启用的网页代理、安全网页代理、SOCKS或自动配置,再保存。如果修改前已有工作所需的代理,应恢复原配置,而不是一律关闭。

确实需要关闭该网络服务的全部代理选项时,可使用:

SERVICE="Wi-Fi"
sudo networksetup -setwebproxystate "$SERVICE" off
sudo networksetup -setsecurewebproxystate "$SERVICE" off
sudo networksetup -setsocksfirewallproxystate "$SERVICE" off
sudo networksetup -setautoproxystate "$SERVICE" off
sudo networksetup -setproxyautodiscovery "$SERVICE" off

执行后,用前文的networksetup查询命令和scutil --proxy再次检查代理状态,然后测试浏览器。某些软件可能仍保留独立的代理配置,或继续读取代理环境变量,需要分别检查。若企业管理策略自动恢复了代理设置,应联系管理员。

常见问题