跳到主要内容

Vylos 文件格式

使用 .vylos 格式,将标准 WireGuard 配置与 Vylos 的 DNS 分流、按需和终止开关设置一起携带。 | settings.conf | 否 | 采用 INI 风格 UTF-8 文本的 Vylos [SplitDNS]、[OnDemandRule] 和 [Routing] 节。 |

归档结构

.vylos 文件是一个 ZIP 归档,其中包含一个必需文件和一个可选文件:

归档条目必需内容
wireguard.conf是未经修改的 WireGuard [Interface] 和 [Peer] 节,以 UTF-8 文本保存。
settings.conf否Vylos [SplitDNS] 和 [OnDemandRule] 节,以类似 INI 的 UTF-8 文本保存。

如果归档中没有 wireguard.conf,或者任一条目不是 UTF-8 文本,Vylos 会拒绝该归档。没有 settings.conf 的归档与其中的 WireGuard 配置行为相同。

文件扩展名不会改变 WireGuard 配置语法。你可以解压 wireguard.conf 并在其他兼容 WireGuard 的客户端中使用,而 Vylos 专用设置仍单独保存在 settings.conf 中。

wireguard.conf

必需条目使用的 wg-quick 字段与 Vylos 普通 .conf 导入所接受的字段相同。没有任何 [Peer] 节也是有效的,一个隧道也可以包含多个对等端。

ini
[Interface]
PrivateKey = AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
Address = 10.0.0.2/32
DNS = 10.0.0.1

[Peer]
PublicKey = BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB=
AllowedIPs = 0.0.0.0/0
Endpoint = vpn.example.com:51820
PersistentKeepalive = 25

请将示例密钥和端点替换为 WireGuard 服务器提供的值。有关底层配置格式,请参阅 WireGuard 项目的 wg-quick 文档。

settings.conf

节名和键名不区分大小写。空行和 # 后的文本会被忽略;未知的节、未知的键、格式错误的行、不支持的操作或不支持的接口类型都会导致导入失败。

拆分 DNS

使用一个 [SplitDNS] 节,并提供以下一个或两个键:

键值
Domains以逗号分隔的域,其 DNS 查询使用隧道的 DNS 服务器。
SearchDomains以逗号分隔的后缀,用于重试不含域名的主机名查询。

域标签可以包含字母、数字和标签内部的连字符。Vylos 也接受可选的前置通配符(例如 *.example.com)以及用于完全限定名称的末尾句点。

Vylos 在将拆分 DNS 匹配域应用到 Apple 网络之前会进行规范化。无效的域条目会被忽略,而不会加入隧道的域列表。

按需规则

为每个网络条件添加一个 [OnDemandRule] 节。多个节采用“或”逻辑,因此任一匹配规则都可以激活隧道。

键必需可接受的值
InterfaceType是cellular、ethernet 或 wifi。
Action否connect;省略时也默认使用 connect。
SSIDs否对于无线局域网,可以是以逗号分隔的包含列表,也可以是每项都以 ! 开头的“排除”列表。省略时匹配所有无线局域网。

不要在同一条规则中混合普通 SSID 和以 ! 开头的 SSID。蜂窝网络规则适用于 iOS,以太网规则适用于 macOS,无线局域网规则适用于 Vylos 支持的所有平台。

Vylos 在导入和重新导出隧道时会保留当前平台不支持的规则值。因此,一个可移植文件可以保留针对 iOS、macOS 和 visionOS 的预期行为。

终止开关

添加 [Routing] 节,以便在已启用的按需隧道不可用时阻止大多数网络流量:

ini
[Routing]
KillSwitch = true

KillSwitch 接受 true 或 false。值为 true 时必须至少有一个 [OnDemandRule];如果文件在没有自动激活规则的情况下启用终止开关,Vylos 会拒绝该文件。

此设置不会改写 WireGuard 配置。所有对等节点的合并 AllowedIPs 仍决定哪些目的地址具有通过 VPN 的路由。App 会根据有效路由显示全隧道保护、受限网络访问或无出站路由,并在 DNS 服务器不属于任何路由时发出警告。

普通 .conf 文件没有存储终止开关选择的位置。当按需和终止开关设置需要随隧道一起移动时,请使用 .vylos。

完整示例

归档中的 settings.conf 可以同时包含两类功能:

ini
[SplitDNS]
Domains = corp.example.com, *.internal.example.com
SearchDomains = example.com

[OnDemandRule]
InterfaceType = cellular
Action = connect

[OnDemandRule]
InterfaceType = wifi
Action = connect
SSIDs = !HomeWifi, !HomeWifi-5G

[Routing]
KillSwitch = true

如果已启用的隧道不可用,此配置还会阻止大多数其他流量。

此配置会在蜂窝网络和除两个指定家庭网络之外的所有无线局域网上连接。匹配的企业和内部 DNS 名称会通过隧道路由。

有关这些设置在 App 中的行为,请参阅设置拆分 DNS和设置按需连接。

导入、导出和二维码

Vylos 可直接导入 .vylos 文件,也可以从批量 .zip 归档中导入。选择完整配置或两者时,Vylos 会为每个隧道导出一个 .vylos 归档。

在 iOS 上,二维码可包含最大 16 KB 的 Base64 编码 .vylos 归档。Base64 只是一种编码方式,不会加密 wireguard.conf 中的私钥。

常规文件导入上限为 2 MB。导出的文件包含私钥,因此请将其作为敏感凭据存储和共享。