首次配置 · macOS 操作流程

Clash macOS 配置教程

导入订阅 → 选择代理模式 → 启用连接 → 验证是否生效。先完成系统代理这条主线,再按应用需求决定是否开启 TUN。

开始前,准备已安装的客户端,以及服务提供方给出的 Clash 兼容订阅链接或本地 YAML 文件。客户端负责读取配置和转发请求,不会在安装后自动生成可用的远程代理节点。本文只处理首次连接所需操作;字段含义、规则语法与配置合并方式请查阅 YAML 手册。

第一步:导入订阅或本地 YAML

打开客户端,进入侧栏的“配置”或“订阅”页面,找到“新建”“添加”或“导入”入口。使用远程订阅时,选择通过 URL 导入,把服务提供方给出的完整链接粘贴到地址栏,再点击下载或保存。名称可以写成便于辨认的用途,例如“日常配置”;名称只用于区分条目,不会改变节点和规则。若链接包含访问参数,应原样保留,不要复制浏览器展示页的标题或说明文字。

等待下载完成后,检查该条目是否显示成功状态,再点击“使用”“激活”或对应的选中按钮。有些客户端在导入后自动激活,有些只把文件加入列表。判断依据不是条目是否存在,而是“代理”页面能否显示这份配置中的策略组与节点。切换到代理页面看一遍,确认内容已经载入,再进入下一步。

如果拿到的是文件,在同一页面选择“导入本地文件”,选中扩展名为 .yaml 或 .yml 的配置。不要把文件改成图片、网页或富文本格式,也不要仅通过修改扩展名把其他订阅格式当成 YAML。客户端若提供配置检查功能,可先执行检查;错误提示中的字段名和行号通常比单纯的“导入失败”更有定位价值。

导入失败时的检查顺序

先确认链接能否在当前网络下载,以及返回内容是否为兼容的配置,而不是登录页面、过期提示或网页错误。再检查服务提供方是否区分 Clash 与其他格式的订阅入口。网络暂时无法访问订阅地址时,可向提供方取得本地配置后导入,不必先反复修改系统代理。涉及 YAML 缩进和通用字段的问题,转到 配置字段说明逐项检查。

订阅更新会重新拉取远程内容。首次连接阶段先保持导入结果不变,不急着修改原始文件;如果之后需要长期保留自定义规则,应使用客户端支持的覆写机制,详见 覆写与合并。这样可以减少下次更新覆盖本地改动的情况。

第二步:选择规则模式与出口

确认配置已激活后,进入客户端的“代理”页面,或从菜单栏图标打开模式菜单。首次使用建议选择“规则”模式,也可能显示为 Rule。在这个模式下,内核按配置中的规则决定某个请求直连、拒绝还是交给某个策略组。它不是“所有流量都走同一个节点”的开关,因此不同网站使用不同出口属于正常情况。

接着展开主要策略组,查看当前选中项。组名来自配置作者,可能是“代理选择”“自动选择”,也可能使用其他名称,不要只按名称猜测用途。先找到规则实际引用的选择组,为它指定一个已有节点,或选用配置已经提供的自动选择组。若组内选中的是 DIRECT,对应请求会直连;只有选中远程节点或包含节点的有效组,相关规则才会把连接转交给代理。

节点测试可用于初步判断连通性,但测试成功不代表所有目标网站都能访问,测试失败也需要结合测试地址与当前网络判断。首次操作可以手动选择一个确认可用的节点,再保持选择不变完成验证。暂时不要同时调整 DNS、改写规则顺序、替换策略组类型,否则发生问题时很难判断是哪一项改动造成。

模式请求处理方式首次配置用途
规则 / Rule按规则匹配结果选择出口。日常使用与主线验证。
全局 / Global进入内核的请求交给全局策略选择。临时对照规则是否影响结果。
直连 / Direct进入内核的请求通常直接连接目标。对照本地网络的访问情况。

这里的“全局”只描述进入内核后的处理方式,不等于自动接管整台电脑的所有应用。应用是否把请求送到客户端,还取决于系统代理、应用自身设置或 TUN。策略组的自动选择、故障切换与负载分配不必在首次连接时展开配置,之后可查阅 策略组字段。

