3. 安装、启动与验证#


本章只讲用户视角:如何准备配置、在 Link1 App 中导入和应用、直接运行内核时如何验证配置、如何确认代理可用。

推荐方式:用 Link1 App 管理#

普通用户建议通过 Link1 App 完成以下流程:

  1. 新建配置档案。
  1. 粘贴 YAML、导入本地文件,或填写订阅地址。
  1. 点击校验,确认没有字段错误或引用错误。
  1. 应用配置,等待内核启动完成。
  1. 在 App 首页确认运行状态、当前模式、实时速率和日志摘要。
  1. 打开系统代理、TUN 或路由器模式,让流量进入 Link1。
  1. 用连接列表、策略组和日志确认流量按预期转发。

App 会自动处理内部管理通道、状态同步和页面展示;用户通常不需要手写额外管理配置。

配置文件位置#

默认配置文件名是 config.yaml。如果你直接运行内核,可以用 -f 指定:

spark -f /path/to/config.yaml

工作目录用 -d 指定:

spark -d /path/to/workdir -f /path/to/config.yaml

实际影响:

用户常用命令行参数#

参数含义实际影响
-f指定配置文件读取指定 YAML
-d指定工作目录影响相对路径、缓存、状态文件
-config使用 base64 编码的配置内容适合 App 或外部配置管理器直接下发配置
-t测试配置并退出不启动监听端口,只检查配置能否编译
-v输出版本用于确认二进制版本
-m覆盖启用 geodata-mode临时切换 GeoData 模式

这些参数主要用于排障、路由器部署或开发调试。桌面用户优先使用 Link1 App 的配置导入和校验按钮。

第一步:写最小配置#

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

如果你暂时没有上游代理,也可以只用直连验证内核能启动:

mixed-port: 7890
mode: rule
log-level: info
rules:
  - MATCH,DIRECT

第二步:验证配置#

在 App 里点击“校验配置”。如果直接运行内核:

spark -f config.yaml -t

如果配置错误,Link1 会尽量告诉你路径,例如:

compile config "config.yaml": proxies[0].server is empty

读法:

常见错误和含义:

错误特征常见原因处理
is undefined规则或策略组引用了不存在的名称检查 proxiesproxy-groupsrules 的名字是否一致
server is empty节点缺少服务器地址补充 server
invalid port端口不是 1-65535检查 port 字段
unsupported写了不支持的协议或字段对照出站协议章节删除或改写
tun / route 相关TUN 与平台或路由字段冲突先关闭 TUN,用显式代理验证基础链路

第三步:启动 Link1#

在 App 中点击启动或应用配置。直接运行内核时:

spark -d . -f config.yaml

启动成功不等于代理已经可用,还要确认流量真的进入 Link1。

第四步:让客户端连接 Link1#

浏览器或系统代理#

填:

HTTP 代理:127.0.0.1:7890
HTTPS 代理:127.0.0.1:7890
SOCKS5 代理:127.0.0.1:7890

mixed-port 同时接受 HTTP proxy 和 SOCKS5。推荐第一次使用时只设置浏览器代理,避免系统全局代理影响其他应用。

curl 验证#

curl -x http://127.0.0.1:7890 https://www.example.com/

如果要验证 Cloudflare WARP:

curl -x http://127.0.0.1:7890 https://www.cloudflare.com/cdn-cgi/trace

不要把 --noproxy '*'-x 混用;--noproxy '*' 会绕过代理。

App 侧验证#

请求发出后,在 Link1 App 中确认:

如果 curl 成功但 App 连接列表没有变化,通常说明请求没有经过 Link1,或你看的不是当前运行的配置档案。

局域网使用#

如果要让同一局域网内其他设备使用 Link1:

mixed-port: 7890
allow-lan: true
bind-address: '*'
lan-allowed-ips:
  - 192.168.0.0/16
authentication:
  - alice:password

实际影响:

风险:不要在公共 Wi-Fi 或不可信网络上无认证开放代理端口。

路由器使用#

路由器上常见做法:

如果你用 TUN:

dns:
  enable: true
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16

tun:
  enable: true
  auto-route: true
  auto-detect-interface: true
  dns-hijack:
    - any:53

路由器场景的关键不是“内核是否启动”,而是三件事:

  1. 局域网设备的流量是否被路由器接管。
  1. 局域网设备的 DNS 是否进入 Link1。
  1. Link1 的出站是否能从路由器本身访问外网。

常见启动问题#

现象常见原因处理
端口被占用旧 Link1 内核或其他代理仍在运行换端口或停止旧进程
配置测试通过但客户端连不上客户端代理地址填错、allow-lan=false、防火墙拦截先本机 curl -x,再局域网验证
规则没有命中域名DNS 没进 Link1、Fake-IP 未启用、Sniffer 未启用检查 DNS/TUN/Sniffer
App 显示无连接客户端绕过代理、系统代理未生效、TUN 未接管用浏览器代理或 curl 做最小验证
Linux TPROXY 不工作缺少系统路由/iptables/nftables 配合优先用 TUN 或检查透明代理脚本
HTTP Engine 无捕获没开启 Capture、host 未命中、HTTPS 未配置 MITM检查 http-engine.capturemitm.hosts