万万没想到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新特性请参考官方说明:https://xtls.github.io/about/new/,或者官方库发行说明:https://github.com/XTLS/Xray-core/releases
Xray和V2ray的区别
在说明Xray和V2ray区别之前,先说一下三个相近但不同的概念:
- V2ray:Project V 是用于构建基础通信网络的工具合集,其核心工具称为
V2Ray
。V2ray主要负责网络协议和功能的实现,既可以单独运行,也可以和其它工具配合。 - V2ray官网是:https://v2ray.com/,
- Github项目主页是:https://github.com/v2ray,
- TG讨论组是:@projectv2ray;
- V2fly:出现一些科学上网作者被喝茶事件后,V2ray原开发者长期不上线,其他维护者没有完整权限,导致V2ray项目维护困难。因此社区在2019年组建了V2fly组织,继续维护V2ray,也是目前V2ray发展的主力。
- V2fly官网是:https://www.v2fly.org,
- Github项目主页是:https://github.com/v2fly,
- TG通知频道:@v2fly,TG交流群为:@v2fly_chat;
- Xray:因许可理念之争,VLESS和XTLS的作者单独创建了Xray项目,目前是V2ray的超集,后续可能有不同的发展路线。
- Xray文档官网(测试中):https://xtls.github.io/,
- Github项目主页:https://github.com/XTLS,
- TG交流群:@projectXray。
从上面可以看到,先有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/conf/ssl/bt.tvxx.net/fullchain.cer",// 换成你的证书,绝对路径 "keyFile": ""/usr/local/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
listen 33223 http2;
在研究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客户端,价格也不贵,支持多种协议,推荐使用。
手动安装配置最新Xray REALITY协议:
说明:https://github.com/XTLS/REALITY#vless-xtls-utls-reality-example-for-xray-core-%E4%B8%AD%E6%96%87
配置里的privateKey和publicKey可以自己改改,生成方法./xray x25519
小鸡安装1.8.0的脚本(官方)
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" install --version 1.8.0
客户端也要1.8.0 https://github.com/XTLS/Xray-core/releases/tag/v1.8.0
然后把服务器配置写到 /usr/local/etc/xray/config.json
重启xray systemctl restart xray
服务器配置
{ "inbounds": [ { "listen": "0.0.0.0", "port": 443, "protocol": "vless", "settings": { "clients": [ { "id": "id", "flow": "xtls-rprx-vision" } ], "decryption": "none" }, "streamSettings": { "network": "tcp", "security": "reality", "realitySettings": { "show": false, "dest": "www.iq.com:443", "xver": 0, "serverNames": [ "www.iq.com", "www.example.com" ], "privateKey": "ANqmuHlwCv-KNWKe6-4sBOcL7Vedo4S45AOvTHRLOUU", "minClientVer": "", "maxClientVer": "", "maxTimeDiff": 0, "shortIds": [ "", "0123456789abcdef" ] } } } ], "outbounds": [ { "protocol": "freedom", "settings": {} } ] }
客户端配置
保存为json文件,v2rayN可以导入,其他客户端挑出outbounds那里自己改改
记得客户端也要手动升级到1.8.0版本
{ "policy": { "system": { "statsOutboundUplink": true, "statsOutboundDownlink": true } }, "log": { "access": "", "error": "", "loglevel": "warning" }, "inbounds": [ { "tag": "socks2", "port": 10808, "listen": "0.0.0.0", "protocol": "socks", "sniffing": { "enabled": true, "destOverride": [ "http", "tls" ] }, "settings": { "auth": "noauth", "udp": true, "allowTransparent": false } }, { "tag": "http2", "port": 10809, "listen": "0.0.0.0", "protocol": "http", "sniffing": { "enabled": true, "destOverride": [ "http", "tls" ] }, "settings": { "auth": "noauth", "udp": true, "allowTransparent": false } }, { "tag": "api", "port": 3972, "listen": "127.0.0.1", "protocol": "dokodemo-door", "settings": { "udp": false, "address": "127.0.0.1", "allowTransparent": false } } ], "outbounds": [ { "protocol": "vless", "settings": { "vnext": [ { "address": "你的服务器IP", "port": 443, "users": [ { "id": "id", "flow": "xtls-rprx-vision", "encryption": "none" } ] } ] }, "streamSettings": { "network": "tcp", "security": "reality", "realitySettings": { "show": false, "fingerprint": "chrome", "serverName": "www.iq.com", "publicKey": "FU3taClalV6g2eB1cKe9OuVGyCEKd8iAFfVAsBE07wzA", "shortId": "", "spiderX": "" } } } ], "stats": {}, "api": { "tag": "api", "services": [ "StatsService" ] }, "dns": { "servers": [ "223.5.5.5", "8.8.8.8" ] }, "routing": { "domainStrategy": "AsIs", "domainMatcher": "linear", "rules": [ { "type": "field", "inboundTag": [ "api" ], "outboundTag": "api", "enabled": true }, { "type": "field", "inboundTag": [], "outboundTag": "proxy", "domain": [ "translate.googleapis.com", "translate.google.com" ], "enabled": true }, { "type": "field", "inboundTag": [], "outboundTag": "direct", "domain": [ "domain:tencent.com", "domain:qq.com", "domain:baidu.com", "domain:pan.baidu.com" ], "enabled": true }, { "type": "field", "outboundTag": "direct", "domain": [ "domain:example-example.com", "domain:example-example2.com" ], "enabled": true }, { "type": "field", "outboundTag": "block", "domain": [ "geosite:category-ads-all" ], "enabled": true }, { "type": "field", "outboundTag": "direct", "domain": [ "geosite:cn" ], "enabled": true }, { "type": "field", "outboundTag": "direct", "ip": [ "geoip:private", "geoip:cn" ], "enabled": true }, { "type": "field", "port": "0-65535", "outboundTag": "proxy", "enabled": true } ] } }
自动一键脚本(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,请按照自己的情况选择组合
5. 按照自己的需求选择一个方式。例如6,然后回车。接着脚本会让你输入一些信息,也可以直接按回车使用默认值。需要注意的是,对于要输入伪装域名的情况,如果服务器上有网站在运行,请联系运维再执行脚本,否则可能导致原来网站无法访问!
6. 脚本接下来会自动运行,一切顺利的话结束后会输出配置信息:
到此服务端配置完毕,服务器可能会自动重启(没提示重启则不需要),windows终端出现“disconnected”,mac出现“closed by remote host”说明服务器成功重启了。
对于VLESS协议、VMESS+WS+TLS的组合,网页上输入伪装域名,能正常打开伪装站,说明服务端已经正确配置好。如果运行过程中出现问题,请在本页面下方查找解决方法或留言。
Xray一键脚本其他事项
服务端配置好后,如果想使用CloudFlare等CDN中转(必须是WS版才可以),请参考:使用cloudflare中转流量,拯救被墙ip。
本脚本默认使用的加速技术是BBR,换成魔改BBR/BBR Plus/锐速清参考:安装魔改BBR/BBR Plus/锐速(Lotserver)。
如果伪装站类型没有你满意的,比如你想搭建WordPress博客,请参考:V2ray伪装建站教程。
对于使用TLS的方式,脚本默认会申请域名证书,证书存放在和xray配置文件同一个文件夹内(即/usr/local/etc/xray
目录下)。证书会自动更新,如果客户端突然无法使用,请打开伪装网站查看是否能正常打开。如果证书已过期,请再次运行上面的脚本重新配
最后,刚搭建好Xray后不要猛上流量,否则会导致被限速、端口被墙,严重可能导致ip被墙
自动一键脚本(2):
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 请注意证书权限设置。
项目地址:地址
暂无评论内容