第三步:启用内核与系统代理

回到客户端主界面,确认内核处于运行状态。部分客户端导入配置后会自动启动内核,另一些需要点击连接或启动按钮。如果提示配置错误、端口占用或内核启动失败,应先解决提示,再启用系统代理。系统代理只是把应用请求指向本机监听地址;若监听尚未启动,浏览器会把请求交给一个没有服务响应的端口。

找到“系统代理”开关并开启。它可能位于设置页、首页快捷区域或菜单栏菜单中。首次启用时,若 macOS 或客户端请求安装辅助服务、修改网络设置的授权,应核对发起请求的应用与操作目的,再按提示完成。辅助服务的名称和授权方式由具体客户端决定,不必为了套用教程去寻找一个界面中并不存在的按钮。

打开 macOS“系统设置”,进入“网络”,选中当前正在使用的 Wi-Fi 或以太网服务,打开“详细信息”中的“代理”。较旧的系统可能把这些选项放在“系统偏好设置”的网络高级设置内。检查网页代理和安全网页代理的地址、端口是否与客户端一致;若客户端配置了 SOCKS 代理,也检查对应一项。常见本机地址为 127.0.0.1,示例混合端口为 7890,但应以实际配置为准。

检查时保持其他代理工具的系统接管开关关闭,避免多个应用反复改写同一组网络设置。公司管理的代理、VPN 或安全软件也可能影响路由和 DNS,应按所在网络的管理要求操作。完成后先不要开启 TUN,直接进入下一步验证浏览器;这一顺序可以把系统代理问题和虚拟网卡问题分开。

第四步:分别验证浏览器与终端

先用 Safari 或采用系统代理设置的浏览器打开一个准备访问的 HTTPS 网页,再打开一个平时可直连的网页进行对照。网页能够打开只是第一层结果;同时进入客户端的“连接”或“日志”页面,重新发起请求,查看相关域名是否出现、命中了哪条规则,以及最终选择了哪个策略组和出口。连接记录可能很快结束,必要时刷新网页后立即观察。

如果浏览器装有独立的代理扩展,先确认它没有覆盖系统设置。访问命中直连规则的网站时,即使客户端工作正常,也可能不会使用远程节点。因此,不应仅凭出口地址没有变化就判断代理失效。应结合该网站的规则匹配结果,确认实际行为是否符合配置预期;规则按顺序匹配的说明见 规则语法。

查询当前网络服务的代理字段

打开“终端”,可以使用以下命令只读查询系统网络服务,不会修改代理。先列出服务名称,再把后续命令中的 Wi-Fi 换成当前服务的实际名称。查询结果中的启用状态、服务器地址与端口应与客户端对应;这能证明系统字段已经写入,但不能单独证明远程节点可用。

networksetup -listallnetworkservices
networksetup -getwebproxy "Wi-Fi"
networksetup -getsecurewebproxy "Wi-Fi"
networksetup -getsocksfirewallproxy "Wi-Fi"

用显式代理区分本地监听与系统接管

终端工具不一定读取 macOS 的系统代理。以下命令明确让 curl 通过本机 HTTP 代理发起请求,用于单独检查监听端口与后续连接链路。执行前确认实际 HTTP 或混合端口;如果不是 7890,请替换端口。目标域名是公开示例地址,测试结果还受当前网络、节点和目标服务影响。

curl --proxy http://127.0.0.1:7890 --connect-timeout 10 -I https://example.com/

若出现无法连接本机端口,返回客户端检查内核和监听值;若本机已连接但远程请求超时,再检查节点、策略组与目标网络。收到有效 HTTP 响应说明这次请求到达了 HTTP 服务,但仍需结合连接记录确认出口。浏览器正常而不带代理参数的 curl 失败,通常应继续检查终端代理设置,而不是直接重装客户端。

为当前终端会话设置代理

需要让支持这些环境变量的命令行工具使用代理时,可在当前 shell 中执行以下命令。这里的 HTTPS 请求仍通过 HTTP 代理的隧道机制转发,因此代理地址使用 http://。这些设置只影响当前 shell 及之后启动的子进程,不会自动改变已经运行的终端任务;不同工具对环境变量的支持也有差异。

