跳到主要内容

安装节点

源代码

面板 — xray-panel/backend · 节点 — xray-panel/node · 订阅页面 — xray-panel/subscription-page

节点是代理服务器上的容器。它不会主动连接任何地方:面板通过 HTTPS 以 mutual TLS 和 JWT 访问它。

1. 获取 SECRET_KEY​

在面板中:Nodes → 创建节点。面板会显示 SECRET_KEY —— 一长串 base64 字符串。请完整复制:它只能使用一次。

其中包含证书和密钥:CA、节点证书、私钥和 JWT 公钥。节点在启动时会校验它们, 如果对不上就拒绝运行。

2. 启动​

docker run -d \
--name xpanel-node \
--restart unless-stopped \
--network host \
--cap-add NET_ADMIN \
--ulimit nofile=1048576:1048576 \
-e NODE_PORT=2222 \
-e SECRET_KEY="<粘贴 SECRET_KEY>" \
ghcr.io/xray-panel/node:latest

同样的配置写成 compose:

docker-compose.yml
services:
xpanelnode:
image: ghcr.io/xray-panel/node:latest
container_name: xpanel-node
restart: unless-stopped
network_mode: host
cap_add:
- NET_ADMIN
ulimits:
nofile:
soft: 1048576
hard: 1048576
environment:
- NODE_PORT=2222
- SECRET_KEY=${SECRET_KEY}
选项作用
--network hostXray 自行监听端口;端口转发会破坏真实客户端 IP 的识别
--cap-add NET_ADMIN插件需要(通过 nftables 屏蔽种子下载);不用插件时可以去掉
--ulimit nofile为大量连接设置较高的文件描述符上限

3. 检查​

节点启动时会在日志中打印 SECRET_KEY 校验报告和内核版本:

docker logs -f xpanel-node
Xray version: Xray 26.9.9

面板应在一分钟内将节点显示为已连接。如果节点没有出现:

  • 检查 NODE_PORT 是否能从面板服务器访问 (nc -vz <节点 IP> 2222),而不是从你的浏览器访问;
  • 确认 SECRET_KEY 已完整复制,没有换行;
  • 查看容器日志 —— 密钥错误时节点会写出拒绝原因。

4. 插件​

节点插件(例如 torrent-blocker)在面板的节点页面中安装。 使用 nftables 的插件需要 NET_ADMIN 和带 nftables 模块的内核。 如果不使用插件,可以不添加该参数。

5. Xray 日志​

docker exec -it xpanel-node xlogs

清理在面板的 Logs 页面中进行:在「Node system logs」区域点击 「Clear logs」按钮。节点会轮转文件,Xray 不会重启,流量也不会中断。 手动执行:

docker exec -it xpanel-node cli --clear-logs

多个节点​

请逐个添加节点:每个节点都有各自的 SECRET_KEY 和各自的证书。 不支持在多台服务器之间共用同一个密钥 —— 一旦其中一台被攻破, 就必须重新签发全部证书。