前言
最近在折腾 Xray,发现 Xray 的 SNI 回落功能很强大,能实现伪装与按域名分流
参考文档:通过 SNI 回落功能实现伪装与按域名分流
申请证书
我编写了一个自动化申请证书的sh 脚本,脚本简单易用、高效,支持多种证书申请方式。
安装脚本:
1
| bash <(curl -sSL https://is.gd/dpdrPB)
|
Xray 配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| { "inbounds": [ { "port": 443, "protocol": "vless", "settings": { "clients": [ { "id": "xxxx-xxxx-xxxx-xxxx-xxxx", "flow": "xtls-rprx-vision", "level": 0, "email": "vpsadmin@yourdomain.com" } ], "decryption": "none", "fallbacks": [ { "name": "*.xx.xx.xx", "dest": 3180, "xver": 1 }, { "dest": 1318, "xver": 1 } ] }, "streamSettings": { "network": "tcp", "security": "tls", "tlsSettings": { "serverName": "yourdomain.com" } } } ] }
|
让我们来详细解析一下这个配置文件的关键部分:
- 入站配置 (inbounds)
port: 443: 使用标准 HTTPS 端口
protocol: vless: 采用 VLESS 协议,这是 Xray 的一个轻量级加密协议
- 客户端设置 (clients)
id: 用户的 UUID,作为身份认证
flow: xtls-rprx-vision: 启用 vision 流控,提供更好的性能
level & email: 用户等级和标识信息
- 回落配置 (fallbacks)
- 第一个回落: 处理内网穿透请求
name: *.xx.xx.xx: 内网穿透域名
dest: 3180: 转发到本地 3180 端口
xver: 1: 启用 PROXY protocol 支持
- 第二个回落: Trojan 协议
dest: 1318: 转发到 Trojan 端口
- 传输配置 (streamSettings)
network: tcp: 使用 TCP 传输
security: tls: 启用 TLS 加密
serverName: 服务器域名,用于 TLS 证书验证
Nginx 配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| http { server { listen 80; server_name xx.xx.com; root /www/webpage; index index.html; return 301 https://$host$request_uri; }
server { listen 80; listen [::]:80; server_name *.us.kg;
location / { proxy_pass http://127.0.0.1:3180; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } }
|
结尾
通过以上配置,实现了:
- 高效的 VLESS + Vision 传输
- 完整的 TLS 加密保护
- 灵活的多协议回落机制
- 支持内网穿透功能