From 362754555b68d1131c7d6d23021b981a4a1e1307 Mon Sep 17 00:00:00 2001 From: Aoleou Tubby <124496859+aoleou@users.noreply.github.com> Date: Sat, 20 Jan 2024 16:50:31 -0500 Subject: [PATCH] =?UTF-8?q?1.=20=E4=BF=AE=E6=94=B9=E3=80=90=E7=89=B9?= =?UTF-8?q?=E6=80=A7=E8=AF=A6=E8=A7=A3-=E5=A4=9A=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E3=80=91=E4=B8=AD=E7=9A=84=E9=94=99=E5=88=AB?= =?UTF-8?q?=E5=AD=97=EF=BC=9B=202.=20=E6=B6=A6=E8=89=B2=E4=B8=80=E4=B8=8B?= =?UTF-8?q?=E6=96=87=E7=AB=A0=EF=BC=8C=E8=AE=A9=E5=B0=8F=E7=99=BD=E4=B9=9F?= =?UTF-8?q?=E8=83=BD=E7=9C=8B=E6=87=82=E5=B9=B6=E8=BE=BE=E5=88=B0=E6=89=8B?= =?UTF-8?q?=E6=8A=8A=E6=89=8B=E5=AE=9E=E6=93=8D=E7=9A=84=E7=A8=8B=E5=BA=A6?= =?UTF-8?q?=E3=80=823.=20=E5=A2=9E=E5=8A=A0idea=E7=BC=96=E8=BE=91=E5=99=A8?= =?UTF-8?q?=E5=BA=94=E8=AF=A5=E5=BF=BD=E7=95=A5=E7=9A=84=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=A4=B9=20(#456)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix typos and lubricate the article * ignore idea and lubricate the article --- .gitignore | 1 + docs/config/features/multiple.md | 41 +++++++++++++++++++++++++------- 2 files changed, 33 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 532238b..ac3fe46 100644 --- a/.gitignore +++ b/.gitignore @@ -115,3 +115,4 @@ dist .yarn/install-state.gz .pnp.* /docs/.vuepress/.temp/ +.idea diff --git a/docs/config/features/multiple.md b/docs/config/features/multiple.md index b1ca55a..e66b23c 100644 --- a/docs/config/features/multiple.md +++ b/docs/config/features/multiple.md @@ -54,12 +54,29 @@ $ xray run -confdir /etc/xray/confs 以多配置启动 Xray: ```bash +# 路径 /etc/xray/confs 为多文件存放目录 $ xray run -confdir /etc/xray/confs ``` -这两个配置文件的就等效于合成一起的整配置。当需要修改出口节点,只需要修改 `outbounds.json` 内容。 +`base.json` 和 `outbounds.json` 这两个配置文件的效果之和等效于单文件配置的效果, 如下方所示: -如果需要改编日志 log 的级别,也不需要改 `base.json`,只需后续增加一个配置: +```json +{ + "log": {}, + "api": {}, + "dns": {}, + "stats": {}, + "policy": {}, + "transport": {}, + "routing": {}, + "inbounds": [], + "outbounds": [] +} +``` + +当需要修改出口节点,只需要修改 `outbounds.json` 的内容。 + +如果需要改变日志 log 的级别,也不需要改 `base.json`,只需后续增加一个配置: - debuglog.json @@ -71,22 +88,28 @@ $ xray run -confdir /etc/xray/confs } ``` -启动顺序放置在 base 后,即可输出 debug 级别的日志 +启动顺序放置在 base 后,即可输出 debug 级别的日志。 + +::: tip +文件启动顺序是通过在每个文件名前面增加前缀数字的方式实现的,如 `00_文件名`, `01_文件名`。 数字越大排序越靠后。 +::: ### 数组(`[]`) 在 json 配置中的`inbounds`和`outbounds`是数组结构,他们有特殊的规则: -- 当配置中的数组元素有 2 或以上,覆盖前者的 inbounds/oubounds; +- 当配置中的数组元素有 2 个或以上,则后者覆盖前者的 inbounds/oubounds 的内容,详情看下方的【接近可用配置的例子】; - 当配置中的数组元素只有 1 个时,查找原有`tag`相同的元素进行覆盖;若无法找到: - 对于 inbounds,添加至最后(inbounds 内元素顺序无关) - 对于 outbounds,添加至最前(outbounds 默认首选出口);但如果文件名含有 tail(大小写均可),添加至最后。 借助多配置,可以很方便为原有的配置添加不同协议的 inbound,而不必修改原有配置。 +## 接近可用配置的例子 + 以下例子不是有效配置,只为展示上述规则。 -- 000.json +- 00.json ```json { @@ -100,7 +123,7 @@ $ xray run -confdir /etc/xray/confs } ``` -- 001.json +- 01.json ```json { @@ -113,7 +136,7 @@ $ xray run -confdir /etc/xray/confs } ``` -- 002.json +- 02.json ```json { @@ -127,7 +150,7 @@ $ xray run -confdir /etc/xray/confs } ``` -三个配置将会合成为: +三个配置将会合并为: ```json { @@ -135,7 +158,7 @@ $ xray run -confdir /etc/xray/confs { "protocol": "socks", "tag": "socks", - "port": 4321 // < 002顺序在000后,因此覆盖tag为socks的inbound端口为4321 + "port": 4321 // < 02.json顺序在00.json后,因此覆盖tag为socks的inbound端口为4321 }, { "protocol": "http",