跳到主要内容

订阅节点配置

订阅节点由服务提供商通过 URL 下发。Loon 支持 Loon 标准节点、常见节点 URI、整份 Base64 编码内容,以及包含 [DNS][Host][Proxy] 的订阅文件。

添加订阅

订阅写在主配置的 [Remote Proxy] 段中:

[Remote Proxy]
机场订阅 = https://example.com/subscription,parser-enabled=true,udp=default,block-quic=default,fast-open=default,vmess-aead=true,skip-cert-verify=default,flexible-sni=false,enabled=true,img-url=https://example.com/icon.png,parser-plugin=订阅解析器,argument="key=value",server-dns="223.5.5.5,https://dns.example.com/dns-query"
参数说明
parser-enabled是否使用资源解析器;兼容参数名 parser-enable
udp覆盖订阅内节点的 UDP 设置:truefalsedefault
block-quic覆盖订阅内节点的 QUIC 设置:truefalsedefault
fast-open覆盖支持该功能的节点的 TCP Fast Open 设置:truefalsedefault
vmess-aead是否要求 VMess AEAD;truefalsedefault
skip-cert-verify覆盖 TLS 节点的证书验证设置:truefalsedefault
flexible-sni节点未指定 SNI,且服务器为 IP、传输层配置了 Host 时,是否使用 Host 作为 SNI
enabled是否启用此订阅
img-url订阅图标 URL
parser-plugin用于解析订阅的插件名称、标签或 URL
argument传递给资源解析器的参数;兼容参数名 arguments
server-dns手动指定订阅内所有节点解析服务器域名时使用的 DNS。多个服务器必须放在同一对双引号内。适用于 Loon 3.5.2 (996) 及以上版本

default 表示保留节点自身的设置。server-dns 支持普通 DNS(DoU)、DoH、DoQ 和 DoH3,格式与单节点配置相同。

订阅响应内容

服务端可以返回以下内容:

  • UTF-8 文本;
  • 对整份 UTF-8 文本进行 Base64 编码后的内容;
  • Loon 标准节点,每行一个;
  • ss://ssr://vmess://vless://trojan://hysteria2://hy2://anytls:// URI,每行一个;
  • 带 Section 的订阅文件。

没有 Section 的旧订阅仍然支持。新订阅建议使用 Section 格式,以便同时下发节点 DNS 和 Host Map。空行和以 # 开头的注释行会被忽略。

Section 格式

[DNS]

[DNS] 用于设置此订阅内节点解析服务器域名时使用的 DNS:

参数说明
dns-server普通 DNS(DoU),支持 system、IPv4、IPv6 和自定义端口
doh-serverDNS over HTTPS(DoH)
doq-serverDNS over QUIC(DoQ)
doh3-serverDNS over HTTP/3(DoH3)

每项可以配置多个服务器,使用英文逗号分隔。同一优先级的多个 DNS 会并发查询,并采用最先返回的有效结果。

这些配置只用于解析订阅节点的服务器域名,不会替换普通域名请求使用的全局 DNS。

[Host]

[Host] 支持与主配置相同的全部 Host Map 类型:

类型格式
域名到 IPv4 或 IPv6example.com = 192.0.2.10
域名别名example.com = origin.example.com
域名指定 DNS*.example.com = server:https://dns.example.com/dns-query
SSID 指定 DNSssid:Office-WiFi = server:system
域名指定 IP 栈example.com = ip-mode:prefer-v4
IP 到 IP198.51.100.10 = 192.0.2.20
代理内继续使用映射example.com = 192.0.2.10,use-in-proxy=true

域名键支持 *? 通配符。订阅 Host Map 加载后会合并到当前 Host Map,并优先于主配置中的 Host Map。

[Proxy]

[Proxy] 中每行放置一个节点。可以使用单节点配置中的 Loon 标准格式,也可以放置受支持的节点 URI。

节点行可以使用 server-dns 单独指定 DNS。该参数适用于 Loon 3.5.2 (996) 及以上版本;多个服务器必须使用双引号包裹:

