1. 项目与代理基础#
Link1 解决什么问题#
当一台设备访问网络时,操作系统会产生很多连接:浏览网页、聊天软件同步消息、系统更新、DNS 查询、局域网设备访问内网服务等。Link1 的作用是接管这些连接,并按你的配置决定:
- 是否直连目标服务器。
- 是否拒绝连接。
- 是否走某个代理协议节点。
- 是否走某个企业 VPN、WireGuard、MASQUE、Tailscale、OpenVPN 或 WARP 出口。
- 是否在 HTTP 层做调试、改写、Mock、Capture。
Link1 由两层组成:
| 层次 | 面向谁 | 负责什么 |
|---|---|---|
| Link1 App | 普通用户 | 导入配置、切换节点、查看连接、查看日志、测试规则、展示 HTTP 捕获 |
| Link1 内核 | 数据面 | 接收连接、解析 DNS、匹配规则、拨号出站协议、转发数据 |
你不需要一开始理解所有协议,只需要先掌握四个词:入站、DNS、规则、出站。
你的应用/设备
-> 入站:流量怎么进入 Link1
-> DNS:域名怎么变成 IP,或者 IP 怎么还原成域名
-> 规则:这条连接应该走哪个出口
-> 出站:Link1 用什么协议真正连出去
什么是入站#
入站是 Link1 接收连接的入口。不同入口适合不同使用场景:
| 入站方式 | 适合场景 | 用户感知 |
|---|---|---|
mixed-port | 电脑上手动设置系统代理或浏览器代理 | 你在系统代理里填 127.0.0.1:7890 |
port | 只需要 HTTP 代理 | 客户端只发 HTTP proxy 请求 |
socks-port | 只需要 SOCKS5 代理 | 客户端只发 SOCKS5 请求 |
redir-port | Linux 路由器透明代理 TCP | 设备不用设置代理,由路由器转发 |
tproxy-port | Linux 路由器透明代理 TCP/UDP | 比 REDIRECT 更适合保留原始目标和 UDP |
tun | 桌面端、移动端、路由器全局接管 | 系统把流量送入虚拟网卡 |
app-proxy | 桌面端应用透明代理 | 平台捕获应用流量,规则仍由 Link1 core 决定 |
listeners | Link1 自己作为协议服务端 | 其他客户端使用 VLESS/Hysteria2 连入 Link1 |
第一次使用建议先从 mixed-port 开始,因为它最容易理解和验证;等你确认代理链路正常,再尝试 TUN 或路由器透明代理。
什么是 DNS#
DNS 负责把域名变成 IP,例如把 www.example.com 解析成 93.184.216.34。代理内核里的 DNS 不只是“查域名”:它还影响路由规则是否能命中。
例如:
rules:
- DOMAIN-SUFFIX,openai.com,PROXY
- IP-CIDR,10.0.0.0/8,DIRECT
如果 Link1 看到的是域名 chat.openai.com,第一条能命中;如果 Link1 只看到一个 IP,就可能需要 DNS 映射、Fake-IP 或 Sniffer 才能还原出域名。
DNS 配置决定三个问题:
- Link1 是否自己处理 DNS 查询。
- 域名规则能不能在透明代理/TUN 场景下命中。
- 国内外域名是否可以使用不同 DNS 上游,避免解析结果不准确。
什么是出站协议#
出站协议是 Link1 连出去的方式。常见类型:
| 类型 | 例子 | 你可以怎么理解 |
|---|---|---|
| 普通代理 | http、socks5 | 把连接转发给另一个代理服务器 |
| 加密代理 | ss、vmess、vless、trojan、hysteria2、tuic | 用特定协议和远端服务器通信 |
| L3 隧道/VPN | wireguard、masque、tailscale、openvpn、warp | 像加入另一张虚拟网络 |
| 企业 VPN | atrust、feilian、easyconnect | 把企业远程访问系统作为出口 |
| 特殊出口 | direct、reject、dns | 直连、拒绝或交给 DNS resolver |
出站节点写在 proxies,订阅或动态节点写在 proxy-providers。普通用户最常接触的是节点名称、协议类型、服务器地址、端口、密码/密钥、TLS/UDP 开关。
什么是规则和策略组#
规则决定一条连接走哪里。策略组把多个出口放在一起,让用户或 Link1 自动选择其中一个。
proxy-groups:
- name: PROXY
type: select
proxies:
- node-a
- node-b
- DIRECT
rules:
- DOMAIN-SUFFIX,google.com,PROXY
- MATCH,DIRECT
上面含义是:
- 访问
*.google.com时交给PROXY组。
PROXY组当前选中哪个节点,就走哪个节点。
- 其他所有流量直连。
策略组不是协议。select、url-test、fallback、load-balance 描述的是“怎么选节点”,真正连接远端的是组里面的出站协议。
什么是 Link1 App 管理能力#
Link1 不把面向用户的管理能力设计成让普通用户手写请求,而是通过 App 提供:
- 配置档案:导入、校验、应用、切换配置。
- 连接列表:查看当前连接、目标地址、命中规则、使用的出站。
- 策略组:查看可用节点、手动切换、触发延迟测试。
- Provider:查看订阅、刷新订阅、观察健康检查结果。
- DNS 与规则测试:输入域名/IP/入口条件,确认会命中哪条规则。
- 日志:查看启动错误、DNS 错误、拨号错误、规则命中和协议握手问题。
- HTTP 捕获:在开启 HTTP Engine Capture 后查看请求/响应摘要和 body 预览。
因此,用户手册不会要求你调用内核管理接口。你只需要理解 App 页面上的信息来自数据流中的哪一层,这样排障时才知道下一步该看什么。
什么是 HTTP Engine#
HTTP Engine 是高级功能,用于 HTTP/HTTPS 调试和改写。它能做:
- MITM 解密指定 HTTPS 域名。
- URL rewrite、redirect、reject。
- Header rewrite。
- Body rewrite。
- JSON transform。
- JQ 处理。
- QuickJS 脚本。
- Mock 响应。
- Capture 和 Replay。
普通代理用户不需要一开始打开 HTTP Engine。它更适合调试 Web 请求、兼容闭源客户端、临时修补请求/响应格式。开启 HTTPS MITM 前,必须理解证书信任风险:只有你明确需要观察或改写的域名才应该加入 MITM 列表。
初学者最容易混淆的点#
代理端口不等于服务端端口#
mixed-port: 7890 是你本机让浏览器连接 Link1 的端口;它不是远端代理服务器的端口。
mixed-port: 7890 # 本机入口
proxies:
- server: example.com
port: 443 # 远端节点端口
DNS 命中会影响规则命中#
如果你写了域名规则,却让系统 DNS 绕过 Link1,透明代理场景下 Link1 可能只看到 IP。此时需要使用 Link1 DNS、Fake-IP、TUN DNS hijack 或 Sniffer。
策略组不是协议#
select、url-test、fallback 是选择策略,不是网络协议。真正连出去的是组里面的节点。
DIRECT 不代表不经过 Link1#
连接仍然先进入 Link1,只是 Link1 最终选择直接连接目标服务器。你仍然能在 App 中看到连接、规则和出站结果。
App 里的“节点不可用”不一定是密码错#
节点不可用可能来自 DNS、网络阻断、服务器不可达、TLS 指纹不匹配、UDP 不通、订阅字段写错、前置 dialer-proxy 不通等原因。排障时应按“入站 → 目标识别 → 规则 → 策略组 → 出站协议”的顺序检查。