Xray 配置 Reality + Vision + TCP
安装 Xray
安装
sh
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
更新 GeoData
sh
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install-geodata
移除
sh
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ remove && rm -rf /usr/local/etc/xray /var/log/xray
配置回落域名
- 回落域名需要符合以下几点要求:国外网站、支持 TLSv1.3 、H2
- 加分项:IP 相近(更像,且延迟低)、Server Hello 后的握手消息一起加密(如 dl.google.com)、有 OCSP Stapling
- 因此我们有两种选择,一种是直接填写大厂的域名,另一种是填写 VPS 邻居的域名
- 邻居的域名可以在 BPG.Tools 中输入 VPS 的 IP,然后点击下方的 DNS,选择 Show Forward DNS,在下方的列表中,使用 SSL Labs 进行检测网站是否完全符合要求
- 大厂的域名可以直接从下方选择一个
text
# 推荐域名
gateway.icloud.com
itunes.apple.com
download-installer.cdn.mozilla.net
airbnb【这个不同的区有不同的域名建议自己搜索】
addons.mozilla.org
www.microsoft.com
www.lovelive-anime.jp
Apple:
swdist.apple.com
swcdn.apple.com
updates.cdn-apple.com
mensura.cdn-apple.com
osxapps.itunes.apple.com
aod.itunes.apple.com
Microsoft:
cdn-dynmedia-1.microsoft.com
update.microsoft
software.download.prss.microsoft.com
Amazon:
s0.awsstatic.com
d1.awsstatic.com
images-na.ssl-images-amazon.com
m.media-amazon.com
player.live-video.net
Google:
dl.google.com
配置服务端
基本配置
json
{
"log": {
"loglevel": "waring",
"access": "/var/log/xray/access.log",
"error": "/var/log/xray/error.log"
},
"inbounds": [
{
"listen": "0.0.0.0",
"port": 10086,
"protocol": "vless",
"settings": {
"clients": [
{
"id": "<UUID>", // 通过 `xray uuid` 命令生成
"flow": "xtls-rprx-vision"
}
],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"dest": "domain.com:443", // 填入上方回落域名与端口,例如 `domain.com:443`
"serverNames": ["domain.com"], // 填入上方回落域名,例如 `domain.com`
"privateKey": "<Private Key>", // 通过 `xray x25519` 命令生成,将 Private key 填入即可
"shortIds": ["<Short IDs>"] // 通过 `openssl rand -hex 8` 生成
}
},
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls", "quic"]
}
}
],
"outbounds": [{ "protocol": "freedom" }]
}
出站
上面的基本配置中 outbounds
只有一个 freedom
,第一个元素会作为默认出站,当路由匹配不存在或没有匹配成功时,流量将由默认出站发出
提示
直连的 IPv4 和 IPv6 优先级由 domainStrategy 设置决定,与系统设置的优先级无关
如果你希望分流到其他的 VPS,则需要添加多个出站,搭配路由规则使用,此时需要给所有出站添加 tag
,并且建议将 freedom
放在第一个
json
{
"outbounds": [
{
"tag": "DIRECT",
"protocol": "freedom",
"settings": {
"domainStrategy": "UseIPv4v6"
}
},
{
"tag": "BLOCK",
"protocol": "blackhole"
},
{
"tag": "WARP",
"protocol": "socks",
"settings": {
"servers": [
{
"address": "127.0.0.1",
"port": 40000
}
]
}
}
]
}
路由
设置完出站之后,还需要设置路由,根据路由规则匹配不同的出站,未匹配到的规则会走默认规则
危险
当多个属性同时指定时,这些属性需要同时满足,才可以使当前规则生效。
下面的例子中,将 reddit 分流到 WARP,并且禁用了 BT 和 私有地址
json
{
"routing": {
"rules": [
{
"type": "field",
"outboundTag": "WARP",
"domain": [ "geosite:reddit" ]
},
{
"type": "field",
"outboundTag": "BLOCK",
"ip": [ "geoip:private"]
},
{
"type": "field",
"outboundTag": "BLOCK",
"protocol": [ "bittorrent" ]
}
]
}
}
配置客户端
配置文件
yaml
- name: Clash
type: vless
network: tcp
server: <Server IP>
port: 10086
uuid: <UUID>
tls: true
udp: true
flow: xtls-rprx-vision
servername: domain.com
reality-opts:
public-key: <Private Key> # 由 `xray x25519` 生成的,需要与服务端的 `privateKey` 相对应
short-id: <Short ID> # 若服务端为空,则可以省略;若不为空,则需与服务端保持一致
client-fingerprint: chrome
替换内核
- 由于 Clash for Windows 自带的 Clash Premium 内核不支持 Reality,需要替换为 Clash.Meta (mihomo) 内核
- Windows 下载
mihomo-windows-amd64.zip
解压重命名为clash-win64.exe
- 将文件放到
C:\Program Files\Clash for Windows\resources\static\files\win\x64
目录中 - 创建软连接
mklink /D C:\Users\用户名\.config\mihomo C:\Users\用户名\.config\clash
常用命令
- 设置开机启动
systemctl enable xray
- 启动 Xray
systemctl start xray
- 关闭 Xray
systemctl stop xray
- 重启 Xray
systemctl restart xray
- 检查运行状况
systemctl status xray
预览: