标签: VLess

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

    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]