VLess自建梯子科学上网萌新指南Vultr XRay 配置 VLess 协议

[members_only]

如果你已经学会使用 VMess 协议来搭建梯子,那么相比你也应该听说过它的升级版——VLess 协议。

在使用 TLS 的情况下,VLess 协议比 VMess 速度更快,性能更好,因为 VLess 不会对数据进行加解密。

今天就教新手用户如何在 Vultr 服务器(其他的也一样)上,搭建&配置科学上网用的 VLess 协议。如果你和我一样,想法学习节点相关知识,建议也同时观看下方的教程

注意:本文大部分官方链接需要借助外网(YouTube、GitHub 等)才能看到。所以建议大家在看文章之前,先下载一个免费的加速器,然后在进行学习。否则大部分的学习资料你是无法打开的

基础概念

先从基础的概念开始。新手在部署前最好对这些概念有个大概的认知:

XTLS 和 TLS

TLS 想必看过之前教程的用户都不陌生(https)。 XTLS 也是一种通信加密协议,用于保护网络通信中的数据安全,是 TLS 的加强版本。在加密性能、以及防干扰(重放攻击)上比传统 TLS 有更好的表现,并且它支持更多的扩展功能和自定义配置。VLess 最突出的就是它可以配合 XTLS 进行数据加密,效果更好、性能更强。

关于 TLS 加密,大家可以看 Trojan-go 教程开头的定义部分。

重点:XTLS 和 TLS 是通讯用的加密协议

XRay 是什么

XRay 是 V2Ray 服务端的分支(Fork)。新手可以理解为是 V2Ray 的加强版本。它支持 VLess 协议,并支持实现 XTLS。如果你需要用 VLess + XTLS,那么就需要部署 XRay 服务端。之前很多小白不理解协议与服务之间的区别,可以具体看看这个解释:VMess 和 V2ray 的关系,来加深你的理解。

重点:XRay 和 V2Ray 都是一种服务(其中可以包含各种协议)。

VLess 是什么

VLess 和 VMess 一样,是一种无状态的轻量级数据传输协议VLess 支持最新的 XTLS。你可以这么理解:VLess 是 Vmess 的一个精简、升级版本。因为 VMess 协议加密中包含时间因子(校验前后相差不能超过 90 秒)、同时 VMess 并不自带伪装、即使套上 TLS 也显得非常冗余。为了解决 VMess 这些问题,VLess 应运而生。

重点:VLess 和 VMess 都是一种传输协议


准备工作

  • Vultr 账号,以及一台 Vultr 的 VPS 服务器
  • SSH 工具:可以用 XShell 或者 FinalShell。文末有提供地址。
  • 客户端工具:v2rayN、SS 客户端、Clash 之类的都可以。文末有提供地址。
  • 辅助工具:可以免费科学扶墙的 VPN工具(用于防止下载失效)。
https://leepoet.cn/webnote/1861.html

部署 XRay 服务

和 SS 教程里的一样,通过 FinalShell 工具来进行 SSH 链接。并使用 Xray 官方提供的一键部署脚本来进行安装或更新:

bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install

安装完成后,执行下方命令查看 Xray 运行状态:

systemctl status xray.service

Xray 已经正常运行

可以看到 Xray 已经正常运行。上图红框的位置就是配置文件 config.json 的位置。

解析域名并申请 SSL

将域名解析到服务器 IP(示例中就是 64.176.37.182)。解析完成之后,最好使用 CMD 的 Ping 指令查看解析是否完成:

Ping 指令查看解析是否完成

