跳至正文

【科学】VLESS Reality手动配置 | 防止端口被封

内容纲要

简介

为了应对 TLS in TLS 和指纹识别等阻断或封禁的风险,Xray-core 团队推出了 VLESS Vision 和 VLESS Reality 两种新颖的技术方案。它们能够有效地隐藏和保护流量的特征,提高安全性和稳定性。

手动部署

依赖

  • curl
  • nano

安装Xray

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

Xray配置

编辑config文件

修改 Xray 默认配置文件,默认路径在 /usr/local/etc/xray/config.json,默认内容为 {}

nano /usr/local/etc/xray/config.json

参考配置

{
    "log": {
        "loglevel": "warning"
    },
    "routing": {
        "domainStrategy": "IPIfNonMatch",
        "rules": [
            {
                "type": "field",
                "protocol": [
                    "bittorrent"
                ],
                "outboundTag": "block"
            },
            {
                "type": "field",
                "ip": [
                    "geoip:private"
                ],
                "outboundTag": "block"
            },
            {
                "type": "field",
                "ip": [
                    "geoip:cn"
                ],
                "outboundTag": "block"
            },
            {
                "type": "field",
                "domain": [
                    "geosite:category-ads-all"
                ],
                "outboundTag": "block"
            }
        ]
    },
    "inbounds": [
        {
            "tag": "xray-xtls-reality",
            "listen": "0.0.0.0",
            "port": 443,
            "protocol": "vless",
            "settings": {
                "clients": [
                    {
                        "id": "", // 可以使用 xray uuid 生成,注意保存
                        "flow": "xtls-rprx-vision"
                    }
                ],
                "decryption": "none"
            },
            "streamSettings": {
                "network": "tcp",
                "security": "reality",
                "realitySettings": {
                    "dest": "", // 自行设置合适的回落域名,必须带端口,比如:www.example.com:443
                    "serverNames": [
                        "" // 自行设置客户端可用的 server name 列表,例如:www.example.com
                    ],
                    "privateKey": "", // 可以使用 xray x25519 生成
                    "shortIds": [
                        ""
                    ]
                }
            },
            "sniffing": {
                "enabled": true,
                "destOverride": [
                    "http",
                    "tls",
                    "quic"
                ]
            }
        }
    ],
    "outbounds": [
        {
            "protocol": "freedom",
            "tag": "direct"
        },
        {
            "protocol": "blackhole",
            "tag": "block"
        }
    ]
}

参考配置中的 必须替换并修改为自己的配置,替换方法参考注释,其他例如 shortIds、流量过滤等可以自行决定是否配置。

参考配置支持的特性

  • 使用 reality 协议;
  • 开启 vision 分流;
  • 禁用 bittorrent、广告、回国等流量;

自动更新geoip.dat

创建文件夹
mkdir /usr/local/etc/xray-script
编辑更新脚本
nano /usr/local/etc/xray-script/update-dat.sh
脚本内容
#!/usr/bin/env bash

set -e

XRAY_DIR="/usr/local/share/xray"

GEOIP_URL="https://github.com/Loyalsoldier/v2ray-rules-dat/raw/release/geoip.dat"
GEOSITE_URL="https://github.com/Loyalsoldier/v2ray-rules-dat/raw/release/geosite.dat"

[ -d $XRAY_DIR ] || mkdir -p $XRAY_DIR
cd $XRAY_DIR

curl -L -o geoip.dat.new $GEOIP_URL
curl -L -o geosite.dat.new $GEOSITE_URL

rm -f geoip.dat geosite.dat

mv geoip.dat.new geoip.dat
mv geosite.dat.new geosite.dat

systemctl -q is-active xray && systemctl restart xray

添加执行权限

chmod +x /usr/local/etc/xray-script/update-dat.sh
设置定时任务
crontab -e

crontab内容
说明:可自行决定更新时间,示例中为每周一 23 点执行(注意服务器时区)。

00 23 * * 1 /usr/local/etc/xray-script/update-dat.sh >/dev/null 2>&1

回落域名选择

根据 reality 文档 的说明回落域名的网站需要满足以下要求:

  • 国外网站,网站服务器在国外且未被 GFW 屏蔽,越靠近代理服务越好(伪装效果更好,延迟也更低);
  • 支持 TLSv1.3 与 H2;

    域名非跳转用;

    另外需要注意的是,不要选择套了 Cloudflare CDN 的网站,有被其他人当作中转服务器的风险。
    一般来讲回落域名选择有以下几种选择:

  • 海外大厂的域名,例如 Microsoft、Apple 等;
  • 代理服务器的当地网站,例如当地大学、旅游局等机构的网站;
  • 自己网上邻居的网站;
  • 自己的网站;
    除选择 1 不推荐以外,其他选择可以自行决定使用哪种,本文以选择 3 为例。

找到网上邻居的网站

使用 BGP.TOOLS 查询工具查询代理服务器的 ASN
VLESS Reality 找到网上邻居的网站
VLESS Reality 找到网上邻居的网站
使用 FOFA 查找符合条件的网站,查询条件为

asn=="" && country=="HK" && port=="443" && cert!="Let's Encrypt" && cert.issuer!="ZeroSSL" && status_code="200";

VLESS Reality 找到网上邻居的网站

逐个验证查询到的网站是否满足回落域名的要求(使用浏览器的开发人员工具验证);
注意:需要将 FOFA 查询条件中的 替换为你代理服务器的 ASN,一定要用浏览器打开网站验证,确保能正常打开,是正规网站且满足回落域名要求。

TLS 版本可以打开开发人员工具后在 Security 选项卡中查看;是否支持 H2 可以在 Network 选项卡中查看 Protocol 列(默认未勾选)或者使用在线网站检测。
VLESS Reality 找到网上邻居的网站

客户端配置

proxies:
- name: "node1"
  type: vless
  server:  # 代理服务器地址
  port: 443
  udp: true
  uuid:  # Xray 服务端的 UUID
  flow: xtls-rprx-vision
  tls: true
  servername:  # 服务端配置的可用 server name
  client-fingerprint: chrome
  skip-cert-verify: false
  reality-opts: 
    public-key:  # 与服务端私钥配套的公钥
  network: tcp

将所有 替换为自己的信息,如果服务端设置了 shortIds 可自行配置。

延伸阅读


了解 VPS测评 - JQ 的更多信息

订阅后即可通过电子邮件收到最新文章。