通用 Linux 服务器部署 Xray (VLESS + REALITY) 节点标准教程
分类: 技术 | 发布于:
提示1:这篇文章已经假定您拥有合适的网络环境、支付手段、收信配置。
提示2:请您严格遵守相关法律,并将服务器做备案与合法化处理。如您因未遵守本条提示产生了任何其他问题(包括但不限于法律问题),本站及其所有人将不承担对于您过失行为的任何责任。
目标
在 Linux 服务器上安装并配置 Xray-core,使用 VLESS 协议和 REALITY 安全特性,实现网络代理服务。
适用环境
- 任何 VPS 或物理服务器
- 操作系统: Linux (本教程命令主要基于 Ubuntu/Debian,会提供 CentOS/Fedora 等系统的命令提示)
- 具有 root 或 sudo 权限的用户账户
- 可通过 SSH 远程访问服务器
前置要求
- 服务器拥有一个公网 IPv4 地址。
-
防火墙配置: 确保所有相关防火墙已允许外部访问 Xray 服务所需的 TCP 端口(本教程默认使用 443)以及 SSH 端口(TCP 22)。这可能包括:
- 云服务商防火墙/安全组: 如果你使用 AWS, GCP, Azure, DigitalOcean, Vultr 等云服务商,你需要在他们的管理控制台中配置防火墙/安全组规则,放行所需端口的入站流量(例如,TCP 443 端口来源设为 0.0.0.0/0,TCP 22 端口来源限制为你的 IP 地址)。
- 操作系统防火墙: 服务器操作系统自带的防火墙(如 ufw, firewalld)也需要配置。具体步骤见教程 Step 6。
步骤 1: 系统环境准备
1.1. 更新系统软件包:
对于 Ubuntu/Debian 系统:
sudo apt update && sudo apt upgrade -y
对于 CentOS/RHEL/Fedora 系统:
sudo yum update -y # 或者 sudo dnf update -y (适用于较新 Fedora/RHEL)
1.2. 安装必要工具:
对于 Ubuntu/Debian 系统:
sudo apt install curl wget socat unzip -y
对于 CentOS/RHEL/Fedora 系统:
sudo yum install curl wget socat unzip -y # 或者 sudo dnf install curl wget socat unzip -y
步骤 2: 安装 Xray-core
使用官方提供的安装脚本进行安装。该脚本通常能兼容多数主流 Linux 发行版(如 Ubuntu, Debian, CentOS, Fedora 等)。
sudo bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
脚本会自动检测系统并进行安装,同时设置 systemd 服务。
- Xray 主程序路径:
/usr/local/bin/xray
- 配置文件目录:
/usr/local/etc/xray/
- 服务名称:
xray
步骤 3: 生成所需参数
VLESS + REALITY 配置需要以下独一无二的参数,请在服务器上生成并务必安全保存。
3.1. 生成 UUID (用户 ID):
/usr/local/bin/xray uuid
复制输出的 UUID 字符串 (格式: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)。将其记为 YOUR_UUID
。
3.2. 生成 REALITY 密钥对:
/usr/local/bin/xray x25519
复制输出的 Private key:
和 Public key:
。将私钥记为 YOUR_PRIVATE_KEY
,公钥记为 YOUR_PUBLIC_KEY
。
3.3. (可选) 生成 Short ID:
openssl rand -hex 8
生成一个或多个 16 进制短 ID。将其记为 YOUR_SHORT_ID
(如果生成多个,则区分)。如果不用,则配置中保持 ""
。
步骤 4: 配置 Xray 服务器 (config.json)
4.1. 编辑配置文件:
sudo nano /usr/local/etc/xray/config.json
(如果你偏好 vim,请使用 sudo vim ...
)
4.2. 写入配置:
删除文件内所有内容,粘贴以下 JSON 模板,并替换其中的占位符。
{
"log": {
"loglevel": "warning"
},
"api": {
"tag": "api",
"services": [
"StatsService"
]
},
"routing": {
"rules": [
{
"type": "field",
"inboundTag": [
"api"
],
"outboundTag": "api"
}
]
},
"policy": {
"levels": {
"0": {
"statsUserUplink": true,
"statsUserDownlink": true
}
},
"system": {
"statsInboundUplink": true,
"statsInboundDownlink": true
}
},
"inbounds": [
{
"listen": "0.0.0.0",
"port": 443, // **确保此端口已在所有防火墙中放行**
"protocol": "vless",
"settings": {
"clients": [
{
"id": "YOUR_UUID", // ***替换为你的 UUID***
"flow": ""
}
],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"show": false,
"dest": "www.microsoft.com:443", // **目标伪装域名 (可按需更换)**
"xver": 0,
"serverNames": [
"www.microsoft.com" // **需包含 dest 中的域名**
],
"privateKey": "YOUR_PRIVATE_KEY", // ***替换为你的 Private Key***
"minClientVer": "",
"maxClientVer": "",
"maxTimeDiff": 60000,
"shortIds": [
"" // ***替换为你的 Short ID(s),或保持 ""***
],
"fingerprint": "chrome" // **TLS 指纹 (需与客户端一致)**
}
},
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls", "quic"]
}
},
{
"listen": "127.0.0.1",
"port": 62789,
"protocol": "dokodemo-door",
"settings": {
"address": "127.0.0.1"
},
"tag": "api"
}
],
"outbounds": [
{
"protocol": "freedom",
"tag": "direct"
},
{
"protocol": "blackhole",
"tag": "block"
},
{
"protocol": "freedom",
"settings": {},
"tag": "api"
}
],
"stats": {}
}
4.3. 保存并退出:
(在 nano 中: Ctrl + X
, Y
, Enter
)。
步骤 5: 管理 Xray 服务
以下命令适用于使用 systemd 的系统 (目前绝大多数主流 Linux 发行版)。
5.1. 测试配置:
sudo /usr/local/bin/xray -test -config /usr/local/etc/xray/config.json
确保输出 Configuration OK.
。
5.2. 重启 Xray 服务:
sudo systemctl restart xray
5.3. 设置开机自启:
sudo systemctl enable xray
5.4. 检查运行状态:
sudo systemctl status xray
确保状态是 active (running)
。
步骤 6: 配置操作系统防火墙
重要: 你必须同时确保云服务商的防火墙(如果使用云服务器)和服务器操作系统的防火墙都允许 Xray 端口(例如 443)的入站 TCP 连接。云服务商防火墙请在其网页控制台配置。
以下是配置操作系统防火墙的常用方法:
6.1. 对于 Ubuntu/Debian (使用 ufw):
检查状态: sudo ufw status
如果是 inactive
,则无需操作。
如果是 active
,确保端口已允许。如果未允许,执行:
sudo ufw allow 443/tcp
sudo ufw reload
6.2. 对于 CentOS/RHEL/Fedora (使用 firewalld):
检查状态: sudo systemctl status firewalld
如果是 inactive
,则无需操作 (除非你想启用它)。
如果是 active
,执行以下命令永久允许端口 443 并重载规则:
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload
步骤 7: 客户端配置参数汇总
你需要以下信息来配置你的客户端软件:
- 类型 (Type/Protocol): VLESS
- 地址 (Address/Host):
YOUR_SERVER_IP
(你的服务器的公网 IP 地址) - 端口 (Port):
443
(或你在 config.json 中设置的端口) - 用户 ID (UUID):
YOUR_UUID
(步骤 3.1 生成的 UUID) - 加密 (Encryption):
none
- 传输协议 (Network):
tcp
- 安全 (Security/Type):
reality
- SNI (Server Name Indication / Host / Peer):
www.microsoft.com
(或你在服务器配置中使用的域名) - 公钥 (Public Key / pbk):
YOUR_PUBLIC_KEY
(步骤 3.2 生成的 Public Key) - 指纹 (Fingerprint / fp):
chrome
(或你在服务器配置中使用的指纹) - Short ID (sid): (与服务器 shortIds 配置匹配,如果服务器是
[""]
,客户端通常留空) - (可选) Flow: 通常留空
- (可选) SpiderX / Dest:
www.microsoft.com:443
(与服务器 dest 配置匹配)
部署完成。请使用这些参数配置客户端并测试连接。