export http_proxy="http://127.0.0.1:7890"
export https_proxy="http://127.0.0.1:7890"
export no_proxy="localhost,127.0.0.1,::1"

curl --connect-timeout 10 -I https://example.com/

先在当前会话确认有效,再决定是否写入 shell 配置文件。不要刚开始就追加到多个启动文件,以免退出客户端后仍残留设置。至此,浏览器请求、系统代理字段和显式代理测试已经分别检查完毕;如果目标应用仍不使用系统代理,再考虑下面的 TUN 补充流程。

按需补充:TUN 模式与授权

TUN 通过虚拟网络接口与路由接管请求,适合需要处理不读取系统代理的应用等场景。它与“规则 / 全局 / 直连”不是同一层设置:TUN 决定请求如何进入内核,代理模式决定进入内核后如何选择出口。是否支持 TUN、使用哪种网络栈,以及如何安装辅助服务,取决于客户端和所搭配的内核;采用 mihomo 内核的客户端也可能提供不同的设置入口。

在前面的系统代理验证已经完成后,进入客户端的网络或高级设置,找到“TUN 模式”或相近选项。如果界面要求先安装服务模式或特权辅助程序,按客户端提示完成授权,再启用 TUN。不要先手动复制网上的路由命令。首次开启保持客户端提供的默认网络栈与路由设置,打开目标应用重新发起请求,并在连接记录中确认是否进入内核。

若开启后出现 DNS 异常、局域网设备不可达或与其他 VPN 冲突,先关闭 TUN,回到已验证可用的系统代理状态,再一次只调整一个选项。不要因为开关显示开启就认定所有流量已被接管;应用协议、排除路由和系统权限都会影响实际结果。DNS、路由和 YAML 结构的深入说明统一放在 YAML 手册,首次上手不必全部修改。

平台补充:Windows 应用回环

本节只适用于 Windows。部分采用 AppContainer 隔离机制的应用,访问本机回环代理时可能受系统限制,表现为浏览器已经能用代理,特定应用仍连接失败。这与 macOS 的系统代理授权不是同一个问题,Mac 用户无需寻找 UWP 回环开关,也不应照搬 Windows 的豁免命令。

在 Windows 上,先确认同一个本地代理端口对普通桌面应用可用,再检查目标应用是否受回环限制。若客户端提供“回环豁免”或类似工具,可按其说明以所需权限打开,只为确实需要访问本机代理的应用设置豁免,保存后彻底退出并重新启动目标应用。若客户端没有该工具,不代表所有 Windows 应用都不能使用代理,也不要把回环豁免当成通用修复按钮。

回环豁免只处理应用访问本机地址的权限,不会替代订阅导入、节点选择或系统代理设置。如果豁免后仍失败,应继续区分应用是否读取代理、是否使用 UDP,以及当前配置是否允许相应流量。需要 Windows 客户端时可从 Windows 下载入口选择,不必改变已经完成的 Mac 配置。

退出客户端与网络恢复

完成测试后若要停用代理,先在客户端关闭 TUN 和系统代理,再退出客户端。这样可以避免本机监听已经停止,而系统网络设置仍指向原端口。仅关闭主窗口可能只是把客户端收进菜单栏,并不等于退出;应通过菜单栏中的退出命令结束运行,具体行为以客户端设置为准。

若客户端异常退出后浏览器无法联网,先打开当前网络服务的代理设置,检查是否还保留指向本机的 HTTP、HTTPS 或 SOCKS 代理。确认这些项目确由刚才的客户端设置后,再取消对应项目;不要一并删除公司网络要求的代理地址或自动代理配置。使用过终端环境变量的会话,还需要清理相应变量,或直接关闭该会话后重新打开终端。

unset http_proxy https_proxy all_proxy no_proxy
unset HTTP_PROXY HTTPS_PROXY ALL_PROXY NO_PROXY

如果曾把变量写进 ~/.zshrc 等启动文件,仅执行 unset 不会阻止新会话重新加载,还应删除自行添加的对应行。恢复后再分别测试浏览器与终端。保留一份已经验证可用的配置,后续更新订阅、添加规则或启用 TUN 时一次只改变一个环节;需要继续自定义时,从 配置覆写查起,而不是覆盖整份订阅文件。