FlClash 如何设置链式代理?
简答:FlClash 设置链式代理,推荐使用自定义配置配合 mihomo 的 <code>dialer-proxy</code>,不要再优先使用已标记为弃用的 <code>relay</code>。基本链路是“本机 → 前置代理 → 落地节点 → 目标网站”:把前置代理写入 <code>proxies</code>,再让落地节点通过 <code>dialer-proxy</code> 调用前置代理。FlClash 官方项目在 2026-10-14 说明 v0.9.0 已支持自定义配置、添加 SOCKS5 代理和设置拨号代理;当前发布页显示已有 v0.9.2,菜单名称可能因平台和版本不同而略有差异。
定义:链式代理是把一个代理节点作为另一个代理节点的拨号出口,让流量依次经过前置代理和落地节点,而不是只选择一个节点直连目标网站。
先确认版本、链路角色和适用范围
本文面向使用 FlClash 的 Windows、macOS、Linux 和 Android 用户,重点解决“已有一个前置代理,又想让指定落地节点负责最终出站”的配置问题。本文不覆盖 iOS 端 FlClash、订阅服务购买、节点可用性判断,也不提供未经核实的服务商状态、价格或速度结论。
截至 2026-10-31,FlClash 官方发布页列出的最新版本为 v0.9.2;v0.9.0 的官方更新记录包含 Custom profiles,官方项目说明还列出自定义规则、代理和代理组能力。若你的版本低于 v0.9.0,界面可能没有本文所说的自定义配置入口,应先以当前发布页为准。参考:FlClash 官方发布页、FlClash 官方仓库。
| 对象 | 作用 | 配置位置 |
|---|---|---|
| 前置代理 | 负责先建立到落地节点的连接 | proxies 或本地代理列表 |
| 落地节点 | 负责连接目标网站,通常是最终对外显示的出口 | 订阅节点或自定义代理 |
dialer-proxy | 把落地节点的拨号连接交给前置代理 | 落地节点字段或 provider 的 override |
注意:系统代理和 TUN 只负责把应用流量交给 FlClash,不能自动生成代理链。链路是否成立,取决于前置代理、落地节点、名称引用和规则是否都正确。
最快设置方法:自定义配置加 dialer-proxy
- 备份现有配置。在 FlClash 的配置或 Profiles 区域先复制当前配置,或者导出本地备份。不要直接覆盖唯一一份能正常使用的订阅配置。
- 创建自定义配置。进入配置管理,查找 Custom profile、自定义配置或本地配置入口。v0.9.0 起官方已支持自定义配置;v0.9.2 发布记录还提到可以把代理添加到本地代理列表。不同平台的按钮名称可能不同,找不到时先升级到当前稳定版。
- 添加前置代理。给前置代理一个短而唯一的名称,例如
前置-SOCKS5。如果是 SOCKS5,需要填写服务器、端口;有认证时再填写用户名和密码,并根据实际情况设置udp。 - 添加或保留落地节点。落地节点可以来自订阅,也可以是自定义节点。给它保留唯一名称,例如
落地-节点A,然后在该节点中增加dialer-proxy: 前置-SOCKS5。 - 让规则使用落地节点。可以把落地节点加入一个选择组,并在规则中使用该组;测试时也可以先用
MATCH,落地-节点A,确认链路后再恢复原来的规则组。
官方 mihomo 文档明确说明,dialer-proxy 的值可以是代理名称,也可以是代理组名称;示例中,ss1 通过 ss2 建立连接。参考:mihomo dialer-proxy 官方文档。
以下是字段结构模板。它不是包含真实地址和账号的完整连接配置,使用前必须把带有“替换”说明的字段换成你自己的有效参数:
proxies:
- name: "前置-SOCKS5"
type: socks
server: "替换为前置代理服务器"
port: 1080
username: "替换为用户名;无认证可删除"
password: "替换为密码;无认证可删除"
udp: false
- name: "落地-节点A"
type: ss
server: "替换为落地节点服务器"
port: 443
cipher: "替换为节点协议要求的加密方式"
password: "替换为节点密码"
dialer-proxy: "前置-SOCKS5"
proxy-groups:
- name: "链式出口"
type: select
proxies:
- "落地-节点A"
rules:
- MATCH,链式出口
如果落地节点来自订阅,优先让订阅节点进入 provider,再通过 override 统一加入前置代理。例如:
proxies:
- name: "前置-SOCKS5"
type: socks
server: "替换为前置代理服务器"
port: 1080
proxy-providers:
provider1:
type: http
url: "替换为订阅地址"
override:
dialer-proxy: "前置-SOCKS5"
proxy-groups:
- name: "订阅链式出口"
type: select
use:
- provider1
rules:
- MATCH,订阅链式出口
官方文档给出的 provider 方案就是通过 override.dialer-proxy 为 provider 中的节点设置前置代理;但订阅下载、DNS 解析和其他控制流量是否也经过该 SOCKS5,还需要单独配置和验证,不能仅凭浏览器能打开网页就断定所有流量都走了前置代理。
如何验证链路确实生效
- 先单独验证前置代理。暂时只选择前置代理,确认 FlClash 能建立 SOCKS5 连接。若前置代理本身不可用,继续修改链式配置没有意义。
- 再单独验证落地节点。暂时移除
dialer-proxy,只选择落地节点,确认落地节点自身能建立连接。 - 恢复链式配置。重新加入
dialer-proxy,启用系统代理或 TUN,并只访问一个用于查看出口 IP 的测试页面。不要把一次打开成功理解为持续稳定,也不要把延迟测试结果当作实际下载速度。 - 查看连接与日志。观察 FlClash 的连接、请求、DNS 和日志页面,确认目标请求命中了“链式出口”组。若日志中出现名称不存在、认证失败、连接超时或循环引用,先修正配置,再测试。
- 做最小对照。分别记录直连落地、仅前置、前置加落地三种状态,每种状态连续测试 3 次;成功率可按“成功次数 ÷ 3 × 100%”计算。这个结果只反映当前设备、当前网络和当前节点组合,不能外推为长期可用性。
mihomo 文档说明,使用 dialer-proxy 时,核心先连接前置代理,再由前置代理连接落地节点,最终目标看到的通常是落地节点的出口。实际结果仍会受协议、DNS、UDP、TUN 和目标站点策略影响,因此应以日志和多次对照为准。
按现象排查:连不上、配置被覆盖或出口不对
| 现象 | 优先检查 | 处理方法 |
|---|---|---|
| 配置加载失败 | YAML 缩进、引号、字段层级 | 先删除最近新增的字段,再逐段恢复;确保 dialer-proxy 与节点名称完全一致。 |
| 落地节点显示正常但无法连接 | 前置代理认证、端口和协议兼容性 | 先单独测试前置代理,再单独测试落地节点,最后恢复链式关系。 |
| 选择组中找不到节点 | 节点名称、provider 和 use 引用 | 确认代理名称没有改写,provider 已成功更新,规则使用的是组名而不是不存在的节点名。 |
| 订阅更新后链式关系消失 | 手工改动是否写在订阅原文中 | 把自定义代理放进 Custom profile,或使用 provider 的 override,不要直接修改每次会被刷新覆盖的订阅正文。 |
| 出现循环连接或一直超时 | 前置代理是否又指向落地组,落地节点是否反向调用前置 | 只保留单向关系:落地节点的 dialer-proxy 指向前置代理,前置代理不要再指向落地节点。 |
mihomo 文档已将 relay 策略标记为弃用,并建议迁移到 dialer-proxy。如果旧配置使用了 type: relay,不要只把字段名称机械替换;应按“前置节点 + provider override + 落地选择组”的结构重建,并逐步验证。参考:mihomo relay 迁移说明。
协议兼容性也要单独考虑。官方文档提醒,某些基于 UDP 或带特殊 TLS 伪装的协议在被另一节点中继时可能不符合预期。遇到握手失败时,先用双方都明确支持的 TCP 代理组合做最小测试,再恢复复杂协议。
回滚与安全边界
如果启用链式配置后所有应用都无法联网,先关闭 FlClash 的系统代理或 TUN,再切回备份配置;确认基础节点恢复后,再只添加前置代理和 dialer-proxy,不要同时修改 DNS、规则、TUN 和多个节点。Android 的 VPN 接管范围、Windows 的系统代理范围以及 macOS 的权限状态可能不同,验证时应明确是在浏览器、命令行还是某个应用内测试。
不要把订阅地址、用户名、密码、私钥或完整节点信息发布到日志截图和公开页面。本文只讲客户端配置与网络排查,不涉及绕过访问限制或其他违法用途。
常见问题
FlClash 可以不用 YAML,直接在界面设置链式代理吗?
v0.9.0 起,FlClash 官方说明自定义配置支持添加自有代理并设置 dialer proxy;v0.9.2 发布记录也提到可添加代理到本地代理列表。但不同平台的菜单名称和入口可能不同,无法确认你当前界面的具体按钮时,应先查看配置管理、Custom profile 或本地代理相关入口。
FlClash 链式代理应该使用 relay 还是 dialer-proxy?
优先使用 dialer-proxy。mihomo 官方文档已将 relay 策略标记为弃用,并提供了使用 dialer-proxy 和 provider override 的迁移方案。旧配置如果仍能运行,也建议先备份,再逐步迁移和验证。
为什么订阅节点单独能用,设置 dialer-proxy 后却超时?
可能是前置代理认证错误、端口不可达、节点名称不匹配、协议不适合被中继,或出现了循环引用。按“只测前置代理—只测落地节点—恢复链式”的顺序缩小范围,并查看 FlClash 的日志和连接记录。
订阅更新会不会覆盖手动添加的前置代理?
直接修改订阅正文存在被覆盖的可能。更稳妥的做法是使用 Custom profile 保存自定义代理,或者把订阅节点放进 proxy-provider,再用 provider 的 override 设置 dialer-proxy。更新后仍要检查 provider 是否成功加载。
开启 TUN 后是不是所有流量都会经过链式代理?
不是。TUN 主要改变流量接管范围,链式关系仍由代理节点、代理组、规则和 dialer-proxy 决定。DNS、订阅下载、局域网流量以及应用自身的网络行为可能有不同路径,应按实际日志和分流规则验证。