节点 = Shadowsocks,node.example.com,443,aes-128-gcm,"password",server-dns="223.5.5.5,https://dns.example.com/dns-query"

DNS 与 Host Map 匹配顺序

解析订阅节点的服务器域名时,按以下顺序选择配置:

  1. 匹配订阅文件 [Host] 的固定 IP、别名、指定 DNS 或 IP 栈配置;
  2. 匹配主配置中的 Host Map;
  3. 使用主配置 [Remote Proxy] 中为该订阅手动设置的 server-dns
  4. 使用订阅节点行中的 server-dns
  5. 使用订阅文件 [DNS] 中的 DNS;
  6. 使用当前 SSID DNS 和全局 DNS。

一旦命中指定的节点 DNS,查询失败时不会继续回落到下一层配置。解析 CNAME 时也会继续使用同一组 DNS。

流量与到期时间

服务端可以在 HTTP 响应 Header 中返回 Subscription-Userinfo

Subscription-Userinfo: upload=1073741824; download=2147483648; total=107374182400; expire=1798761600
字段说明
upload已上传流量,单位为字节
download已下载流量,单位为字节
total套餐总流量,单位为字节
expire到期时间,Unix 时间戳,单位为秒

Loon 将 upload + download 作为已使用流量。字段名称不区分大小写,字段之间使用英文分号分隔;未提供的字段不会显示。流量数值支持整数和科学计数法。

完整下发示例

以下示例同时下发订阅 DNS、全部 Host Map 类型和节点:

# Loon subscription

[DNS]
# 普通 DNS(DoU)
dns-server = system,223.5.5.5,[2001:4860:4860::8888]:53
# DNS over HTTPS(DoH)
doh-server = https://dns.alidns.com/dns-query,https://cloudflare-dns.com/dns-query
# DNS over QUIC(DoQ)
doq-server = quic://dns.adguard-dns.com
# DNS over HTTP/3(DoH3)
doh3-server = h3://dns.example.com/dns-query

[Host]
# 域名到 IPv4
hk-node.example.com = 192.0.2.10
# 域名到 IPv6
us-node.example.com = 2001:db8::10
# 域名别名
sg-node.example.com = edge-node.example.com
# 为域名或通配域名指定 DNS
*.jp-node.example.com = server:https://dns.alidns.com/dns-query
*.eu-node.example.com = server:quic://dns.adguard-dns.com
*.h3-node.example.com = server:h3://dns.example.com/dns-query
# 为域名指定 IP 栈
dual-node.example.com = ip-mode:prefer-v4
# 为 SSID 指定 DNS
ssid:Office-WiFi = server:system
# IP 到 IP
198.51.100.10 = 192.0.2.20
# 在代理内继续使用映射
proxy-origin.example.com = 192.0.2.30,use-in-proxy=true

[Proxy]
# 使用订阅 [DNS] DNS
HK-SS = Shadowsocks,hk-node.example.com,443,aes-128-gcm,"password",udp=true
US-Trojan = Trojan,us-node.example.com,443,"password",transport=tcp,sni=us-node.example.com,udp=true

# 使用订阅 [Host] 中的别名和域名指定 DNS
SG-VMess = VMess,sg-node.example.com,443,auto,"52396e06-041a-4cc2-be5c-8525eb457809",transport=ws,path=/websocket,host=cdn.example.com,over-tls=true,sni=sg-node.example.com,udp=true
JP-Hysteria2 = Hysteria2,tokyo.jp-node.example.com,443,"password",sni=tokyo.jp-node.example.com,udp=true

# 节点行单独指定多个 DNS
Dual-VLESS = VLESS,dual-node.example.com,443,"ae521383-9375-2e0d-c347-48cf3d98eb6e",transport=tcp,over-tls=true,sni=dual-node.example.com,udp=true,server-dns="223.5.5.5,https://dns.google/dns-query"

# URI 节点也可以放在 [Proxy] 中
ss://BASE64-OR-SIP002-URI#URI-Node

如果订阅格式需要转换,请在主配置 [General] 中设置 resource-parser,并在 [Remote Proxy] 的订阅项中启用 parser-enabled=true