生成参数
点击生成后会得到一组新的 UUID、Reality X25519 公私钥、shortId 和 WireGuard secretKey。下面的示例配置和客户端链接会同步更新。
正在生成...
{}
配置详解
这里主要用两种入口:TLS 适合走 Cloudflare,Reality 适合直连。随机生成的值会自动写进后面的示例配置。
| 字段 | TLS | Reality |
|---|---|---|
| 端口 | 2096 | 2097 |
| 协议 | vless | vless |
| 传输 | xhttp | xhttp |
| 路径 | / | / |
| 安全层 | tls | reality |
| 服务端密钥 | cert.pem + key.pem | privateKey |
| 客户端密钥 | 域名证书校验 | publicKey |
TLS 证书不能靠本页随机生成,需要使用你域名对应的真实证书。Reality 的 privateKey 只放服务端,publicKey 放客户端链接。
loglevel 默认设为 none。排障时可以临时改成 warning 或 debug,确认正常后再改回去。
示例配置
从下面两个模板里选一个写入 /opt/xray/config.json。如果重新生成参数,代码块里的 UUID、Reality key 和 shortId 会自动变化。
VLESS + XHTTP + TLS
适合有域名和 Cloudflare Origin Certificate 的场景。默认端口是 2096。
{}
VLESS + XHTTP + Reality
适合直连部署。服务端填 private key,客户端填 public key。
{}
客户端参数
客户端参数要和服务端保持一致。下面的 UUID、Reality publicKey 和 shortId 会跟着生成器更新。
VLESS + XHTTP + TLS
正在生成...
VLESS + XHTTP + Reality
正在生成...
可选片段
这些片段按需合并到 inbounds 或 outbounds 数组里。合并时注意 JSON 逗号位置。
inbounds:SMTP tunnel
把本地 127.0.0.1:10807 转发到飞书邮箱 SMTP。
{
"tag": "smtp",
"port": 10807,
"listen": "127.0.0.1",
"protocol": "tunnel",
"settings": {
"allowedNetwork": "tcp",
"rewriteAddress": "smtp.larksuite.com",
"rewritePort": 465
}
}
inbounds:mixed 代理
提供 HTTP / SOCKS mixed 入站,适合本机程序走代理。
{
"port": 10808,
"listen": "127.0.0.1",
"protocol": "mixed",
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls"],
"routeOnly": false
},
"settings": {
"auth": "noauth",
"udp": true,
"allowTransparent": false
}
}
outbounds:WARP WireGuard
secretKey 会跟着生成器更新;WARP 地址和 peer publicKey 需要来自你的 WARP 注册结果,不能随便随机填。
{}
部署教程
把上面的示例配置复制到服务器后,再选 Docker 或二进制方式启动。下面命令默认服务端目录是 /opt/xray。
1. 准备目录和配置文件
mkdir -p /opt/xray && chmod 700 /opt/xray
vi /opt/xray/config.json
如果使用 TLS 模板,把证书和私钥放到下面两个文件。文件名要和配置里的 certificateFile、keyFile 一致。
vi /opt/xray/cert.pem
vi /opt/xray/key.pem
chmod 600 /opt/xray/key.pem
注意 不要把同一套 UUID、Reality privateKey、WARP secretKey 长期公开复用。分享页面可以生成参数,实际生产最好自己保管。
2. Docker 部署
docker run -d --name=xray --restart always --network host \
-v /opt/xray:/etc/xray \
-v /opt/xray:/usr/share/xray \
teddysun/xray:latest && docker logs --tail=50 xray
更新配置后重启:
docker restart xray && docker logs --tail=50 xray
3. 二进制部署
不用 Docker 就下载 Xray 二进制,然后交给 systemd 管理。下面命令适用于 Debian / Ubuntu。
apt update && apt install -y wget unzip \
&& mkdir -p /opt/xray/temp && cd /opt/xray/temp \
&& wget -O Xray-linux-64.zip https://github.com/XTLS/Xray-core/releases/latest/download/Xray-linux-64.zip \
&& unzip -o Xray-linux-64.zip \
&& install -m 755 xray /opt/xray/xray \
&& install -m 644 geoip.dat geosite.dat /opt/xray/ \
&& rm -rf /opt/xray/temp
写入 systemd 服务:
cat >/etc/systemd/system/xray.service <<'EOF'
[Unit]
Description=Xray
After=network.target
After=nss-lookup.target
[Service]
WorkingDirectory=/opt/xray/
ExecStart=/opt/xray/xray run -config /opt/xray/config.json
Restart=on-failure
RestartPreventExitStatus=23
LimitNPROC=10000
LimitNOFILE=1000000
[Install]
WantedBy=multi-user.target
EOF
启动并设置开机自启:
systemctl daemon-reload && systemctl enable --now xray && systemctl status xray --no-pager
更新配置后重启:
systemctl restart xray && systemctl status xray --no-pager
4. 放行端口并验证
TLS 模板默认使用 2096/tcp,Reality 模板默认使用 2097/tcp。云厂商安全组和系统防火墙都要放行对应端口。
ss -lntp | grep -E ':2096|:2097'
如果服务器使用 UFW,可以按实际方案放行:
ufw allow 2096/tcp
ufw allow 2097/tcp
安全检查
- 公开分享前确认页面里没有真实证书私钥、Reality privateKey、WARP secretKey。
- 如果密钥曾经公开过,直接重新生成并轮换。
- SSH、面板、Docker API 不要暴露到公网。
- 只放行实际使用的 Xray 入口端口。