From 4b636d90bde2f85c604973df1c734e7f52044717 Mon Sep 17 00:00:00 2001 From: Meo597 <197331664+Meo597@users.noreply.github.com> Date: Sun, 8 Jun 2025 14:57:53 +0800 Subject: [PATCH] Update README: New config file style --- README.en.md | 140 +++++++++++++++++++++++++++------------------------ README.md | 140 +++++++++++++++++++++++++++------------------------ 2 files changed, 146 insertions(+), 134 deletions(-) diff --git a/README.en.md b/README.en.md index ac63446..741c929 100644 --- a/README.en.md +++ b/README.en.md @@ -11,57 +11,63 @@ TODO List: TODO [中文](README.md) | English -```json5 +```jsonc { - inbounds: [ + "inbounds": [ // Server Inbound Configuration { - listen: "0.0.0.0", - port: 443, - protocol: "vless", - settings: { - clients: [ + "listen": "0.0.0.0", + "port": 443, + "protocol": "vless", + "settings": { + "clients": [ { - id: "", // Required, execute ./xray uuid to generate, or a string of 1-30 characters - flow: "xtls-rprx-vision", // Optional, if any, client must enable XTLS - }, + "id": "", // Required, execute ./xray uuid to generate, or a string of 1-30 characters + "flow": "xtls-rprx-vision" // Optional, if any, client must enable XTLS + } ], - decryption: "none", + "decryption": "none" }, - streamSettings: { - network: "tcp", - security: "reality", - realitySettings: { - show: false, // Optional, if true, output debugging information - dest: "example.com:443", // Required, the format is the same as the dest of VLESS fallbacks - xver: 0, // Optional, the format is the same as xver of VLESS fallbacks - serverNames: [ + "streamSettings": { + "network": "tcp", + "security": "reality", + "realitySettings": { + "show": false, // Optional, if true, output debugging information + "dest": "example.com:443", // Required, the format is the same as the dest of VLESS fallbacks + "xver": 0, // Optional, the format is the same as xver of VLESS fallbacks + "serverNames": [ // Required, the acceptable serverName list, does not support * wildcards for now "example.com", - "www.example.com", + "www.example.com" ], - privateKey: "", // Required, execute ./xray x25519 to generate - minClientVer: "", // Optional, minimum client Xray version, format is x.y.z - maxClientVer: "", // Optional, the highest version of client Xray, the format is x.y.z - maxTimeDiff: 0, // Optional, the maximum time difference allowed, in milliseconds - shortIds: [ + "privateKey": "", // Required, execute ./xray x25519 to generate + "minClientVer": "", // Optional, minimum client Xray version, format is x.y.z + "maxClientVer": "", // Optional, the highest version of client Xray, the format is x.y.z + "maxTimeDiff": 0, // Optional, the maximum time difference allowed, in milliseconds + "shortIds": [ // Required, the acceptable shortId list, which can be used to distinguish different clients "", // If there is this item, the client shortId can be empty - "0123456789abcdef", // 0 to f, the length is a multiple of 2, the maximum length is 16 + "0123456789abcdef" // 0 to f, the length is a multiple of 2, the maximum length is 16 ], - // The six limit below are optional for rate limiting falling REALITY connections. Default are 0 means disabled - // WARNING: Enabling rate limiting may create detectable patterns for GFW! + // The two limit below are optional for rate limiting falling REALITY connections. Default are 0 means disabled + // WARNING: Enabling rate limiting may create detectable patterns for Great-Firewall! // If you're a GUI/panel/one-click script developer, RANDOMIZE these parameters! - limitFbUploadRate: 0, // Base upload speed (bytes/s) - limitFbUploadBurst: 0, // Upload burst capacity (bytes) - limitFbUploadAfter: 0, // Start upload throttling after (bytes) - limitFbDownloadRate: 0, // Base download speed (bytes/s) - limitFbDownloadBurst: 0, // Download burst capacity (bytes) - limitFbDownloadAfter: 0, // Start download throttling after (bytes) - }, - }, - }, - ], + "limitFallbackUpload": { + // Limit upload for falling REALITY connections + "afterBytes": 0, // Start throttling after (bytes) + "bytesPerSec": 0, // Base speed (bytes/s) + "burstBytesPerSec": 0 // Burst capacity (bytes) + }, + "limitFallbackDownload": { + // Limit download for falling REALITY connections + "afterBytes": 0, // Start throttling after (bytes) + "bytesPerSec": 0, // Base speed (bytes/s) + "burstBytesPerSec": 0 // Burst capacity (bytes) + } + } + } + } + ] } ``` @@ -75,41 +81,41 @@ Configuration bonus items: **Block the proxy traffic back to China, TCP/80, UDP/ **REALITY can also be used with proxy protocols other than XTLS**, but this is not recommended due to their obvious and already targeted TLS in TLS characteristics The next main goal of REALITY is "**pre-built mode**", that is, to collect and build the characteristics of the target website in advance, and the next main goal of XTLS is **0-RTT** -```json5 +```jsonc { - outbounds: [ + "outbounds": [ // Client outbound configuration { - protocol: "vless", - settings: { - vnext: [ + "protocol": "vless", + "settings": { + "vnext": [ { - address: "", // The domain name or IP of the server - port: 443, - users: [ + "address": "", // The domain name or IP of the server + "port": 443, + "users": [ { - id: "", // consistent with the server - flow: "xtls-rprx-vision", // consistent with the server - encryption: "none", - }, - ], - }, - ], + "id": "", // consistent with the server + "flow": "xtls-rprx-vision", // consistent with the server + "encryption": "none" + } + ] + } + ] }, - streamSettings: { - network: "tcp", - security: "reality", - realitySettings: { - show: false, // Optional, if true, output debugging information - fingerprint: "chrome", // Required, use uTLS library to emulate client TLS fingerprint - serverName: "", // One of the server serverNames - publicKey: "", // The public key corresponding to the private key of the server - shortId: "", // One of the server shortIds - spiderX: "", // The initial path and parameters of the crawler, recommended to be different for each client - }, - }, - }, - ], + "streamSettings": { + "network": "tcp", + "security": "reality", + "realitySettings": { + "show": false, // Optional, if true, output debugging information + "fingerprint": "chrome", // Required, use uTLS library to emulate client TLS fingerprint + "serverName": "", // One of the server serverNames + "publicKey": "", // The public key corresponding to the private key of the server + "shortId": "", // One of the server shortIds + "spiderX": "" // The initial path and parameters of the crawler, recommended to be different for each client + } + } + } + ] } ``` diff --git a/README.md b/README.md index 4af9642..e6a3ee2 100644 --- a/README.md +++ b/README.md @@ -11,56 +11,62 @@ TODO List: TODO 中文 | [English](README.en.md) -```json5 +```jsonc { - inbounds: [ + "inbounds": [ // 服务端入站配置 { - listen: "0.0.0.0", - port: 443, - protocol: "vless", - settings: { - clients: [ + "listen": "0.0.0.0", + "port": 443, + "protocol": "vless", + "settings": { + "clients": [ { - id: "", // 必填,执行 ./xray uuid 生成,或 1-30 字节的字符串 - flow: "xtls-rprx-vision", // 选填,若有,客户端必须启用 XTLS - }, + "id": "", // 必填,执行 ./xray uuid 生成,或 1-30 字节的字符串 + "flow": "xtls-rprx-vision" // 选填,若有,客户端必须启用 XTLS + } ], - decryption: "none", + "decryption": "none" }, - streamSettings: { - network: "tcp", - security: "reality", - realitySettings: { - show: false, // 选填,若为 true,输出调试信息 - dest: "example.com:443", // 必填,格式同 VLESS fallbacks 的 dest - xver: 0, // 选填,格式同 VLESS fallbacks 的 xver - serverNames: [ + "streamSettings": { + "network": "tcp", + "security": "reality", + "realitySettings": { + "show": false, // 选填,若为 true,输出调试信息 + "dest": "example.com:443", // 必填,格式同 VLESS fallbacks 的 dest + "xver": 0, // 选填,格式同 VLESS fallbacks 的 xver + "serverNames": [ // 必填,客户端可用的 serverName 列表,暂不支持 * 通配符 "example.com", - "www.example.com", + "www.example.com" ], - privateKey: "", // 必填,执行 ./xray x25519 生成 - minClientVer: "", // 选填,客户端 Xray 最低版本,格式为 x.y.z - maxClientVer: "", // 选填,客户端 Xray 最高版本,格式为 x.y.z - maxTimeDiff: 0, // 选填,允许的最大时间差,单位为毫秒 - shortIds: [ + "privateKey": "", // 必填,执行 ./xray x25519 生成 + "minClientVer": "", // 选填,客户端 Xray 最低版本,格式为 x.y.z + "maxClientVer": "", // 选填,客户端 Xray 最高版本,格式为 x.y.z + "maxTimeDiff": 0, // 选填,允许的最大时间差,单位为毫秒 + "shortIds": [ // 必填,客户端可用的 shortId 列表,可用于区分不同的客户端 "", // 若有此项,客户端 shortId 可为空 - "0123456789abcdef", // 0 到 f,长度为 2 的倍数,长度上限为 16 + "0123456789abcdef" // 0 到 f,长度为 2 的倍数,长度上限为 16 ], - // 下列六个 limit 为选填,可对回落的 REALITY 连接限速。默认为 0 即不启用 - // 警告:启用限速可能会引入新的特征被GFW探测到!如果您是GUI/面板/一键脚本开发者,请务必让这些参数随机化! - limitFbUploadRate: 0, // 上行基准速率 (字节/秒) - limitFbUploadBurst: 0, // 上行突发速率 (字节/秒) - limitFbUploadAfter: 0, // 上行指定字节后开始限速 - limitFbDownloadRate: 0, // 下行基准速率 (字节/秒) - limitFbDownloadBurst: 0, // 下行突发速率 (字节/秒) - limitFbDownloadAfter: 0, // 下行指定字节后开始限速 - }, - }, - }, - ], + // 下列两个 limit 为选填,可对回落的 REALITY 连接限速。默认为 0 即不启用 + // 警告:启用限速可能会引入新的特征被 GFW 探测到!如果您是GUI/面板/一键脚本开发者,请务必让这些参数随机化! + "limitFallbackUpload": { + // 限制回落上行 + "afterBytes": 0, // 传输指定字节后开始限速 + "bytesPerSec": 0, // 基准速率 (字节/秒) + "burstBytesPerSec": 0 // 突发速率 (字节/秒) + }, + "limitFallbackDownload": { + // 限制回落下行 + "afterBytes": 0, // 传输指定字节后开始限速 + "bytesPerSec": 0, // 基准速率 (字节/秒) + "burstBytesPerSec": 0 // 突发速率 (字节/秒) + } + } + } + } + ] } ``` @@ -74,41 +80,41 @@ TODO List: TODO **REALITY 也可以搭配 XTLS 以外的代理协议使用**,但不建议这样做,因为它们存在明显且已被针对的 TLS in TLS 特征 REALITY 的下一个主要目标是“**预先构建模式**”,即提前采集目标网站特征,XTLS 的下一个主要目标是 **0-RTT** -```json5 +```jsonc { - outbounds: [ + "outbounds": [ // 客户端出站配置 { - protocol: "vless", - settings: { - vnext: [ + "protocol": "vless", + "settings": { + "vnext": [ { - address: "", // 服务端的域名或 IP - port: 443, - users: [ + "address": "", // 服务端的域名或 IP + "port": 443, + "users": [ { - id: "", // 与服务端一致 - flow: "xtls-rprx-vision", // 与服务端一致 - encryption: "none", - }, - ], - }, - ], + "id": "", // 与服务端一致 + "flow": "xtls-rprx-vision", // 与服务端一致 + "encryption": "none" + } + ] + } + ] }, - streamSettings: { - network: "tcp", - security: "reality", - realitySettings: { - show: false, // 选填,若为 true,输出调试信息 - fingerprint: "chrome", // 必填,使用 uTLS 库模拟客户端 TLS 指纹 - serverName: "", // 服务端 serverNames 之一 - publicKey: "", // 服务端私钥对应的公钥 - shortId: "", // 服务端 shortIds 之一 - spiderX: "", // 爬虫初始路径与参数,建议每个客户端不同 - }, - }, - }, - ], + "streamSettings": { + "network": "tcp", + "security": "reality", + "realitySettings": { + "show": false, // 选填,若为 true,输出调试信息 + "fingerprint": "chrome", // 必填,使用 uTLS 库模拟客户端 TLS 指纹 + "serverName": "", // 服务端 serverNames 之一 + "publicKey": "", // 服务端私钥对应的公钥 + "shortId": "", // 服务端 shortIds 之一 + "spiderX": "" // 爬虫初始路径与参数,建议每个客户端不同 + } + } + } + ] } ```