Ubuntu 24.04 上部署 Xray-core VLESS+REALITY 节点
面向首次在 Ubuntu 24.04 LTS VPS 上部署节点的读者,介绍 Xray-core 安装、连接参数生成、服务端与防火墙配置、客户端连接,以及通过服务状态、日志和端口检查排查问题。
这份 VLESS+REALITY 节点部署教程适用于有公网 IPv4、SSH 登录权限和管理员权限的 Ubuntu 24.04 LTS VPS:安装 Xray-core,生成连接参数,配置服务端并开放 TCP 端口,最后在支持 VLESS+REALITY 的客户端中填写参数并验证连接。以下流程只涉及自建节点,不涉及站内订阅。
准备 VPS 与访问权限
确认 VPS 运行 Ubuntu 24.04 LTS、拥有公网 IPv4,且你能通过 SSH 执行 sudo 命令。下文以 TCP 443 作为监听端口;如果该端口已被其他服务占用,应先换一个可用端口,并在服务端、防火墙和客户端保持一致。开始操作前保留当前 SSH 会话,尤其不要在确认 SSH 放行规则之前启用防火墙。
安装 Xray-core
按 Xray 官方安装脚本 的方式安装。先准备 curl 和 openssl,再运行安装命令;完成后检查版本。脚本会从网络下载程序,运行前应确认所访问的是 XTLS 项目仓库。
sudo apt update
sudo apt install -y curl openssl
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
/usr/local/bin/xray version版本命令应显示已安装的 Xray-core 版本。若找不到可执行文件,先查看安装命令的报错及网络下载情况,不要继续写配置。下文使用安装脚本对应的配置路径 /usr/local/etc/xray/config.json;若你的安装方式不同,以实际服务文件中的配置路径为准。
生成 UUID、密钥和 shortId
分别生成用户 UUID、X25519 密钥对和 shortId。X25519 输出中的私钥只写入服务端配置;公钥供客户端填写。UUID、shortId 和公钥也需要记录下来,避免从截图或手工重输时遗漏字符。
/usr/local/bin/xray uuid
/usr/local/bin/xray x25519
openssl rand -hex 8三条命令应分别给出 UUID、密钥对和一段十六进制 shortId。若 X25519 命令不受当前版本支持,先检查安装的程序是否为 XTLS/Xray-core 及其版本,不要改用其他协议的密钥。不要把私钥放入客户端或分享给他人。
配置 VLESS+REALITY 入站
用 sudo 编辑 /usr/local/etc/xray/config.json,写入以下最小服务端配置。将 YOUR_UUID、YOUR_PRIVATE_KEY 和 YOUR_SHORT_ID 替换为刚生成的值,不保留尖括号或额外空格。示例采用 TCP、VLESS 和 xtls-rprx-vision;REALITY 的目标与 serverNames 均使用 www.microsoft.com。字段关系可对照 REALITY 项目说明。
{
"log": {
"loglevel": "warning"
},
"inbounds": [
{
"listen": "0.0.0.0",
"port": 443,
"protocol": "vless",
"settings": {
"clients": [
{
"id": "YOUR_UUID",
"flow": "xtls-rprx-vision"
}
],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"show": false,
"dest": "www.microsoft.com:443",
"xver": 0,
"serverNames": ["www.microsoft.com"],
"privateKey": "YOUR_PRIVATE_KEY",
"shortIds": ["YOUR_SHORT_ID"]
}
}
}
],
"outbounds": [
{
"protocol": "freedom"
}
]
}其中 port 是客户端连接 VPS 的端口;dest 是服务端 REALITY 目标,serverNames 列出客户端可填写的 serverName。客户端必须使用同一个 UUID、flow、serverName 和 shortId,并填写与服务端私钥配对的公钥。修改目标域名时,不要只改其中一个字段。
检查配置、启动服务并放行端口
先检查配置,再启动服务并查看状态。检查通过应无配置错误;服务状态应为 active。若失败,先看日志中的字段或端口报错,再检查占用情况,不要反复重启。
sudo /usr/local/bin/xray run -test -config /usr/local/etc/xray/config.json
sudo systemctl enable --now xray
sudo systemctl status xray
sudo journalctl -u xray -n 50 --no-pager
sudo ss -lntp | grep ':443'确认服务正在监听所选端口后,再处理防火墙。若使用 UFW 且 SSH 使用默认 22 端口,可按下列命令放行;SSH 使用自定义端口时,把第一条规则改为实际端口。执行 enable 前核对规则,并保留现有 SSH 会话。VPS 所在云平台若另设安全组,也须允许该 TCP 端口入站。
sudo ufw allow 22/tcp
sudo ufw allow 443/tcp
sudo ufw status verbose
sudo ufw enable
sudo ufw status verbose如果 UFW 原本已启用,只需补充缺少的规则。开放端口后,应能在规则中看到 SSH 端口和节点端口;若无法从外部连接,而服务已监听,继续检查云平台安全组、公网 IPv4 是否填对,以及本地网络能否访问该端口。
填写客户端连接信息
在明确支持 VLESS+REALITY、TCP 和 xtls-rprx-vision 的客户端中手动新增 VLESS 节点。不同版本的入口名称可能是“新增服务器”“手动配置”或“导入链接”;找不到 REALITY、公钥或 flow 字段时,先查该客户端当前版本的协议支持情况,不要把参数填进普通 TLS 节点。
地址:VPS 的公网 IPv4;端口:服务端配置的 443。
用户 ID:生成的 UUID;加密:none;传输:TCP;flow:xtls-rprx-vision。
安全类型:REALITY;serverName 或 SNI:www.microsoft.com;公钥:X25519 输出的公钥;shortId:生成的十六进制值。
若客户端要求填写 fingerprint,可选择其提供的 chrome 选项;客户端没有相应选项或连接失败时,核对其 REALITY 支持说明和实际字段名称。
支持 VLESS 分享链接导入的客户端,也可尝试下面的格式。替换 YOUR_UUID、VPS_IPV4、YOUR_PUBLIC_KEY 和 YOUR_SHORT_ID;这是手动节点分享链接,不是订阅地址。导入后仍应逐项查看客户端解析出的字段,尤其是 security、flow、sni、pbk 和 sid。
vless://YOUR_UUID@VPS_IPV4:443?encryption=none&flow=xtls-rprx-vision&security=reality&sni=www.microsoft.com&fp=chrome&pbk=YOUR_PUBLIC_KEY&sid=YOUR_SHORT_ID&type=tcp#MyReality验证连接与排查
客户端连接后,用需要经过该客户端代理的应用访问一个网页。仅显示“已连接”不足以证明流量已正常转发;同时检查客户端是否启用了相应的系统代理或 VPN 模式。
若服务无法启动,运行配置检查并查看 journalctl 日志。优先核对 JSON 格式、私钥是否误填为公钥,以及 443 端口是否已被其他进程占用。
若服务运行但客户端超时,检查 ss 是否显示监听、UFW 规则、云平台安全组、公网 IPv4 和客户端端口。监听正常不代表外部网络一定可达。
若端口可达但仍无法连接,逐项比对 UUID、flow、serverName、公钥、shortId、传输类型和安全类型;尤其不要把服务端私钥填入客户端。
每次修改服务端配置后,重新运行配置检查,再重启并复查服务状态和日志;只修改客户端字段时,无需重启服务端。
sudo /usr/local/bin/xray run -test -config /usr/local/etc/xray/config.json
sudo systemctl restart xray
sudo systemctl status xray
sudo journalctl -u xray -n 50 --no-pager继续阅读
需要更多帮助时,可以查看更多使用指南,或前往注册页面开始使用。