目录
初稿,最近会继续完善
万万没想到Xray横空出世,并且项目发展高歌猛进,风光无限。鉴于此,有必要为学不动的网友科普一下Xray项目。
本Xray教程重点介绍Xray项目由来、和V2ray的关系,至于服务端部署和客户端使用,目前基本与V2ray一致,因此仅做简要介绍。
Xray介绍
一个Debian包维护者发现XTLS库的LICENSE不是BSD许可,提了一个issue希望作者 @rprx 能修改方便打包,详见 https://github.com/XTLS/Go/issues/9。由这个issue引发了广泛讨论,rprx认为目前许可不是问题,也有不少人认为协议是立场的体现,各执一词。
最终V2ray(V2fly社区)维护者经过投票确认XTLS不符合V2ray的MIT协议,并在V2ray-core 4.33.0版本移除了XTLS。rprx和其拥护者行动起来,很快就创建了Project X项目和Xray子项目(Xray取名来自XTLS和V2ray的结合),并发布了Xray-core的多个版本。这便是Xray的大致由来。
XTLS和Xray离不开作者 @rprx 的辛勤付出,因此也简要介绍一下@rprx :
1. @rprx 是VLESS协议的设计者,在介绍VLESS协议时写下了 性能至上、可扩展性空前,目标是全场景终极协议 的宏壮愿景;
2. @rprx 是 XTLS 的作者,在 XTLS库 中写下了 “THE FUTURE” 的霸气描述。将内外两条TLS连接结合,rprx可能不是第一个有这想法的人,但却是第一个将其实现、并成熟应用到实际中的作者。从使用表现上看,XTLS无愧于rprx对其的评价:划时代的革命性概念与技术:XTLS,以及社区给出的“黑科技”称谓;
3. @rprx 是Project X和Xray项目的创始人。由于LICENSE理念之争,rprx创建了对标Project V和V2ray-core的Project X和Xray-core项目,广受欢迎。
Xray-Core自上个月创立以来,短短一个月已经发布了七个版本,足见维护者的诚意。Xray-Core目前发布的各个版本主要介绍如下:
1. Xray-core 1.0.0版本:项目创建,提供完整的VLESS和XTLS支持,功能上是V2ray-core的超集。主要变动是将v2ray和v2ctl可执行文件合并为xray,性能全面增强;
2. Xray-core 1.1.0和1.1.1版本:测试过渡版本,未提供详细发行说明;
3. Xray-core 1.1.2版本:引入了Linux Kernel Splice技术,适用于安卓、路由器等Linux环境。Splice技术减少了数据拷贝次数和内存占用,拥有更强的性能。需要说明的是,只适用于类Linux环境的客户端出栈,服务端入栈仍然是direct;
4. Xray-core 1.1.3版本:重构了透明代理的 REDIRECT 模式,使之同时支持 IPv4 和 IPv6,解决了V2ray和trojan遗留的问题;
5. Xray-core 1.1.4版本:优化内存占用,TLS更多选项配置,使服务端伪装站的TLS设置在SSL Labs能达到A+评分;
6. Xray-core 1.1.5版本:测试过渡版本,支持YAML配置文件、OCSP Stapling等功能,官方安装脚本大更新;
7. Xray-core 1.2.0版本:SS、trojan协议完美支持Fullcone,向游戏使用迈出了重要一步。
8.Xray-core 1.2.3版本:
- 对 SS 协议的支持又变强了, 支持单端口多用户!
- 对 trojan 协议的支持也又变强了, trojan 的回落也解锁 SNI 分流的新姿势啦~!
- (VLESS: 嘤嘤嘤)
- UDP 奇奇怪怪的 BUG 被干掉了, 一个字, “稳定”.
- 嗅探可以排除你不想嗅探的域名, 可以开启一些新玩法.
- 向发现问题->开issue->自行测试->自行分析->自行找到问题->自行解决->然后给上下游提交PR的大佬 @Bohan Yang 致敬!
- 其他美味小樱桃, 惯例更新品尝就对啦.
更多Xray-core新特性请参考官方说明:https://xtls.github.io/about/new/,或者官方库发行说明:https://github.com/XTLS/Xray-core/releases
Xray和V2ray的区别
在说明Xray和V2ray区别之前,先说一下三个相近但不同的概念:
从上面可以看到,先有V2ray(Project V),然后是V2fly,最后才出来Xray(Project X)。其中V2fly是V2ray的社区,可以认为两者是同一个组织。
详细一点说,Xray和V2ray区别如下:
- Xray是V2ray的一个分支(Fork)。Xray项目基于V2ray而来,其支持并且兼容V2ray的配置;
- Xray是V2ray的超集。虽然最新版V2ray删除了XTLS,但仍保留VLESS协议。Xray提供完整的VLESS和XTLS支持,目前是V2ray的超集,但后续Xray可能会有会有自己的发展方向;
- 如果使用XTLS,强烈推荐使用Xray,或者安装V2ray-Core 4.29.0 ~ 4.32.1版本;不使用XTLS的情况下,使用V2ray和Xray均可。
Xray安装和使用教程
有手动配置能力(小白就去最下边的一键安装脚本)
#准备工作
1、VPS 一台,重置好主流的操作系统
2、域名一个,解析到该VPS。(域名申请证书,lnmp自带)
3、自行开启 BBR 加速或者锐速(本站自己找)
4;需要安装Nginx,修改 Nginx 配置文件,我基本都是采用lnmp的,这个网站找
自行部署Xray服务端需要你有基本linux技巧,能使用vim/nano等编辑器。官方提供了大多数Linux系统的一键脚本,可以直接使用:
官方一键
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install -u root
UUID 随机生成代码
cat /proc/sys/kernel/random/uuid # 粘贴到VPS运行即可生成 UUID
安装完毕以后,在VPS目录 /usr/local/etc/xray 找到 config,json 文件,贴入下面的配置文件
官方脚本安装的配置文件内容为空,可参考 Xray-examples 中提供的模板编辑配置文件。例如使用VLESS+TCP+XTLS的配置文件为:
{
"log": {
"loglevel": "warning"
},
"inbounds": [
{
"listen": "0.0.0.0",
"port": 443, //此处为程序监听端口,可随意设置,但是需要保证和Nginx设置的端口号相同
"protocol": "vless",
"settings": {
"clients": [
{
"id": "5272bc0d-9852-4af7-b2f0-979b1faf2973", //此处为你的UUID
"level": 0,
"email": "vjsun.vrrmr@gmail.com",
"flow":"xtls-rprx-direct"
}
],
"decryption": "none",
"fallbacks": [
{
"dest": 33222 //默认回落端口
},
{
"alpn": "h2",
"dest": 33223 //https回落端口
}
]
},
"streamSettings": {
"network": "tcp",
"security": "xtls",
"xtlsSettings": {
"serverName": "bt.tvxx.net", //你的域名
"alpn": [
"h2",
"http/1.1"
],
"certificates": [
{
"certificateFile": " "/usr/local/[nginx](https://www.vjsun.com/tag/nginx/ "查看与 nginx 相关的文章")/conf/ssl/bt.tvxx.net/fullchain.cer",// 换成你的证书,绝对路径
"keyFile": ""/usr/local/[nginx](https://www.vjsun.com/tag/nginx/ "查看与 nginx 相关的文章")/conf/ssl/bt.tvxx.net/bt.tvxx.net.key" // 换成你的私钥,绝对路径
}
]
}
}
}
],
"outbounds": [
{
"protocol": "freedom",
"settings": { }
}
]
}
配置完毕后,可通过
systemctl start xray
运行 xray,
systemctl stop xray
停止xray,
systemctl restart xray
重启,
systemctl status xray
xray运行状态
journalctl -xe --no-pager -u xra
y 查看运行日志。
修改 Nginx 配置文件
单一修改Nginx
server {
listen 0.0.0.0:80;
server_name bt.tvxx.net;
rewrite .*$ https://${server_name}$1 permanent;
}
//强制http转到https服务
修改443
在研究SNI分流的设置,太忙没时间,等有时间在填坑。先简单的用下边的方案。
又想有多个网站博客,又想使用Xray,就到这里去看;地址
配置Xray客户端
服务端配置好后,接下来是配置客户端。目前有如下客户端支持Xray:
Xray Windows客户端:
- V2rayN:3.28版本起支持xray,只需要下载Xray-core,将解压的文件放到V2rayN-Core文件夹下即可。需要注意的是V2rayN 4.0版本移除了PAC,改用路由规则,会给习惯了PAC的用户带来困扰。习惯Qv2ray的网友应该乐于接受这个改变;
- winXray:winXray是Windows系统上简洁稳定的Xray/V2Ray、Shadowsocks、Trojan 通用客户端,可自动检测并连接访问速度最快的 代理服务器。该项目原作者删库后出现了一些同名库,安全性未知,因此本站托管的依然是旧版;
- Qv2ray:Qv2ray是一个基于Qt框架开发的v2ray客户端,可通过插件支持SS、SSR、VMESS、VLESS、trojan等多种协议。
Xray安卓客户端:
- V2rayNG:V2rayNG可以说是最跟随Xray步伐的V2ray客户端了,Xray发布新版本后会在第一时间更新,推荐使用。
Xray Mac客户端:
- Qv2ray:Qv2ray是一个基于Qt框架开发的跨平台v2ray客户端,因此支持MacOS系统。实际上,自V2rayU作者删库不更新后,Qv2ray算得上Mac系统上支持VLESS协议的独苗,但可能会出现设置系统代理无效的bug。
Xray苹果客户端:
- Shadowrocket/小火箭:小火箭目前是ios系统上更新最频繁的V2ray客户端,价格也不贵,支持多种协议,推荐使用。
自动一键脚本(1):
bash <(curl -sL https://s.hijk.art/xray.sh)
按回车键,出现意外请,CentOS系统请输入 yum install -y curl
,Ubuntu/Debian系统请输入 sudo apt install -y curl
,然后再次运行上面的命令:
本Xray一键脚本目前支持以下组合方式:
- VMESS,即最普通的V2ray服务器,没有伪装,也不是VLESS
- VMESS+KCP,传输协议使用mKCP,VPS线路不好时可能有奇效
- VMESS+TCP+TLS,带伪装的V2ray,不能过CDN中转
- VMESS+WS+TLS,即最通用的V2ray伪装方式,能过CDN中转,推荐使用
- VLESS+KCP,传输协议使用mKCP
- VLESS+TCP+TLS,通用的VLESS版本,不能过CDN中转,但比VMESS+TCP+TLS方式性能更好
- VLESS+WS+TLS,基于websocket的V2ray伪装VLESS版本,能过CDN中转,有过CDN情况下推荐使用
- VLESS+TCP+XTLS,目前最强悍的VLESS+XTLS组合,强力推荐使用(但是支持的客户端少一些)
- trojan,轻量级的伪装协议
- trojan+XTLS,trojan加强版,使用XTLS技术提升性能
注意:目前一些客户端不支持VLESS协议,或者不支持XTLS,请按照自己的情况选择组合
- 按照自己的需求选择一个方式。例如6,然后回车。接着脚本会让你输入一些信息,也可以直接按回车使用默认值。需要注意的是,对于要输入伪装域名的情况,如果服务器上有网站在运行,请联系运维再执行脚本,否则可能导致原来网站无法访问!
xray一键脚本输入
- 脚本接下来会自动运行,一切顺利的话结束后会输出配置信息:
Xray一键脚本运行成功输出信息
到此服务端配置完毕,服务器可能会自动重启(没提示重启则不需要),windows终端出现“disconnected”,mac出现“closed by remote host”说明服务器成功重启了。
对于VLESS协议、VMESS+WS+TLS的组合,网页上输入伪装域名,能正常打开伪装站,说明服务端已经正确配置好。如果运行过程中出现问题,请在本页面下方查找解决方法或留言。
Xray一键脚本其他事项
服务端配置好后,如果想使用CloudFlare等CDN中转(必须是WS版才可以),请参考:使用cloudflare中转流量,拯救被墙ip。
本脚本默认使用的加速技术是BBR,换成魔改BBR/BBR Plus/锐速清参考:安装魔改BBR/BBRPlus/锐速(Lotserver)。
如果伪装站类型没有你满意的,比如你想搭建WordPress博客,请参考:V2ray伪装建站教程。
对于使用TLS的方式,脚本默认会申请域名证书,证书存放在和xray配置文件同一个文件夹内(即/usr/local/etc/xray
目录下)。证书会自动更新,如果客户端突然无法使用,请打开伪装网站查看是否能正常打开。如果证书已过期,请再次运行上面的脚本重新配
最后,刚搭建好Xray后不要猛上流量,否则会导致被限速、端口被墙,严重可能导致ip被墙
自动一键脚本(2):
|
1
|
wget -P /root -N --no-check-certificate "https://raw.githubusercontent.com/mack-a/v2ray-agent/master/install.sh" && chmod 700 /root/install.sh && /root/install.sh
|
支持快捷方式启动,安装完毕后,shell输入[vasma]即可打开脚本,脚本执行路径[/etc/v2ray-agent/install.sh]
脚本特性
- 支持Xray-core[XTLS]、v2ray-core [XTLS]、v2ray-core
- 支持不同核心之间的配置文件互相读取。
- 支持 VLESS/VMess/trojan/trojan-go–>ws的协议
- 支持Debian、Ubuntu、Centos,支持主流的cpu架构。
- 支持个性化安装。
- 不需要卸载就可以重装任何组合。卸载脚本时,是完全卸载无残留。
组合方式
- VLESS+TCP+TLS
- VLESS+TCP+xtls-rprx-origin
- VLESS+TCP+xtls-rprx-direct【推荐】
- VLESS+WS+TLS
- VMess+TCP+TLS
- VMess+WS+TLS
- Trojan【推荐】
- Trojan-Go+WS
脚本目录
- v2ray-core 【/etc/v2ray-agent/v2ray】
- Xray-core 【/etc/v2ray-agent/xray】
- Trojan 【/etc/v2ray-agent/trojan】
- TLS证书 【/etc/v2ray-agent/tls】
- Nginx配置文件 【/etc/nginx/conf.d/alone.conf】、Nginx伪装博客目录 【/usr/share/nginx/html】
make-a项目地址:点击访问
自动一键脚本(3):
脚本特性
- 支持 (Xray-TCP+XTLS) + (Xray-WebSocket+TLS) + Web
- 集成 多版本bbr/锐速 安装选项
- 支持多种系统 (Ubuntu CentOS Debian deepin fedora ...)
- 支持多种指令集 (x86 x86_64 arm64 ...)
- 支持ipv6only服务器 (需自行设置dns64)
- 集成删除阿里云盾和腾讯云盾功能 (仅对阿里云和腾讯云服务器有效)
- 使用Nginx作为网站服务
- 使用Xray作为前置分流器
- 使用acme.sh自动申请/更新域名证书
- 支持选择搭建个人网盘作为伪装网页
注意事项
- 此脚本需要一个解析到服务器的域名 (支持cdn)
- 此脚本安装时间较长,见 安装时长说明
- 此脚本设计为个人VPS用户使用,不适合机场主使用 (此脚本没有多用户管理/流量统计等功能)。
- 建议在纯净的系统上使用此脚本 (VPS控制台-重置系统)
wget -O Xray-TLS+Web-setup.sh --no-check-certificate https://github.com/kirin10000/Xray-script/raw/main/Xray-TLS+Web-setup.sh
bash Xray-TLS+Web-setup.sh
根据脚本提示完成安装
安装位置
Nginx:/usr/local/nginx
php:/usr/local/php
Cloudreve:/usr/local/cloudreve
Xray: 见 Xray-install
项目地址:地址
自动一键脚本(4):
基于 Nginx 的 vless+ws+tls / XTLS 回落 Nginx 一键安装脚本
wget -N --no-check-certificate -q -O install.sh "https://raw.githubusercontent.com/paniy/Xray\_bash\_onekey/main/install.sh" && chmod +x install.sh && bash install.sh
建议单服务器仅搭建单个代理
本脚本默认安装最新版本的Xray core。
建议使用默认的443端口作为连接端口。
伪装内容可自行替换。
注意事项
推荐在纯净环境下使用本脚本,如果你是新手,请不要使用Centos系统。
在尝试本脚本确实可用之前,请不要将本程序应用于生产环境中。
该程序依赖 Nginx 实现相关功能,请使用 LNMP 或其他类似携带 Nginx 脚本安装过 Nginx 的用户
特别留意,使用本脚本可能会导致无法预知的错误(未测试,若存在,后续版本可能会处理本问题)。
xray 的部分功能依赖于系统时间,请确保您使用xray程序的系统 UTC 时间误差在三分钟之内,时区无关。
Centos 系统用户请预先在防火墙中放行程序相关端口(默认:80,443)。
启动方式
启动 Xray:systemctl start xray
停止 Xray:systemctl stop xray
启动 Nginx:systemctl start nginx
停止 Nginx:systemctl stop nginx
相关目录
Web 目录:/home/wwwroot/3DCEList
xray 服务端配置:/etc/xray/config.json
xray 客户端配置: ~/xray_info.txt
Nginx 目录: /etc/nginx
证书文件: /data/xray.key 和 /data/xray.crt 请注意证书权限设置。
项目地址:地址