Link1 用户手册#
Slogan:One link. Every protocol.
Link1 是一个面向普通用户的代理与网络接管应用。你可以把它理解为一台运行在电脑、手机或路由器里的“软件路由器”:它接收来自浏览器、系统、手机 App、路由器或局域网设备的网络连接,识别这个连接要访问哪里,再按照你的配置选择直连、拒绝或走某个代理/VPN 出口。
Link1 App 负责导入配置、展示节点、切换策略组、查看连接、查看日志和做排障;底层内核负责真正的 DNS、路由、协议拨号和数据转发。少数直接运行内核的场景里,命令名仍可能显示为 spark,本手册会把它称为“Link1 内核”。
本文档面向从未用过 Clash、mihomo 的用户,只假设你具备基础计算机知识:知道 IP、端口、域名、HTTP、DNS、配置文件是什么。看完本手册后,你应该能理解:
- Link1 的数据流从哪里进、在哪里解析、在哪里分流、从哪里出。
- Link1 App 与底层内核分别负责什么。
config.yaml每个主要配置块负责什么。
- 每项配置参数会改变什么实际行为。
- 怎样配置每一种出站协议。
- 怎样用 Link1 App、日志、连接列表和规则测试排查问题。
阅读路径#
如果你是第一次使用,请按顺序阅读前 6 章;如果你只是查字段,可直接跳到参考手册。
| 章节 | 文档 | 你会学到什么 |
|---|---|---|
| 1 | 项目与代理基础 | Link1 解决什么问题,显式代理、透明代理、TUN、DNS、出站协议分别是什么 |
| 2 | 核心概念与数据流 | 一条连接从进入 Link1 到出站的完整路径 |
| 3 | 安装、启动与验证 | 如何在 App 中导入配置、验证配置、启动内核、连接客户端 |
| 4 | 配置文件模型 | YAML 结构、相对路径、命名、引用、默认值、常见错误 |
| 5 | 入站与流量接管 | mixed-port、port、socks-port、redir-port、tproxy-port、tun、app-proxy、listeners |
| 6 | DNS 与 hosts | DNS server 写法、Fake-IP、DNS 分流、hosts、fallback、nameserver-policy |
| 7 | 路由、规则与策略 | rules、rule-providers、逻辑规则、规则集、策略组、健康检查 |
| 8 | Provider 与策略组 | 订阅、文件、内联 provider、WARP provider、节点过滤、覆写、组选择 |
| 9 | 出站协议配置 | 每一种出站协议怎么工作、怎么写、字段如何影响 DNS/路由/传输/认证 |
| 10 | HTTP Engine | MITM、URL/Header/Body/JSON/JQ/QuickJS、Capture、Replay |
| 11 | Link1 App 管理 | 配置档案、连接、策略组、Provider、日志、规则测试、HTTP 捕获的 App 操作 |
| 12 | 观测与排障 | 常见故障、排查顺序、如何读错误和指标 |
| 13 | 术语表 | 不熟悉代理内核术语时快速查含义 |
| 14 | 配置字段参考 | 顶层、DNS、TUN、Sniffer、Provider、HTTP Engine 等字段全集 |
| 15 | 覆盖索引 | 手册覆盖了哪些功能模块、协议、App 管理能力和配置结构 |
最小可运行配置#
下面配置只开放一个本机 HTTP/SOCKS 混合代理端口,把所有连接交给一个 SOCKS5 上游。它适合用来确认 Link1 内核能启动、客户端能连上。
mixed-port: 7890
mode: rule
log-level: info
allow-lan: false
proxies:
- name: example-socks
type: socks5
server: 127.0.0.1
port: 1080
udp: true
proxy-groups:
- name: PROXY
type: select
proxies:
- example-socks
- DIRECT
rules:
- MATCH,PROXY
在 Link1 App 中使用时,通常是:
新建配置档案
-> 粘贴或导入 YAML
-> 校验配置
-> 应用配置
-> 在首页确认运行状态
让浏览器或系统代理使用:
HTTP proxy: 127.0.0.1:7890
SOCKS proxy: 127.0.0.1:7890
高级:直接运行 Link1 内核#
普通桌面用户不需要使用命令行。只有在路由器部署、排障、自动化测试或开发调试时,才需要直接运行内核。
验证配置:
spark -f config.yaml -t
启动:
spark -d /path/to/workdir -f config.yaml
示例配置#
手册附带几个可复制的 YAML:
| 示例 | 用途 |
|---|---|
| desktop-mixed-direct.yaml | 最小本机显式代理,所有流量直连 |
| desktop-mixed-proxy.yaml | 本机显式代理 + SOCKS5 上游 |
| router-tun-fakeip.yaml | TUN + Fake-IP + Sniffer 模板 |
| warp-provider.yaml | WARP provider 模板 |
| http-engine-capture.yaml | HTTP Engine Capture 模板 |
| all-in-one-tun-http-engine.yaml | DNS/Fake-IP + TUN + Sniffer + HTTP Engine 综合骨架 |
完整配置从哪里开始写#
推荐配置顺序:
- 基础运行参数:
mixed-port、allow-lan、mode、log-level。
- DNS:先决定是否由 Link1 接管 DNS,以及是否使用 Fake-IP。
- 出站:写
proxies或proxy-providers。
- 策略组:写
proxy-groups,把节点组成可选择的出口。
- 规则:写
rules,把流量导向策略组或节点。
- 系统接管:最后再打开
tun、redir-port、tproxy-port或协议listeners。
- 高级能力:需要调试 HTTP 内容时再打开
http-engine。
这个顺序的好处是:每一步都能单独验证。不要一开始把 TUN、复杂 DNS、订阅、几十条规则和 HTTP Engine 同时打开,否则出了问题很难判断是哪一层导致。
与 Clash/mihomo 的关系#
Link1 尽量沿用常见代理内核的配置习惯,例如 mixed-port、dns、proxies、proxy-groups、rule-providers、rules。但 Link1 不是某个项目的包装层:协议实现、规则引擎、TUN、HTTP Engine 和 App 管理能力都由 Link1 内核体系实现。
这意味着:
- 你可以把已有订阅或常见 YAML 配置作为迁移起点。
- 不能把其他内核的每一个历史字段都默认视为已支持。
- Link1 会尽量在配置编译阶段告诉你“哪个字段在哪个位置不支持”。
warp不作为普通proxiesleaf 使用,应通过proxy-providers.type=warp物化节点。
文档约定#
config.yaml表示 Link1 主配置文件。
proxies[].type=http表示proxies列表中某个节点的type字段是http。
- “入站”表示流量进入 Link1 的入口。
- “出站”表示 Link1 最终连接目标或上游代理/VPN 的出口。
- “策略组”表示一个可被规则引用的出口集合。
- “规则”表示决定连接走哪个出口的匹配条件。
- “内核命令”表示直接运行底层二进制的方式;普通用户优先通过 Link1 App 操作。