黑科技工具—未来的霸主选项:Xray(VLESS-XTLS-uTLS-REALITY )

黑科技工具—未来的霸主选项:Xray(VLESS-XTLS-uTLS-REALITY )

万万没想到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区别如下:

  1. Xray是V2ray的一个分支(Fork)。Xray项目基于V2ray而来,其支持并且兼容V2ray的配置;
  2. Xray是V2ray的超集。虽然最新版V2ray删除了XTLS,但仍保留VLESS协议。Xray提供完整的VLESS和XTLS支持,目前是V2ray的超集,但后续Xray可能会有会有自己的发展方向;
  3. 如果使用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 xray 查看运行日志。

修改 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,然后回车。接着脚本会让你输入一些信息,也可以直接按回车使用默认值。需要注意的是,对于要输入伪装域名的情况,如果服务器上有网站在运行,请联系运维再执行脚本,否则可能导致原来网站无法访问!

xray一键脚本输入

6. 脚本接下来会自动运行,一切顺利的话结束后会输出配置信息:

Xray一键脚本运行成功输出信息

到此服务端配置完毕,服务器可能会自动重启(没提示重启则不需要),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):

脚本特性

  1. 支持 (Xray-TCP+XTLS) + (Xray-WebSocket+TLS) + Web
  2. 集成 多版本bbr/锐速 安装选项
  3. 支持多种系统 (Ubuntu CentOS Debian deepin fedora …)
  4. 支持多种指令集 (x86 x86_64 arm64 …)
  5. 支持ipv6only服务器 (需自行设置dns64)
  6. 集成删除阿里云盾和腾讯云盾功能 (仅对阿里云和腾讯云服务器有效)
  7. 使用Nginx作为网站服务
  8. 使用Xray作为前置分流器
  9. 使用acme.sh自动申请/更新域名证书
  10. 支持选择搭建个人网盘作为伪装网页

注意事项

  1. 此脚本需要一个解析到服务器的域名 (支持cdn)
  2. 此脚本安装时间较长,见 安装时长说明
  3. 此脚本设计为个人VPS用户使用,不适合机场主使用 (此脚本没有多用户管理/流量统计等功能)。
  4. 建议在纯净的系统上使用此脚本 (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 请注意证书权限设置。

项目地址:地址

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容