基础配置
[general] 决定 Core 如何路由流量、在哪里监听。一份配置只有它是必需的,其余部分都是可选的。
toml
[general]
route-mode = "rule"
global-proxy = ""
log-level = "info"
port = 7890
protocols = "mixed"
allow-lan = false
api-listen = ""
api-secret = ""字段
| 字段 | 类型 | 默认值 | 取值 |
|---|---|---|---|
route-mode | 字符串 | "rule" | direct、global、rule |
global-proxy | 字符串 | "" | 代理或代理组名称;route-mode = "global" 时必填 |
log-level | 字符串 | "info" | trace、debug、info、warn、error、critical、off |
port | 整数 | 7890 | 1–65535,0 表示不开本地端口 |
protocols | 字符串或数组 | "mixed" | mixed、http、socks5(别名 socks)、none |
allow-lan | 布尔 | false | true 时监听 0.0.0.0 而不是 127.0.0.1 |
ipv6 | 布尔 | false | 仅供 UI 显示;DNS 是否返回 IPv6 由 [dns].ipv6 控制 |
api-listen | 字符串 | "" | IP:端口、localhost:端口 或 [IPv6]:端口;为空则不开 TCP 控制接口 |
api-secret | 字符串 | "" | TCP 控制接口的共享密钥 |
[general] 中出现其他字段会报错 Unknown general field。
路由模式
| 模式 | 行为 |
|---|---|
direct | 所有连接直连;代理、代理组和规则会加载但不使用 |
global | 所有连接走 global-proxy |
rule | 每条连接按 [rule].list 匹配,首条命中生效 |
建议先用 direct 确认本地正常,再用 global 确认代理可用,最后切到 rule。每次只改变一层, 出问题时很容易定位。
本地端口
port 和 protocols 为支持代理设置的应用开一个本地端口。
toml
[general]
port = 7890
protocols = "mixed" # 同一端口同时支持 HTTP 和 SOCKS5protocols 也可以写成列表:
toml
[general]
port = 1080
protocols = ["socks5"] # 只开 SOCKS5mixed即 HTTP 加 SOCKS5。HTTP 包含CONNECT,所以 HTTPS 网站也能通过它访问;没有单独的https取值。none不能与其他值组合。只想用增强模式、不需要显式代理端口时,使用它或port = 0。- 1024 以下的端口需要更高权限。
这两个字段也可以写成子表,二选一,不能同时使用:
toml
[general.inbound]
port = 7890
protocols = "mixed"客户端连接 127.0.0.1:<port>,例如 curl -x http://127.0.0.1:7890 …,或 export ALL_PROXY=socks5h://127.0.0.1:7890。
局域网访问
allow-lan = true 后局域网内其他机器也能访问这个端口,能访问它的人都能使用你的代理,请用防火墙 限制访问范围。
控制接口
桌面 UI 始终通过本地 socket(Linux/macOS 上是 Unix socket,Windows 上是命名管道)与 Core 通信, 不需要任何配置。api-listen 会额外开一个 TCP 端点用于远程控制:
toml
[general]
api-listen = "127.0.0.1:9090"
api-secret = "a-long-random-string"除非确实需要远程管理,否则保持在回环地址上。密钥只负责认证,不加密传输内容。
旧版字段名
以下旧字段名会报错,并提示应该用什么替代:
| 旧写法 | 现在的写法 |
|---|---|
mixed-port | port |
external-controller | api-listen |
rest-api-secret、api-secrect | api-secret |
顶层 [inbound] | [general] 中的 port 和 protocols |
protocols = ["http", "https"] | protocols = "http"(没有 https 这个值) |
其他顶层部分
一份配置可以包含以下部分:
| 部分 | 页面 |
|---|---|
[general] | 本页 |
[[proxy]] | 代理 |
[[proxy-provider]] | Provider |
[[proxy-group]] | 代理组 |
[rule] | 分流规则 |
[dns] | DNS |
[sniffer] | Sniffer |
[enhanced-mode] | 增强模式 |
未知的顶层部分会报错。旧配置中的 [metadata]、[[rule-set]]、[[module]]、[[subscription]]、 [hosts] 会被忽略并给出警告,旧文件仍能加载,但这些设置不会生效。