完成之后回到 FinalShell,并按照依次以下命令安装证书。(感谢不良林大佬的教程

关闭防火墙

ufw disable

安装acme

curl https://get.acme.sh| sh

安装socat:

apt install socat

添加软链接:

ln -s /root/.acme.sh/acme.sh /usr/local/bin/acme.sh

切换CA机构:

acme.sh --set-default-ca --server letsencrypt

申请证书:

acme.sh --issue -d 你的域名 --standalone -k ec-256

安装证书:

acme.sh --installcert -d 你的域名 --ecc --key-file 
/usr/local/etc/xray/server.key --fullchain-file 
/usr/local/etc/xray/server.crt

注意:上述只是将证书的地址放到对应的文件夹。这个位置是可以自定义的,但是需要和下方的配置统一起来。

得到下方结果,就代表域名已经申请 SSL,并成功将公钥私钥文件放到了对应的位置:

域名已经申请 SSL

配置服务器端

只需要在 FinalShell 下方文件浏览器部分放入配置文件路径就可以找到其配置文件。

放入配置文件路径就可以找到配置文件 config.json

双击 config.json 打开配置文件,里面是空的,这时就需要我们自己去填写配置文件。

配置内容如下,可以一键复制,并粘贴到文件中,并且 Ctrl+S 进行保存上传:

{
    "log": {
        "loglevel": "warning"
    },
    "routing": {
        "domainStrategy": "AsIs",
        "rules": [
            {
                "type": "field",
                "ip": [
                    "geoip:private"
                ],
                "outboundTag": "block"
            }
        ]
    },
    "inbounds": [
        {
            "listen": "0.0.0.0", 
            "port": 443, 
            "protocol": "vless",
            "settings": {
                "clients": [
                    {
                        "id": "72bac1c4-02de-49b4-e498-fa8767638c23", 
                        "flow": "xtls-rprx-vision"
                    }
                ],
                "decryption": "none"
            },
            "streamSettings": {
                "network": "tcp",
                "security": "tls",
                "tlsSettings": {
                    "rejectUnknownSni": true,
                    "minVersion": "1.2",
                    "certificates": [ 
                        {
                            "ocspStapling": 3600,
                            "certificateFile": "/usr/local/etc/xray/server.crt", 
                            "keyFile": "/usr/local/etc/xray/server.key"
                        }
                    ]
                }
            },
            "sniffing": {
                "enabled": true,
                "destOverride": [
                    "http",
                    "tls",
                    "quic"
                ]
            }
        }
    ],
    "outbounds": [
        {
            "protocol": "freedom",
            "tag": "direct"
        },
        {
            "protocol": "blackhole",
            "tag": "block"
        }
    ]
}

然后重新加载 Xray 服务:

systemctl restart xray.service

并再次查看状态:

systemctl status xray.service

出现如下界面代表 Xray VLess 服务端成功配置完成:

Xray VLess 服务端成功配置完成

这边如果有人出现 restart 后报错的情况,请查看 config.json 文件目录下的三个文件权限(config.jsonserver.crt 以及 server.key)必须是 -rw-r--r-- 状态(可右击文件编辑权限)。就像像下图这样:

如果报错,请确认文件权限

到此,服务端的配置就结束了。

V2RayN 客户端配置 VLess

这里我们使用 V2RayN 配置客户端。具体配置可以看下方截图:

V2RayN 客户端配置 VLess

注意:域名(你解析的域名)、端口(你配置文件里写的 443、或是你自己定义的)、用户ID(示例里就是配置文件中的 72bac1c4-02de-49b4-e498-fa8767638c23)、流控(xtls-rprx-vision)、以及传输层安全(XTLS)、

保存之后就可以执行真延迟检测,发现已经线路已经通了,可以正常的科学上网了。

线路已通

VLess · VMess · ShaodowSocks · Trojan 之间的区别

VLess、VMess、ShaodowSocks、Trojan-go、都是传输协议的一种。都算是大多数机场服务商在使用的主流协议。大致的区别、以及新手推荐如下:

协议
名称
备注
解释
新手
推荐度
Trojan-goTLS 非对称加密。可以将流量伪装成自然的网站浏览。
基本不会被GFW防火墙探测到。除非服务器 IP 本生就在黑名单内。
推荐
VMess可以裸连(基础链接)也可以套 TLS。一般
VLess可套 TLS,支持 XTLS,VMess 的修改·加强版。
但是类型和 Trojan-go 更为类似。
一般
ShadowSocks喝过茶,有插件可以进行加密。貌似还是会留有指纹痕迹。
很多机场都在用,被封的频率也挺高
一般

总结

本教程里演示的是在 Xray 内核服务中配置 VLess + XTLS 的教程(VLess 也可以搭配 TLS,Xray 内核 和 V2ray 很像,玩法很多。具体可以看这里。)。也是将 VLess 协议功能最大化的一个。

但是对于新手来说可能配置过程相对复杂。建议新手先从 SS 教程开始入手,熟练之后直接使用 x-ui 面板进行配置可能是最好的选择。

但是还是那句话,本教程只是用来学习。如果你只是为了翻墙,那么直接用别人搭建好的就行。 没有必要自己行配置,成本也高。

资料

Xray-corehttps://github.com/XTLS/Xray-core
Xray-exampleshttps://github.com/XTLS/Xray-examples
不良林大佬https://www.youtube.com/watch?v=7GHh91AYAmM&t=124s

[/members_only]