mirror of
https://github.com/XTLS/Xray-docs-next.git
synced 2025-02-21 00:43:16 +03:00
Update xray doc
This commit is contained in:
parent
bf1173a8a5
commit
949c863302
18
README.md
18
README.md
@ -2,25 +2,13 @@
|
||||
|
||||
## 关于网站
|
||||
|
||||
### 网站内容
|
||||
|
||||
网站包含了 [project X 文档网站](https://xtls.github.io/) 所呈现的所有内容.
|
||||
- 网站包含了 [project X 文档网站](https://xtls.github.io/) 所呈现的所有内容.
|
||||
|
||||
## 帮助我们改进网站
|
||||
|
||||
### 改进网站内容
|
||||
- 请参照 [改进文档步骤](https://xtls.github.io/document/document.html)
|
||||
|
||||
- 您可以通过修改本仓库的文档, 帮助我们改进 [project X 文档网站](https://xtls.github.io/) 所呈现的内容.
|
||||
|
||||
- 您可以对已经存在的文档进行修改, 或把您新增的文档放置到相关的目录中.
|
||||
|
||||
- 当您新增或修改完成后, 提交您的修改, 并且向本仓库发出 PR.
|
||||
|
||||
### 自动构建
|
||||
|
||||
当成功向仓库提交了修改或 PR 被 merge 后, 会自动重新构建 [project X 文档网站](https://xtls.github.io/)
|
||||
|
||||
只需稍等片刻,就可以在网站上看到修改的最新呈现.
|
||||
- 当成功向仓库提交了修改或 PR 被 merge 后, 会自动重新构建. 只需稍等片刻, 就可以在网站上看到修改的最新呈现.
|
||||
|
||||
## 致谢
|
||||
|
||||
|
@ -12,7 +12,6 @@ export function getConfigSidebar(
|
||||
{
|
||||
text: feature,
|
||||
children: [
|
||||
path + "features/vless.md",
|
||||
path + "features/xtls.md",
|
||||
path + "features/fallback.md",
|
||||
path + "features/browser_dialer.md",
|
||||
|
@ -50,8 +50,6 @@ footer: Licensed under CC-BY-SA 4.0 | Copyright 2020-Present Project X Community
|
||||
|
||||
> “配置兼容,整体更好”
|
||||
|
||||
- Xray-flutter 是一个优雅的跨平台图形界面工具. <Badge text="WIP" type="warning"/>
|
||||
|
||||
### 我们是谁?
|
||||
|
||||
> **It doesn't matter who we are. What matters is that we will keep riding and never look back.**
|
||||
@ -62,7 +60,7 @@ footer: Licensed under CC-BY-SA 4.0 | Copyright 2020-Present Project X Community
|
||||
|
||||
- 🖥️ 帮助开发和测试 Xray, 提交高质量的 Pull request.
|
||||
- 📩 在 [GitHub Issues](https://github.com/XTLS/Xray-core/issues) 或 [讨论区](https://github.com/XTLS/Xray-core/discussions)发起建设性或有意义的 issue 与 discussion.
|
||||
- 📝 写下您的使用心得并提交至 Xray 的 [文档网站](https://github.com/XTLS/XTLS.github.io).
|
||||
- 📝 写下您的使用心得并提交至 Xray 的 [文档网站](https://github.com/XTLS/Xray-docs-next).
|
||||
- 💬 在 Telegram 群帮助群友/灌水.
|
||||
- **...事实上,每一份对 Xray 的支持都会让 Xray 变得更强大**
|
||||
|
||||
@ -96,6 +94,4 @@ footer: Licensed under CC-BY-SA 4.0 | Copyright 2020-Present Project X Community
|
||||
|
||||
### Stargazers over time
|
||||
|
||||
> Project X 的 GitHub 主仓库 Xray-core 已获 6000+ stars;Project X 群人数 6000+,频道订阅数 4000+
|
||||
|
||||
[](https://starchart.cc/XTLS/Xray-core)
|
||||
|
@ -1,47 +0,0 @@
|
||||
# VLESS 协议详解
|
||||
|
||||
> **VLESS 是原创的无状态的轻量传输协议, 也是 Xray 一切的开始**
|
||||
|
||||
## 协议详解 <Badge text="WIP" type="warning"/>
|
||||
|
||||
## 配置模板
|
||||
|
||||
[Xray-examples](https://github.com/xtls/Xray-examples) 有完整的 VLESS 配置示例供参考。(但目前不能保证其它协议的配置示例质量)
|
||||
|
||||
## 客户端开发指引
|
||||
|
||||
1. VLESS 协议本身还会有不兼容升级,但客户端配置文件参数基本上是只增不减的。**所以如果你开发了用 core 的客户端,现在就可以适配。** iOS 客户端的协议实现则需紧跟升级。
|
||||
2. **视觉标准:UI 标识请统一用 VLESS**,而不是 VLess / Vless / vless,配置文件不受影响,代码内则顺其自然。
|
||||
3. `encryption` 应做成输入框而不是选择框,新配置的默认值应为 `none`,若用户置空则应代填 `none`。
|
||||
|
||||
**以下为已支持图形化配置 VLESS 的部分客户端列表,推荐使用:**(排名不分先后顺序)
|
||||
|
||||
- OpenWrt
|
||||
- [PassWall](https://github.com/xiaorouji/openwrt-passwall)
|
||||
- [Hello World](https://github.com/jerrykuku/luci-app-vssr)
|
||||
- [ShadowSocksR Plus+](https://github.com/fw876/helloworld)
|
||||
- Windows
|
||||
- [v2rayN](https://github.com/2dust/v2rayN)
|
||||
- [Qv2ray](https://github.com/Qv2ray/Qv2ray)
|
||||
- Android
|
||||
- [v2rayNG](https://github.com/2dust/v2rayNG)
|
||||
- [Kitsunebi](https://github.com/rurirei/Kitsunebi/tree/release_xtls)
|
||||
- iOS / Mac
|
||||
- [Shadowrocket](https://apps.apple.com/app/shadowrocket/id932747118)
|
||||
- [V2RayXS](https://github.com/tzmax/V2RayXS)
|
||||
|
||||
## Fallbacks
|
||||
|
||||
Fallbacks 是 Xray 独创的新型协议回落模式解析, 可有效防止主动探测, 自由配置常用端口多服务共享.
|
||||
|
||||
目前 Xray 中的 VLESS 和 trojan 协议支持 Fallbacks.
|
||||
|
||||
- [Fallbacks 配置说明](../fallback/#fallbacks-配置)
|
||||
- [Fallbacks 功能简析]()
|
||||
- [Fallbacks 设计理论](../fallback/#fallbacks-设计理论)
|
||||
|
||||
## VLESS 分享链接标准
|
||||
|
||||
感谢 <img src="https://avatars2.githubusercontent.com/u/7822648?s=32" width="32px" height="32px" alt="a"/> [@DuckSoft](https://github.com/DuckSoft) 的提案!
|
||||
|
||||
目前为初步提案, 详情请见 [VMessAEAD / VLESS 分享链接标准提案](https://github.com/XTLS/Xray-core/issues/91)
|
@ -7,11 +7,9 @@
|
||||
project X 的代码被托管在 github 上:
|
||||
|
||||
- xray 核心 [xray-core](https://github.com/XTLS/Xray-core)
|
||||
- xray-flutter [xray-flutter](https://github.com/XTLS/Xray-flutter)
|
||||
- 安装脚本 [Xray-install](https://github.com/XTLS/Xray-install)
|
||||
- 数据文件 [Xray-rules-dat](https://github.com/XTLS/Xray-rules-dat)
|
||||
- 配置模板 [Xray-examples](https://github.com/XTLS/Xray-examples)
|
||||
- xray 文档 [XTLS.github.io](https://github.com/XTLS/XTLS.github.io)
|
||||
- xray 文档 [Xray-docs-next](https://github.com/XTLS/Xray-docs-next)
|
||||
|
||||
您可以使用 [Git](https://git-scm.com/) 来获取代码。
|
||||
|
||||
@ -28,9 +26,8 @@ project X 的代码被托管在 github 上:
|
||||
<Badge text="WIP" type="warning"/>
|
||||
|
||||
- 建立尝鲜版本和稳定版本两个发布通道
|
||||
- 临时版本,主要用于特定情况的测试(比如从分支 build 的),于 TG 群内/issue 回复等渠道 发布特定版本。
|
||||
- 尝鲜版本,可以为 daily build,用于尝鲜和获得即时反馈和再改进。
|
||||
- 稳定版本,为定时更新(比如周更),合并稳定的修改并发布。
|
||||
- 尝鲜版本,可以为 daily build,主要用于特定情况的测试,尝鲜和获得即时反馈和再改进。
|
||||
- 稳定版本,为定时更新(比如月更),合并稳定的修改并发布。
|
||||
|
||||
### 引用其它项目
|
||||
|
||||
@ -50,9 +47,10 @@ project X 的代码被托管在 github 上:
|
||||
|
||||
- Golang
|
||||
- 请参考 [Effective Go](https://golang.org/doc/effective_go.html);
|
||||
- 每一次 push 之前,请运行:`go fmt ./...` 和 `go fmt -s -l -e -w $(find . -type f -name "*.go" ! -name "*.pb.go")`;
|
||||
- 每一次 push 之前,请确保测试通过:`go test ./...`;
|
||||
- 提交 pull request 之前,请确保新增代码有超过 70% 的代码覆盖率(code coverage);
|
||||
- 每一次 push 之前,请运行:`go generate core/format.go`;
|
||||
- 如果需要修改 protobuf,例如增加新配置项,请运行:`go generate core/proto.go`;
|
||||
- 提交 pull request 之前,建议测试通过:`go test ./...`;
|
||||
- 提交 pull request 之前,建议新增代码有超过 70% 的代码覆盖率(code coverage);
|
||||
- 其它
|
||||
- 请注意代码的可读性。
|
||||
|
||||
@ -65,7 +63,7 @@ project X 的代码被托管在 github 上:
|
||||
2. 克隆你自己的 Xray 仓库到本地:`git clone https://github.com/<your_name>/Xray-core.git`;
|
||||
3. 基于 `main` 分支创建新的分支,例如 `git branch issue24 main`;
|
||||
4. 在新创建的分支上作修改并提交修改(commit);
|
||||
5. 在推送(push)修改完成的分支到自己的仓库前,先切换到 `main` 分支,运行 `git pull https://github.com/v2fly/Xray-core.git` 拉取最新的远端代码;
|
||||
5. 在推送(push)修改完成的分支到自己的仓库前,先切换到 `main` 分支,运行 `git pull https://github.com/xray/xray-core.git` 拉取最新的远端代码;
|
||||
6. 如果上一步拉取得到了新的远端代码,则切换到之前自己创建的分支,运行 `git rebase main` 执行分支合并操作。如遇到文件冲突,则需要解决冲突;
|
||||
7. 上一步处理完毕后,就可以把自己创建的分支推送到自己的仓库:`git push -u origin your-branch`
|
||||
8. 最后,把自己仓库的新推送的分支往 `xtls/Xray-core` 的 `main` 分支发 PR 即可;
|
||||
|
@ -2,4 +2,90 @@
|
||||
|
||||
VLESS 是一个无状态的轻量传输协议,可以作为 Xray 客户端和服务器之间的桥梁。
|
||||
|
||||
<Badge text="WIP" type="warning"/>
|
||||
## Request & Response
|
||||
|
||||
|1 字节|16 字节|1 字节|M 字节|1 字节|2 字节|1 字节|S 字节|X 字节|
|
||||
|-|-|-|-|-|-|-|-|-|
|
||||
|协议版本|等价 UUID|附加信息长度 M|附加信息 ProtoBuf|指令|端口|地址类型|地址|请求数据|
|
||||
|
||||
|1 字节|1 字节|N 字节|Y 字节|
|
||||
|-|-|-|-|
|
||||
|协议版本,与请求的一致|附加信息长度 N|附加信息 ProtoBuf|响应数据|
|
||||
|
||||
VLESS 早在第二个测试版 ALPHA 2 时就已经是上述结构了(BETA 是第五个测试版):
|
||||
|
||||
> “响应认证”被替换为“协议版本”并移至最前,使 VLESS 可以升级换代,同时消除了生成伪随机数的开销。混淆相关结构被替换为附加信息(ProtoBuf)并前移,赋予协议本身可扩展性,相关开销也极小([gogo/protobuf](https://github.com/gogo/protobuf)),若无附加信息则无相关开销。
|
||||
|
||||
我一直觉得“响应认证”不是必要的,ALPHA 时为了提升生成随机数的性能,还用 math/rand 替换 crypto/rand,而现在都不需要了。
|
||||
|
||||
“协议版本”不仅能起到“响应认证”的作用,还赋予了 VLESS 无痛升级协议结构的能力,带来无限的可能性。
|
||||
“协议版本”在测试版本中均为 0,正式版本中为 1,以后若有不兼容的协议结构变更则应升级版本。
|
||||
|
||||
VLESS 服务端的设计是 switch version,即同时支持所有 VLESS 版本。若需要升级协议版本(可能到不了这一步),推荐的做法是服务端提前一个月支持,一个月后再改客户端。VMess 请求也有协议版本,但它的认证信息在外面,指令部分则高度耦合且有固定加密,导致里面的协议版本毫无意义,服务端也没有进行判断,响应则没有协议版本。Trojan 的协议结构中没有协议版本。
|
||||
|
||||
接下来是 UUID,我本来觉得 16 字节有点长,曾经考虑过缩短它,但后来看到 Trojan 用了 56 个可打印字符(56 字节),就彻底打消了这个念头。服务端每次都要验证 UUID,所以性能也很重要:VLESS 的 Validator 经历了多次重构/升级,相较于 VMess,它十分简洁且耗资源很少,可以同时支持非常多的用户,性能也十分强悍,验证速度极快(sync.Map)。API 动态增删用户则更高效顺滑。
|
||||
https://github.com/XTLS/Xray-core/issues/158
|
||||
|
||||
引入 ProtoBuf 是一个创举,等下会详细讲解。“指令”到“地址”的结构目前与 VMess 完全相同,同样支持 Mux。
|
||||
|
||||
总体上,ALPHA 2 到 BETA 主要是:结构进化、清理整合、性能提升、更加完善。这些都是一点一滴的,详见 [VLESS Changes](https://github.com/rprx/v2ray-vless/releases)。
|
||||
|
||||
## ProtoBuf
|
||||
|
||||
似乎只有 VLESS 可选内嵌 ProtoBuf,它是一种数据交换格式,信息被紧密编码成二进制,TLV 结构(Tag Length Value)。
|
||||
|
||||
起因是我看到一篇文章称 SS 有一些缺点,如没有设计错误回报机制,客户端没办法根据不同的错误采取进一步的动作。
|
||||
(但我并不认同所有错误都要回报,不然防不了主动探测。下一个测试版中,服务器可以返回一串自定义信息。)
|
||||
于是想到一个可扩展的结构是很重要的,未来它也可以承载如动态端口指令。不止响应,请求也需要类似的结构。
|
||||
本来打算自己设计 TLV,接着发觉 ProtoBuf 就是此结构、现成的轮子,完全适合用来做这件事,各语言支持等也不错。
|
||||
|
||||
目前“附加信息”只有 Scheduler 和 SchedulerV,它们是 MessName 和 MessSeed 的替代者,**当你不需要它们时,“附加信息长度”为 0,也就不会有 ProtoBuf 序列化/反序列化的开销**。其实我更愿意称这个过程为“拼接”,因为 pb 实际原理上也只是这么做而已,相关开销极小。拼接后的 bytes 十分紧凑,和 ALPHA 的方案相差无几,有兴趣的可以分别输出并对比。
|
||||
|
||||
为了指示对附加信息(Addons,也可以理解成插件,以后可以有很多个插件)的不同支持程度,下个测试版会在“附加信息长度”前新增“附加信息版本”。256 - 1 = 255 字节是够用且合理的(65535 就太多了,还可能有人恶意填充),现有的只用了十分之一,以后也不会同时有那么多附加信息,且大多数情况下是完全没有附加信息的。真不够用的话,可以升级 VLESS 版本。
|
||||
|
||||
为了减少逻辑判断等开销,暂定 Addons 不使用多级结构。一个月前出现过“可变协议格式”的想法,pb 是可以做到打乱顺序,但没必要,因为现代加密的设计不会让旁观者看出两次传输的头部相同。
|
||||
|
||||
下面介绍 Schedulers 和 Encryption 的构想,**它们都是可选的**,一个应对流量时序特征问题,一个应对密码学上的问题。
|
||||
|
||||
## ~~Schedulers~~ Flow
|
||||
|
||||
~~中文名暂称:流量调度器~~(2020-09-03 更新:中文名确定为“流控”),指令由 ProtoBuf 承载,控制的是数据部分。
|
||||
|
||||
我之前发现,VMess 原有的 shake “元数据混淆”在 TLS 上完全不会带来有意义的改变,只会降低性能,所以 VLESS 弃用了它。并且,“混淆”这个表述容易被误解成伪装,也弃用了。顺便一提,我一直是不看好伪装的:做不到完全一样,那不就是强特征吗?做得到完全一样,那为什么不直接用伪装目标?我一开始用的是 SSR,后来发现它只是表面伪装骗运营商,就再也没用过了。
|
||||
|
||||
那么,“流量调度器”要解决什么问题?它影响的是宏观流量时序特征,而不是微观特征,后者是加密要解决的事情。流量时序特征可以是协议带来的,比如 Socks5 over TLS 时的 Socks5 握手 ,TLS 上不同的这种特征对于监测者来说就是不同的协议,此时无限 Schedulers 就相当于无限协议(重新分配每次发送的数据量大小等)。流量时序特征也可以是行为带来的,比如访问 Google 首页时加载了多少文件、顺序、每个文件的大小,多套一层加密并不能有效掩盖这些信息。
|
||||
|
||||
Schedulers 没必要像下面的 Encryption 一样整个套在外面,因为头部的一丁点数据相对于后面的数据量来说太微不足道了。
|
||||
|
||||
BETA 2 预计推出两个初级的 Scheduler:Zstd 压缩、数据量动态扩充。进阶操作才是从宏观层面来控制、分配,暂时咕咕。
|
||||
|
||||
## Encryption
|
||||
|
||||
与 VMess 的高度耦合不同,VLESS 的服务端、客户端不久后可以提前约定好加密方式,仅在外面套一层加密。这有点类似于使用 TLS,不影响承载的任何数据,也可以理解成底层就是从 TLS 换成预设约定加密。相对于高度耦合,这种方式更合理且灵活:一种加密方式出了安全性问题,直接扔掉并换用其它的就行了,十分方便。VLESS 服务端还会允许不同的加密方式共存。
|
||||
|
||||
对比 VMess,VLESS 相当于把 security 换成 encryption,把 disableInsecureEncryption 换成 decryption,就解决了所有问题。目前 encryption 和 decryption 只接受 \"none\" 且不能留空(即使以后有连接安全性检查),详见 [VLESS 配置文档](https://github.com/rprx/v2fly-github-io/blob/master/docs/config/protocols/vless.md)。encryption 并不需要往外移一级,一是因为无法复用很多代码,二是因为会影响控制粒度,看未来的应用就明白了。
|
||||
|
||||
加密支持两类形式,一类是加密完全独立,需要额外密码,适合私用,另一类是结合已有的 UUID 来加密,适合公用。
|
||||
(若用第一类加密形式,且密码是以某种形式公开的,比如多人共用,那么中间人攻击就不远了)
|
||||
重新设计的动态端口可能会随加密同时推出,指令由 ProtoBuf 承载,具体实现和 VMess 的动态端口也会有很多不同。
|
||||
|
||||
套现成加密是件很简单的事情,也就多一层 writer & reader。BETA 3 预计支持 SS 的 aes-128-gcm 和 chacha20-ietf-poly1305:
|
||||
客户端的 encryption 可以填 “auto: ss_aes-128-gcm_0_123456, ss_chacha20-ietf-poly1305_0_987654”,auto 会选择最适合当前机器的,0 代表测试版,最后的是密码。服务端的 decryption 也是类似填法,收到请求时会逐一尝试解密。
|
||||
|
||||
并不是所有组合都需逐一尝试:VMess 的加密分为三段,第一段是认证信息,结合了 UUID、alterId、时间因素,第二段是指令部分,以固定算法加密,指令中含有数据部分使用的加密算法,第三段才是重要的数据部分。可以看出,VMess 的加解密方式实际上是多对一(服务端适配),而不仅是结合 UUID。但仅是结合 UUID 来加密也是件相对麻烦的事情,短时间内不会出,鉴于我们现在有 VMessAEAD 可用,也并不着急。若 VLESS 推出了结合 UUID 的加密方式,相当于重构了整个 VMess。
|
||||
|
||||
## UDP issues
|
||||
|
||||
https://github.com/XTLS/Xray-core/discussions/252
|
||||
|
||||
## 客户端开发指引
|
||||
|
||||
1. VLESS 协议本身还会有不兼容升级,但客户端配置文件参数基本上是只增不减的。iOS 客户端的协议实现则需紧跟升级。
|
||||
2. **视觉标准:UI 标识请统一用 VLESS**,而不是 VLess / Vless / vless,配置文件不受影响,代码内则顺其自然。
|
||||
3. `encryption` 应做成输入框而不是选择框,新配置的默认值应为 `none`,若用户置空则应代填 `none`。
|
||||
|
||||
## VLESS 分享链接标准
|
||||
|
||||
感谢 <img src="https://avatars2.githubusercontent.com/u/7822648?s=32" width="32px" height="32px" alt="a"/> [@DuckSoft](https://github.com/DuckSoft) 的提案!
|
||||
|
||||
详情请见 [VMessAEAD / VLESS 分享链接标准提案](https://github.com/XTLS/Xray-core/issues/91)
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
[下载并安装](./install) 了 Xray 之后,您需要对它进行一下配置。
|
||||
|
||||
为了演示,这里只介绍简单的配置方式.
|
||||
为了演示,这里只介绍简单的配置方式。更多的模板: [Xray-examples](https://github.com/XTLS/Xray-examples)
|
||||
|
||||
如需配置更复杂的功能,请参考更详细的 [配置文件](../config/) 中相关说明。
|
||||
|
||||
@ -96,4 +96,4 @@
|
||||
- 运行 `xray run -c /etc/xray/config.json`
|
||||
- 或使用 systemd 等工具将 Xray 作为服务在后台运行。
|
||||
|
||||
更多详细的说明可以参考 [配置文档](../config/) 和 [使用心得](../documents/)。
|
||||
更多详细的说明可以参考 [配置文档](../config/) 和 [小小白话文](../documents/level-0/)。
|
||||
|
@ -24,11 +24,11 @@ git checkout -b your-branch
|
||||
|
||||
4. 在新分支上做修改。
|
||||
|
||||
注:在修改时请注意遵循 [中文文案排版指北](https://github.com/sparanoid/chinese-copywriting-guidelines)
|
||||
注:推荐 [中文文案排版指北](https://github.com/sparanoid/chinese-copywriting-guidelines)
|
||||
|
||||
5. 修改完成后,请格式化您的更改。建议使用 Prettier
|
||||
5. 修改完成后,请使用 [Prettier](https://prettier.io/docs/en/install.html) 格式化您的更改。
|
||||
|
||||
注:存在格式问题或不遵循中文文案排版指北的 PR,将有可能被拒绝。
|
||||
注:存在格式问题的 PR,将有可能被拒绝。
|
||||
|
||||
6. 提交修改,并推送到您的仓库中
|
||||
|
||||
|
@ -30,14 +30,13 @@ Xray 提供两种验证方式:
|
||||
- 在 [Github Releases](https://github.com/xtls/Xray-core/releases) 下载适用于 Windows 平台的 ZIP 压缩包,解压后可得到可执行文件 `xray.exe`
|
||||
,然后[通过命令行带参数运行](./command) 即可
|
||||
- 通过 [Scoop](https://scoop.sh) 包管理器安装:Xray 已经被添加到 [Mochi](https://github.com/Qv2ray/mochi)。
|
||||
- 通过 [Chocolatey](https://chocolatey.org)
|
||||
包管理器安装:[Xray](https://chocolatey.org/packages/xray/1.3.1),感谢 [Markson](https://chocolatey.org/profiles/markson_ho)
|
||||
|
||||
## macOS 安装方式
|
||||
|
||||
- 在 [Github Releases](https://github.com/xtls/Xray-core/releases) 下载适用于 macOS 平台的 ZIP 压缩包,解压后可得到可执行文件 `xray`
|
||||
,然后[通过命令行带参数运行](./command.md) 即可
|
||||
- 通过 [Homebrew](https://brew.sh) 包管理器安装:`brew install xray`
|
||||
- [homebrew-xray](https://github.com/N4FA/homebrew-xray) 感谢[@N4FA](https://github.com/N4FA)
|
||||
|
||||
## Linux 安装方式
|
||||
|
||||
@ -51,7 +50,7 @@ Xray 提供两种验证方式:
|
||||
|
||||
- [Xray-script](https://github.com/kirin10000/Xray-script)
|
||||
- [ProxySU](https://github.com/proxysu/ProxySU)
|
||||
- [v2ray-agent](https://github.com/mack-a/v2ray-agent)
|
||||
- [v2ray-agent](https://github.com/reeceyng/v2ray-agent) 感谢[@mack-a](https://github.com/mack-a) [@Reece](https://github.com/reeceyng)
|
||||
- [Xray-yes](https://github.com/jiuqi9997/Xray-yes)
|
||||
- [Xray-onekey](https://github.com/wulabing/Xray_onekey)
|
||||
|
||||
@ -89,7 +88,6 @@ Linuxbrew 包管理器的使用方式与 Homebrew 一致:`brew install xray`
|
||||
## Docker 安装方式
|
||||
|
||||
- [teddysun/xray](https://hub.docker.com/r/teddysun/xray)
|
||||
- Xray-docker
|
||||
|
||||
### Docker image 的文件结构
|
||||
|
||||
@ -98,8 +96,27 @@ Linuxbrew 包管理器的使用方式与 Homebrew 一致:`brew install xray`
|
||||
- `/usr/local/share/xray/geoip.dat`:IP 数据文件
|
||||
- `/usr/local/share/xray/geosite.dat`:域名数据文件
|
||||
|
||||
## 更多更多...
|
||||
# 图形化客户端
|
||||
|
||||
您可以点击 [传送至众多大佬集结区的任意门](../links.md) 获取更多资源
|
||||
- OpenWrt
|
||||
- [PassWall](https://github.com/xiaorouji/openwrt-passwall)
|
||||
- [Hello World](https://github.com/jerrykuku/luci-app-vssr)
|
||||
- [ShadowSocksR Plus+](https://github.com/fw876/helloworld)
|
||||
- [luci-app-xray](https://github.com/yichya/luci-app-xray) ([openwrt-xray](https://github.com/yichya/openwrt-xray))
|
||||
- Windows
|
||||
- [v2rayN](https://github.com/2dust/v2rayN)
|
||||
- [Qv2ray](https://github.com/Qv2ray/Qv2ray) (该项目已冻结存档)
|
||||
- [Netch (NetFilter & TUN/TAP)](https://github.com/NetchX/Netch) (该项目已冻结存档)
|
||||
- Android
|
||||
- [v2rayNG](https://github.com/2dust/v2rayNG)
|
||||
- [Kitsunebi](https://github.com/rurirei/Kitsunebi/tree/release_xtls)
|
||||
- iOS / macOS(使用 ARM 芯片)
|
||||
- [Shadowrocket](https://apps.apple.com/app/shadowrocket/id932747118)
|
||||
- [Stash](https://apps.apple.com/app/stash/id1596063349)
|
||||
- macOS(X86 芯片 / ARM 芯片)
|
||||
- [Qv2ray](https://github.com/Qv2ray/Qv2ray) (该项目已冻结存档)
|
||||
- [V2RayXS](https://github.com/tzmax/V2RayXS)
|
||||
|
||||
## FAQ <Badge text="WIP" type="warning"/>
|
||||
# UUID 生成器
|
||||
|
||||
第三方的 UUID 生成器 [uuidgenerator.net](https://www.uuidgenerator.net)
|
||||
|
@ -50,8 +50,6 @@ footer: Licensed under CC-BY-SA 4.0 | Copyright 2020-Present Project X Community
|
||||
|
||||
> “配置兼容,整体更好”
|
||||
|
||||
- Xray-flutter 是一个优雅的跨平台图形界面工具. <Badge text="WIP" type="warning"/>
|
||||
|
||||
### 我们是谁?
|
||||
|
||||
> **It doesn't matter who we are. What matters is that we will keep riding and not look back.**
|
||||
@ -62,7 +60,7 @@ footer: Licensed under CC-BY-SA 4.0 | Copyright 2020-Present Project X Community
|
||||
|
||||
- 🖥️ 帮助开发和测试 Xray, 提交高质量的 Pull request.
|
||||
- 📩 在 [GitHub Issues](https://github.com/XTLS/Xray-core/issues) 或 [讨论区](https://github.com/XTLS/Xray-core/discussions)发起建设性或有意义的 issue 与 discussion.
|
||||
- 📝 写下您的使用心得并提交至 Xray 的 [文档网站](https://github.com/XTLS/XTLS.github.io).
|
||||
- 📝 写下您的使用心得并提交至 Xray 的 [文档网站](https://github.com/XTLS/Xray-docs-next).
|
||||
- 💬 在 Telegram 群帮助群友/灌水.
|
||||
- **...事实上,每一份对 Xray 的支持都会让 Xray 变得更强大**
|
||||
|
||||
@ -96,6 +94,4 @@ footer: Licensed under CC-BY-SA 4.0 | Copyright 2020-Present Project X Community
|
||||
|
||||
### Stargazers over time
|
||||
|
||||
> Project X 的 GitHub 主仓库 Xray-core 已获 2000 stars;Project X 群人数近 3000,频道订阅数 1000+
|
||||
|
||||
[](https://starchart.cc/XTLS/Xray-core)
|
||||
|
@ -1,46 +0,0 @@
|
||||
# VLESS 协议详解
|
||||
|
||||
> **VLESS 是原创的无状态的轻量传输协议, 也是 Xray 一切的开始**
|
||||
|
||||
## 协议详解 <Badge text="WIP" type="warning"/>
|
||||
|
||||
## 配置模板
|
||||
|
||||
[Xray-examples](https://github.com/xtls/Xray-examples) 有完整的 VLESS 配置示例供参考。(但目前不能保证其它协议的配置示例质量)
|
||||
|
||||
## 客户端开发指引
|
||||
|
||||
1. VLESS 协议本身还会有不兼容升级,但客户端配置文件参数基本上是只增不减的。**所以如果你开发了用 core 的客户端,现在就可以适配。** iOS 客户端的协议实现则需紧跟升级。
|
||||
2. **视觉标准:UI 标识请统一用 VLESS**,而不是 VLess / Vless / vless,配置文件不受影响,代码内则顺其自然。
|
||||
3. `encryption` 应做成输入框而不是选择框,新配置的默认值应为 `none`,若用户置空则应代填 `none`。
|
||||
|
||||
**以下为已支持图形化配置 VLESS 的部分客户端列表,推荐使用:**(排名不分先后顺序)
|
||||
|
||||
- OpenWrt
|
||||
- [PassWall](https://github.com/xiaorouji/openwrt-passwall)
|
||||
- [Hello World](https://github.com/jerrykuku/luci-app-vssr)
|
||||
- [ShadowSocksR Plus+](https://github.com/fw876/helloworld)
|
||||
- Windows
|
||||
- [v2rayN](https://github.com/2dust/v2rayN)
|
||||
- [Qv2ray](https://github.com/Qv2ray/Qv2ray)
|
||||
- Android
|
||||
- [v2rayNG](https://github.com/2dust/v2rayNG)
|
||||
- [Kitsunebi](https://github.com/rurirei/Kitsunebi/tree/release_xtls)
|
||||
- iOS / Mac
|
||||
- [Shadowrocket](https://apps.apple.com/app/shadowrocket/id932747118)
|
||||
|
||||
## Fallbacks
|
||||
|
||||
Fallbacks 是 Xray 独创的新型协议回落模式解析, 可有效防止主动探测, 自由配置常用端口多服务共享.
|
||||
|
||||
目前 Xray 中的 VLESS 和 trojan 协议支持 Fallbacks.
|
||||
|
||||
- [Fallbacks 配置说明](../fallback/#fallbacks-配置)
|
||||
- [Fallbacks 功能简析]()
|
||||
- [Fallbacks 设计理论](../fallback/#fallbacks-设计理论)
|
||||
|
||||
## VLESS 分享链接标准
|
||||
|
||||
感谢 <img src="https://avatars2.githubusercontent.com/u/7822648?s=32" width="32px" height="32px" alt="a"/> [@DuckSoft](https://github.com/DuckSoft) 的提案!
|
||||
|
||||
目前为初步提案, 详情请见 [VMessAEAD / VLESS 分享链接标准提案](https://github.com/XTLS/Xray-core/issues/91)
|
@ -7,11 +7,9 @@
|
||||
project X 的代码被托管在 github 上:
|
||||
|
||||
- xray 核心 [xray-core](https://github.com/XTLS/Xray-core)
|
||||
- xray-flutter [xray-flutter](https://github.com/XTLS/Xray-flutter)
|
||||
- 安装脚本 [Xray-install](https://github.com/XTLS/Xray-install)
|
||||
- 数据文件 [Xray-rules-dat](https://github.com/XTLS/Xray-rules-dat)
|
||||
- 配置模板 [Xray-examples](https://github.com/XTLS/Xray-examples)
|
||||
- xray 文档 [XTLS.github.io](https://github.com/XTLS/XTLS.github.io)
|
||||
- xray 文档 [Xray-docs-next](https://github.com/XTLS/Xray-docs-next)
|
||||
|
||||
您可以使用 [Git](https://git-scm.com/) 来获取代码.
|
||||
|
||||
@ -29,9 +27,8 @@ project X 的代码被托管在 github 上:
|
||||
<Badge text="WIP" type="warning"/>
|
||||
|
||||
- 建立尝鲜版本和稳定版本两个发布通道
|
||||
- 临时版本, 主要用于特定情况的测试(比如从分支 build 的), 于 TG 群内/issue 回复等渠道 发布特定版本
|
||||
- 尝鲜版本可以为 daily build , 用于尝鲜和获得即时反馈和再改进.
|
||||
- 稳定版本为定时更新(比如周更), 合并稳定的修改并发布.
|
||||
- 尝鲜版本,可以为 daily build,主要用于特定情况的测试,尝鲜和获得即时反馈和再改进。
|
||||
- 稳定版本,为定时更新(比如月更),合并稳定的修改并发布。
|
||||
|
||||
### 引用其它项目
|
||||
|
||||
@ -51,9 +48,10 @@ project X 的代码被托管在 github 上:
|
||||
|
||||
- Golang
|
||||
- 请参考 [Effective Go](https://golang.org/doc/effective_go.html);
|
||||
- 每一次 push 之前,请运行:`go fmt ./...` 和 `go fmt -s -l -e -w $(find . -type f -name "*.go" ! -name "*.pb.go")`;
|
||||
- 每一次 push 之前,请确保测试通过:`go test ./...`;
|
||||
- 提交 pull request 之前,请确保新增代码有超过 70% 的代码覆盖率(code coverage);
|
||||
- 每一次 push 之前,请运行:`go generate core/format.go`;
|
||||
- 如果需要修改 protobuf,例如增加新配置项,请运行:`go generate core/proto.go`;
|
||||
- 提交 pull request 之前,建议测试通过:`go test ./...`;
|
||||
- 提交 pull request 之前,建议新增代码有超过 70% 的代码覆盖率(code coverage);
|
||||
- 其它
|
||||
- 请注意代码的可读性。
|
||||
|
||||
@ -66,7 +64,7 @@ project X 的代码被托管在 github 上:
|
||||
2. 克隆自己的 Xray 仓库到本地:`git clone https://github.com/your/Xray-core.git`;
|
||||
3. 基于 `main` 分支创建新的分支;
|
||||
4. 在自行创建的分支上作修改并提交修改(commit);
|
||||
5. 在推送(push)修改完成的分支到自己的仓库前,先切换到 `main` 分支,运行 `git pull https://github.com/v2fly/Xray-core.git` 拉取最新的远端代码;
|
||||
5. 在推送(push)修改完成的分支到自己的仓库前,先切换到 `main` 分支,运行 `git pull https://github.com/xray/xray-core.git` 拉取最新的远端代码;
|
||||
6. 如果上一步拉取得到了新的远端代码,则切换到之前自己创建的分支,运行 `git rebase master` 执行分支合并操作。如遇到文件冲突,则需要解决冲突;
|
||||
7. 上一步处理完毕后,就可以把自己创建的分支推送到自己的仓库:`git push -u origin your-branch`
|
||||
8. 最后,把自己仓库的新推送的分支往 `xtls/Xray-core` 的 `main` 分支发 PR 即可;
|
||||
|
@ -2,4 +2,90 @@
|
||||
|
||||
VLESS 是一个无状态的轻量传输协议,可以作为 Xray 客户端和服务器之间的桥梁。
|
||||
|
||||
<Badge text="WIP" type="warning"/>
|
||||
## Request & Response
|
||||
|
||||
|1 字节|16 字节|1 字节|M 字节|1 字节|2 字节|1 字节|S 字节|X 字节|
|
||||
|-|-|-|-|-|-|-|-|-|
|
||||
|协议版本|等价 UUID|附加信息长度 M|附加信息 ProtoBuf|指令|端口|地址类型|地址|请求数据|
|
||||
|
||||
|1 字节|1 字节|N 字节|Y 字节|
|
||||
|-|-|-|-|
|
||||
|协议版本,与请求的一致|附加信息长度 N|附加信息 ProtoBuf|响应数据|
|
||||
|
||||
VLESS 早在第二个测试版 ALPHA 2 时就已经是上述结构了(BETA 是第五个测试版):
|
||||
|
||||
> “响应认证”被替换为“协议版本”并移至最前,使 VLESS 可以升级换代,同时消除了生成伪随机数的开销。混淆相关结构被替换为附加信息(ProtoBuf)并前移,赋予协议本身可扩展性,相关开销也极小([gogo/protobuf](https://github.com/gogo/protobuf)),若无附加信息则无相关开销。
|
||||
|
||||
我一直觉得“响应认证”不是必要的,ALPHA 时为了提升生成随机数的性能,还用 math/rand 替换 crypto/rand,而现在都不需要了。
|
||||
|
||||
“协议版本”不仅能起到“响应认证”的作用,还赋予了 VLESS 无痛升级协议结构的能力,带来无限的可能性。
|
||||
“协议版本”在测试版本中均为 0,正式版本中为 1,以后若有不兼容的协议结构变更则应升级版本。
|
||||
|
||||
VLESS 服务端的设计是 switch version,即同时支持所有 VLESS 版本。若需要升级协议版本(可能到不了这一步),推荐的做法是服务端提前一个月支持,一个月后再改客户端。VMess 请求也有协议版本,但它的认证信息在外面,指令部分则高度耦合且有固定加密,导致里面的协议版本毫无意义,服务端也没有进行判断,响应则没有协议版本。Trojan 的协议结构中没有协议版本。
|
||||
|
||||
接下来是 UUID,我本来觉得 16 字节有点长,曾经考虑过缩短它,但后来看到 Trojan 用了 56 个可打印字符(56 字节),就彻底打消了这个念头。服务端每次都要验证 UUID,所以性能也很重要:VLESS 的 Validator 经历了多次重构/升级,相较于 VMess,它十分简洁且耗资源很少,可以同时支持非常多的用户,性能也十分强悍,验证速度极快(sync.Map)。API 动态增删用户则更高效顺滑。
|
||||
https://github.com/XTLS/Xray-core/issues/158
|
||||
|
||||
引入 ProtoBuf 是一个创举,等下会详细讲解。“指令”到“地址”的结构目前与 VMess 完全相同,同样支持 Mux。
|
||||
|
||||
总体上,ALPHA 2 到 BETA 主要是:结构进化、清理整合、性能提升、更加完善。这些都是一点一滴的,详见 [VLESS Changes](https://github.com/rprx/v2ray-vless/releases)。
|
||||
|
||||
## ProtoBuf
|
||||
|
||||
似乎只有 VLESS 可选内嵌 ProtoBuf,它是一种数据交换格式,信息被紧密编码成二进制,TLV 结构(Tag Length Value)。
|
||||
|
||||
起因是我看到一篇文章称 SS 有一些缺点,如没有设计错误回报机制,客户端没办法根据不同的错误采取进一步的动作。
|
||||
(但我并不认同所有错误都要回报,不然防不了主动探测。下一个测试版中,服务器可以返回一串自定义信息。)
|
||||
于是想到一个可扩展的结构是很重要的,未来它也可以承载如动态端口指令。不止响应,请求也需要类似的结构。
|
||||
本来打算自己设计 TLV,接着发觉 ProtoBuf 就是此结构、现成的轮子,完全适合用来做这件事,各语言支持等也不错。
|
||||
|
||||
目前“附加信息”只有 Scheduler 和 SchedulerV,它们是 MessName 和 MessSeed 的替代者,**当你不需要它们时,“附加信息长度”为 0,也就不会有 ProtoBuf 序列化/反序列化的开销**。其实我更愿意称这个过程为“拼接”,因为 pb 实际原理上也只是这么做而已,相关开销极小。拼接后的 bytes 十分紧凑,和 ALPHA 的方案相差无几,有兴趣的可以分别输出并对比。
|
||||
|
||||
为了指示对附加信息(Addons,也可以理解成插件,以后可以有很多个插件)的不同支持程度,下个测试版会在“附加信息长度”前新增“附加信息版本”。256 - 1 = 255 字节是够用且合理的(65535 就太多了,还可能有人恶意填充),现有的只用了十分之一,以后也不会同时有那么多附加信息,且大多数情况下是完全没有附加信息的。真不够用的话,可以升级 VLESS 版本。
|
||||
|
||||
为了减少逻辑判断等开销,暂定 Addons 不使用多级结构。一个月前出现过“可变协议格式”的想法,pb 是可以做到打乱顺序,但没必要,因为现代加密的设计不会让旁观者看出两次传输的头部相同。
|
||||
|
||||
下面介绍 Schedulers 和 Encryption 的构想,**它们都是可选的**,一个应对流量时序特征问题,一个应对密码学上的问题。
|
||||
|
||||
## ~~Schedulers~~ Flow
|
||||
|
||||
~~中文名暂称:流量调度器~~(2020-09-03 更新:中文名确定为“流控”),指令由 ProtoBuf 承载,控制的是数据部分。
|
||||
|
||||
我之前发现,VMess 原有的 shake “元数据混淆”在 TLS 上完全不会带来有意义的改变,只会降低性能,所以 VLESS 弃用了它。并且,“混淆”这个表述容易被误解成伪装,也弃用了。顺便一提,我一直是不看好伪装的:做不到完全一样,那不就是强特征吗?做得到完全一样,那为什么不直接用伪装目标?我一开始用的是 SSR,后来发现它只是表面伪装骗运营商,就再也没用过了。
|
||||
|
||||
那么,“流量调度器”要解决什么问题?它影响的是宏观流量时序特征,而不是微观特征,后者是加密要解决的事情。流量时序特征可以是协议带来的,比如 Socks5 over TLS 时的 Socks5 握手 ,TLS 上不同的这种特征对于监测者来说就是不同的协议,此时无限 Schedulers 就相当于无限协议(重新分配每次发送的数据量大小等)。流量时序特征也可以是行为带来的,比如访问 Google 首页时加载了多少文件、顺序、每个文件的大小,多套一层加密并不能有效掩盖这些信息。
|
||||
|
||||
Schedulers 没必要像下面的 Encryption 一样整个套在外面,因为头部的一丁点数据相对于后面的数据量来说太微不足道了。
|
||||
|
||||
BETA 2 预计推出两个初级的 Scheduler:Zstd 压缩、数据量动态扩充。进阶操作才是从宏观层面来控制、分配,暂时咕咕。
|
||||
|
||||
## Encryption
|
||||
|
||||
与 VMess 的高度耦合不同,VLESS 的服务端、客户端不久后可以提前约定好加密方式,仅在外面套一层加密。这有点类似于使用 TLS,不影响承载的任何数据,也可以理解成底层就是从 TLS 换成预设约定加密。相对于高度耦合,这种方式更合理且灵活:一种加密方式出了安全性问题,直接扔掉并换用其它的就行了,十分方便。VLESS 服务端还会允许不同的加密方式共存。
|
||||
|
||||
对比 VMess,VLESS 相当于把 security 换成 encryption,把 disableInsecureEncryption 换成 decryption,就解决了所有问题。目前 encryption 和 decryption 只接受 \"none\" 且不能留空(即使以后有连接安全性检查),详见 [VLESS 配置文档](https://github.com/rprx/v2fly-github-io/blob/master/docs/config/protocols/vless.md)。encryption 并不需要往外移一级,一是因为无法复用很多代码,二是因为会影响控制粒度,看未来的应用就明白了。
|
||||
|
||||
加密支持两类形式,一类是加密完全独立,需要额外密码,适合私用,另一类是结合已有的 UUID 来加密,适合公用。
|
||||
(若用第一类加密形式,且密码是以某种形式公开的,比如多人共用,那么中间人攻击就不远了)
|
||||
重新设计的动态端口可能会随加密同时推出,指令由 ProtoBuf 承载,具体实现和 VMess 的动态端口也会有很多不同。
|
||||
|
||||
套现成加密是件很简单的事情,也就多一层 writer & reader。BETA 3 预计支持 SS 的 aes-128-gcm 和 chacha20-ietf-poly1305:
|
||||
客户端的 encryption 可以填 “auto: ss_aes-128-gcm_0_123456, ss_chacha20-ietf-poly1305_0_987654”,auto 会选择最适合当前机器的,0 代表测试版,最后的是密码。服务端的 decryption 也是类似填法,收到请求时会逐一尝试解密。
|
||||
|
||||
并不是所有组合都需逐一尝试:VMess 的加密分为三段,第一段是认证信息,结合了 UUID、alterId、时间因素,第二段是指令部分,以固定算法加密,指令中含有数据部分使用的加密算法,第三段才是重要的数据部分。可以看出,VMess 的加解密方式实际上是多对一(服务端适配),而不仅是结合 UUID。但仅是结合 UUID 来加密也是件相对麻烦的事情,短时间内不会出,鉴于我们现在有 VMessAEAD 可用,也并不着急。若 VLESS 推出了结合 UUID 的加密方式,相当于重构了整个 VMess。
|
||||
|
||||
## UDP issues
|
||||
|
||||
https://github.com/XTLS/Xray-core/discussions/252
|
||||
|
||||
## 客户端开发指引
|
||||
|
||||
1. VLESS 协议本身还会有不兼容升级,但客户端配置文件参数基本上是只增不减的。iOS 客户端的协议实现则需紧跟升级。
|
||||
2. **视觉标准:UI 标识请统一用 VLESS**,而不是 VLess / Vless / vless,配置文件不受影响,代码内则顺其自然。
|
||||
3. `encryption` 应做成输入框而不是选择框,新配置的默认值应为 `none`,若用户置空则应代填 `none`。
|
||||
|
||||
## VLESS 分享链接标准
|
||||
|
||||
感谢 <img src="https://avatars2.githubusercontent.com/u/7822648?s=32" width="32px" height="32px" alt="a"/> [@DuckSoft](https://github.com/DuckSoft) 的提案!
|
||||
|
||||
详情请见 [VMessAEAD / VLESS 分享链接标准提案](https://github.com/XTLS/Xray-core/issues/91)
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
[下载并安装](./install) 了 Xray 之后,您需要对它进行一下配置。
|
||||
|
||||
为了演示,这里只介绍简单的配置方式.
|
||||
为了演示,这里只介绍简单的配置方式。更多的模板: [Xray-examples](https://github.com/XTLS/Xray-examples)
|
||||
|
||||
如需配置更复杂的功能,请参考更详细的 [配置文件](../config/) 中相关说明。
|
||||
|
||||
@ -96,4 +96,4 @@
|
||||
- 运行 `xray run -c /etc/xray/config.json`
|
||||
- 或使用 systemd 等工具将 Xray 作为服务在后台运行。
|
||||
|
||||
更多详细的说明可以参考 [配置文档](../config/) 和 [使用心得](../documents/)。
|
||||
更多详细的说明可以参考 [配置文档](../config/) 和 [小小白话文](../documents/level-0/)。
|
||||
|
@ -24,11 +24,11 @@ git checkout -b your-branch
|
||||
|
||||
4. 在新分支上做修改。
|
||||
|
||||
注:在修改时请注意遵循 [中文文案排版指北](https://github.com/sparanoid/chinese-copywriting-guidelines)
|
||||
注:推荐 [中文文案排版指北](https://github.com/sparanoid/chinese-copywriting-guidelines)
|
||||
|
||||
5. 修改完成后,请格式化您的更改。建议使用 Prettier
|
||||
5. 修改完成后,请使用 [Prettier](https://prettier.io/docs/en/install.html) 格式化您的更改。
|
||||
|
||||
注:存在格式问题或不遵循中文文案排版指北的 PR,将有可能被拒绝。
|
||||
注:存在格式问题的 PR,将有可能被拒绝。
|
||||
|
||||
6. 提交修改,并推送到您的仓库中
|
||||
|
||||
|
@ -30,8 +30,6 @@ Xray 提供两种验证方式:
|
||||
- 在 [Github Releases](https://github.com/xtls/Xray-core/releases) 下载适用于 Windows 平台的 ZIP 压缩包,解压后可得到可执行文件 `xray.exe`
|
||||
,然后[通过命令行带参数运行](./command) 即可
|
||||
- 通过 [Scoop](https://scoop.sh) 包管理器安装:Xray 已经被添加到 [Mochi](https://github.com/Qv2ray/mochi)。
|
||||
- 通过 [Chocolatey](https://chocolatey.org)
|
||||
包管理器安装:[Xray](https://chocolatey.org/packages/xray/1.3.1),感谢 [Markson](https://chocolatey.org/profiles/markson_ho)
|
||||
|
||||
## macOS 安装方式
|
||||
|
||||
@ -51,7 +49,7 @@ Xray 提供两种验证方式:
|
||||
|
||||
- [Xray-script](https://github.com/kirin10000/Xray-script)
|
||||
- [ProxySU](https://github.com/proxysu/ProxySU)
|
||||
- [Xray-agent](https://github.com/mack-a/Xray-agent)
|
||||
- [Xray-agent](https://github.com/reeceyng/v2ray-agent) 感谢[@mack-a](https://github.com/mack-a) [@Reece](https://github.com/reeceyng)
|
||||
|
||||
* Magisk
|
||||
- [Xray4Magisk](https://github.com/CerteKim/Xray4Magisk)
|
||||
@ -77,7 +75,6 @@ Linuxbrew 包管理器的使用方式与 Homebrew 一致:`brew install xray`
|
||||
## Docker 安装方式
|
||||
|
||||
- [teddysun/xray](https://hub.docker.com/r/teddysun/xray)
|
||||
- Xray-docker
|
||||
|
||||
### Docker image 的文件结构
|
||||
|
||||
@ -86,8 +83,27 @@ Linuxbrew 包管理器的使用方式与 Homebrew 一致:`brew install xray`
|
||||
- `/usr/local/share/xray/geoip.dat`:IP 数据文件
|
||||
- `/usr/local/share/xray/geosite.dat`:域名数据文件
|
||||
|
||||
## 更多更多...
|
||||
# 图形化客户端
|
||||
|
||||
您可以点击 [传送至众多大佬集结区的任意门](../links.md) 获取更多资源
|
||||
- OpenWrt
|
||||
- [PassWall](https://github.com/xiaorouji/openwrt-passwall)
|
||||
- [Hello World](https://github.com/jerrykuku/luci-app-vssr)
|
||||
- [ShadowSocksR Plus+](https://github.com/fw876/helloworld)
|
||||
- [luci-app-xray](https://github.com/yichya/luci-app-xray) ([openwrt-xray](https://github.com/yichya/openwrt-xray))
|
||||
- Windows
|
||||
- [v2rayN](https://github.com/2dust/v2rayN)
|
||||
- [Qv2ray](https://github.com/Qv2ray/Qv2ray) (该项目已冻结存档)
|
||||
- [Netch (NetFilter & TUN/TAP)](https://github.com/NetchX/Netch) (该项目已冻结存档)
|
||||
- Android
|
||||
- [v2rayNG](https://github.com/2dust/v2rayNG)
|
||||
- [Kitsunebi](https://github.com/rurirei/Kitsunebi/tree/release_xtls)
|
||||
- iOS / macOS(使用 ARM 芯片)
|
||||
- [Shadowrocket](https://apps.apple.com/app/shadowrocket/id932747118)
|
||||
- [Stash](https://apps.apple.com/app/stash/id1596063349)
|
||||
- macOS(X86 芯片 / ARM 芯片)
|
||||
- [Qv2ray](https://github.com/Qv2ray/Qv2ray) (该项目已冻结存档)
|
||||
- [V2RayXS](https://github.com/tzmax/V2RayXS)
|
||||
|
||||
## FAQ <Badge text="WIP" type="warning"/>
|
||||
# UUID 生成器
|
||||
|
||||
第三方的 UUID 生成器 [uuidgenerator.net](https://www.uuidgenerator.net)
|
||||
|
@ -1,45 +0,0 @@
|
||||
# 链接
|
||||
|
||||
## 安装脚本
|
||||
|
||||
- Linux Script
|
||||
- [Xray-install](https://github.com/XTLS/Xray-install)
|
||||
- [Xray-script](https://github.com/kirin10000/Xray-script) 感谢[@kirin](https://github.com/kirin10000)
|
||||
- Docker
|
||||
- [teddysun/xray](https://hub.docker.com/r/teddysun/xray) 感谢[@秋水逸冰](https://hub.docker.com/u/teddysun)
|
||||
- Xray-docker <Badge text="WIP" type="warning"/>
|
||||
- One Click
|
||||
- [ProxySU](https://github.com/proxysu/ProxySU) 感谢[@ProxySu](https://github.com/proxysu)
|
||||
- [Xray-agent](https://github.com/mack-a/Xray-agent) 感谢[@mack-a](https://github.com/mack-a)
|
||||
- Magisk
|
||||
- [Xray4Magisk](https://github.com/CerteKim/Xray4Magisk) 感谢[@子曦曦](https://github.com/CerteKim)
|
||||
- [Xray_For_Magisk](https://github.com/E7KMbb/Xray_For_Magisk) 感谢[@E7KMbb](https://github.com/E7KMbb)
|
||||
- Homebrew
|
||||
- [Repository 0](https://github.com/N4FA/homebrew-xray) 感谢[@N4FA](https://github.com/N4FA)
|
||||
- [Repository 1](https://github.com/xiruizhao/homebrew-xray) 感谢[@Xirui Zhao](https://github.com/xiruizhao)
|
||||
|
||||
## 配置模板
|
||||
|
||||
所有的模板请传送至: [Xray-examples](https://github.com/XTLS/Xray-examples)
|
||||
|
||||
包含了各种用法示范的**终极配置**: [VLESS-TCP-XTLS-WHATEVER](https://github.com/XTLS/Xray-examples/tree/main/VLESS-TCP-XTLS-WHATEVER)
|
||||
|
||||
## 图形化客户端
|
||||
|
||||
- OpenWrt
|
||||
- [PassWall](https://github.com/xiaorouji/openwrt-passwall)
|
||||
- [Hello World](https://github.com/jerrykuku/luci-app-vssr)
|
||||
- [ShadowSocksR Plus+](https://github.com/fw876/helloworld)
|
||||
- [luci-app-xray](https://github.com/yichya/luci-app-xray) ([openwrt-xray](https://github.com/yichya/openwrt-xray))
|
||||
- Windows
|
||||
- [v2rayN](https://github.com/2dust/v2rayN)
|
||||
- [Qv2ray](https://github.com/Qv2ray/Qv2ray)
|
||||
- Android
|
||||
- [v2rayNG](https://github.com/2dust/v2rayNG)
|
||||
- [Kitsunebi](https://github.com/rurirei/Kitsunebi/tree/release_xtls)
|
||||
- iOS / Mac
|
||||
- [Shadowrocket](https://apps.apple.com/app/shadowrocket/id932747118)
|
||||
|
||||
## UUID 生成器
|
||||
|
||||
第三方的 UUID 生成器 [uuidgenerator.net](https://www.uuidgenerator.net)
|
@ -1,52 +0,0 @@
|
||||
# 链接
|
||||
|
||||
## 安装脚本
|
||||
|
||||
- Linux Script
|
||||
- [Xray-install](https://github.com/XTLS/Xray-install)
|
||||
- [Xray-script](https://github.com/kirin10000/Xray-script) 感谢[@kirin](https://github.com/kirin10000)
|
||||
- Docker
|
||||
- [teddysun/xray](https://hub.docker.com/r/teddysun/xray) 感谢[@秋水逸冰](https://hub.docker.com/u/teddysun)
|
||||
- Xray-docker <Badge text="WIP" type="warning"/>
|
||||
- One Click
|
||||
- [ProxySU](https://github.com/proxysu/ProxySU) 感谢[@ProxySu](https://github.com/proxysu)
|
||||
- [v2ray-agent](https://github.com/mack-a/v2ray-agent) 感谢[@mack-a](https://github.com/mack-a)
|
||||
- [Xray-yes](https://github.com/jiuqi9997/Xray-yes) 感谢[@玖柒 Min](https://github.com/jiuqi9997)
|
||||
- [Xray-onekey](https://github.com/wulabing/Xray_onekey) 感谢[@wulabing](https://github.com/wulabing)
|
||||
- Magisk
|
||||
- [Xray4Magisk](https://github.com/CerteKim/Xray4Magisk) 感谢[@子曦曦](https://github.com/CerteKim)
|
||||
- [Xray_For_Magisk](https://github.com/E7KMbb/Xray_For_Magisk) 感谢[@E7KMbb](https://github.com/E7KMbb)
|
||||
- Homebrew
|
||||
- [Repository 0](https://github.com/N4FA/homebrew-xray) 感谢[@N4FA](https://github.com/N4FA)
|
||||
- [Repository 1](https://github.com/xiruizhao/homebrew-xray) 感谢[@Xirui Zhao](https://github.com/xiruizhao)
|
||||
|
||||
## 配置模板
|
||||
|
||||
所有的模板请传送至: [Xray-examples](https://github.com/XTLS/Xray-examples)
|
||||
|
||||
包含了各种用法示范的**终极配置**: [VLESS-TCP-XTLS-WHATEVER](https://github.com/XTLS/Xray-examples/tree/main/VLESS-TCP-XTLS-WHATEVER)
|
||||
|
||||
## 图形化客户端
|
||||
|
||||
- OpenWrt
|
||||
- [PassWall](https://github.com/xiaorouji/openwrt-passwall)
|
||||
- [Hello World](https://github.com/jerrykuku/luci-app-vssr)
|
||||
- [ShadowSocksR Plus+](https://github.com/fw876/helloworld)
|
||||
- [luci-app-xray](https://github.com/yichya/luci-app-xray) ([openwrt-xray](https://github.com/yichya/openwrt-xray))
|
||||
- Windows
|
||||
- [v2rayN](https://github.com/2dust/v2rayN)
|
||||
- [Qv2ray](https://github.com/Qv2ray/Qv2ray) (该项目已冻结存档)
|
||||
- [Netch (NetFilter & TUN/TAP)](https://github.com/NetchX/Netch) (该项目已冻结存档)
|
||||
- Android
|
||||
- [v2rayNG](https://github.com/2dust/v2rayNG)
|
||||
- [Kitsunebi](https://github.com/rurirei/Kitsunebi/tree/release_xtls)
|
||||
- iOS / macOS(使用 M1 芯片)
|
||||
- [Shadowrocket](https://apps.apple.com/app/shadowrocket/id932747118)
|
||||
- [Stash](https://apps.apple.com/app/stash/id1596063349)
|
||||
- macOS(Intel 芯片 / M1 芯片)
|
||||
- [Qv2ray](https://github.com/Qv2ray/Qv2ray) (该项目已冻结存档)
|
||||
- [V2RayXS](https://github.com/tzmax/V2RayXS)
|
||||
|
||||
## UUID 生成器
|
||||
|
||||
第三方的 UUID 生成器 [uuidgenerator.net](https://www.uuidgenerator.net)
|
Loading…
x
Reference in New Issue
Block a user