-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
我对我的域名和通讯密钥,公私钥等进行了一些脱敏处理.
以下是我遇到的问题: 我要给一台节点机配置成Vless+Reality+xtls-rprx-vision,域名偷取addons.mozilla.org, 我成功让Xboard和XrayR进行了通信. 但是客户端V2rayN(已配置选择Xray作为核心)从Xboard拉取订阅时,拉取的节点实际无法上网(节点没有被ban,端口确实可以打开-因为我用Xray直接),报错信息如下.
尝试AI解答无果,遂来求助.
/XrayR-release# docker compose up
WARN[0004] /root/data/docker_data/XrayR-release/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
Attaching to xrayr-1
xrayr-1 | XrayR 0.9.4 (A Xray backend that supports many panels)
xrayr-1 | time="2025-12-18T09:55:13+08:00" level=info msg="Start the panel.." func="github.com/XrayR-project/XrayR/panel.(*Panel).Start" file="github.com/XrayR-project/XrayR/panel/panel.go:165"
xrayr-1 | 2025/12/18 09:55:13 [Debug] app/log: Logger started
xrayr-1 | 2025/12/18 09:55:13 [Info] app/dns: DNS: created localhost client
xrayr-1 | 2025/12/18 09:55:13 [Warning] core: Xray 1.8.20 started
xrayr-1 | 2025/12/18 09:55:17 [Debug] app/proxyman/inbound: creating stream worker on 0.0.0.0:443
xrayr-1 | 2025/12/18 09:55:17 [Info] transport/internet/tcp: listening TCP on 0.0.0.0:443
xrayr-1 | time="2025-12-18T09:55:17+08:00" level=info msg="Added 1 new users" func="github.com/XrayR-project/XrayR/service/controller.(*Controller).addNewUser" file="github.com/XrayR-project/XrayR/service/controller/controller.go:428" Host="https://mydomain.com" ID=1 Type=Vless
xrayr-1 | time="2025-12-18T09:55:17+08:00" level=info msg="Start node monitor periodic task" func="github.com/XrayR-project/XrayR/service/controller.(*Controller).Start" file="github.com/XrayR-project/XrayR/service/controller/controller.go:165" Host="https://mydomain.com" ID=1 Type=Vless
xrayr-1 | time="2025-12-18T09:55:17+08:00" level=info msg="Start user monitor periodic task" func="github.com/XrayR-project/XrayR/service/controller.(*Controller).Start" file="github.com/XrayR-project/XrayR/service/controller/controller.go:165" Host="https://mydomain.com ID=1 Type=Vless
xrayr-1 | time="2025-12-18T09:55:17+08:00" level=info msg="Start cert monitor periodic task" func="github.com/XrayR-project/XrayR/service/controller.(*Controller).Start" file="github.com/XrayR-project/XrayR/service/controller/controller.go:165" Host="https://mydomain.com" ID=1 Type=Vless
xrayr-1 | time="2025-12-18T09:56:18+08:00" level=info msg="0 user deleted, 0 user added" func="github.com/XrayR-project/XrayR/service/controller.(*Controller).nodeInfoMonitor" file="github.com/XrayR-project/XrayR/service/controller/controller.go:307" Host="https://mydomain.com" ID=1 Type=Vless
xrayr-1 | 2025/12/18 09:57:07 [Info] [427130925] proxy/vless/inbound: firstLen = 0
xrayr-1 | 2025/12/18 09:57:07 [Info] [427130925] app/proxyman/inbound: connection ends > proxy/vless/encoding: failed to read request version > EOF
xrayr-1 | time="2025-12-18T09:57:19+08:00" level=info msg="0 user deleted, 0 user added" func="github.com/XrayR-project/XrayR/service/controller.(*Controller).nodeInfoMonitor" file="github.com/XrayR-project/XrayR/service/controller/controller.go:307" Host="https://mydomain.com" ID=1 Type=Vless
xrayr-1 | 2025/12/18 09:57:19 183.162.123.45:7201 rejected proxy/vless/encoding: invalid request version
xrayr-1 | 2025/12/18 09:57:19 [Info] [3439812264] proxy/vless/inbound: firstLen = 517
xrayr-1 | 2025/12/18 09:57:19 [Info] [3439812264] app/proxyman/inbound: connection ends > proxy/vless/inbound: invalid request from 133.112.113.45:7201 > proxy/vless/encoding: invalid request version
xrayr-1 | 2025/12/18 09:57:19 183.162.123.45:7214 rejected proxy/vless/encoding: invalid request version
xrayr-1 | 2025/12/18 09:57:19 [Info] [4105195186] proxy/vless/inbound: firstLen = 517
xrayr-1 | 2025/12/18 09:57:19 [Info] [4105195186] app/proxyman/inbound: connection ends > proxy/vless/inbound: invalid request from 133.112.113.45:7214 > proxy/vless/encoding: invalid request version
xrayr-1 | 2025/12/18 09:57:20 183.162.123.45:7220 rejected proxy/vless/encoding: invalid request version
xrayr-1 | 2025/12/18 09:57:20 [Info] [1859829238] proxy/vless/inbound: firstLen = 517
xrayr-1 | 2025/12/18 09:57:20 [Info] [1859829238] app/proxyman/inbound: connection ends > proxy/vless/inbound: invalid request from 133.112.113.45:7220 > proxy/vless/encoding: invalid request version
xrayr-1 | 2025/12/18 09:57:20 183.162.123.45:7232 rejected proxy/vless/encoding: invalid request version
xrayr-1 | 2025/12/18 09:57:20 [Info] [3535529013] proxy/vless/inbound: firstLen = 517
xrayr-1 | 2025/12/18 09:57:20 [Info] [3535529013] app/proxyman/inbound: connection ends > proxy/vless/inbound: invalid request from 133.112.113.45:7232 > proxy/vless/encoding: invalid request version
xrayr-1 | 2025/12/18 09:57:21 183.162.123.45:7296 rejected proxy/vless/encoding: invalid request version
xrayr-1 | 2025/12/18 09:57:21 [Info] [3451090030] proxy/vless/inbound: firstLen = 517
xrayr-1 | 2025/12/18 09:57:21 [Info] [3451090030] app/proxyman/inbound: connection ends > proxy/vless/inbound: invalid request from 133.112.113.45:7296 > proxy/vless/encoding: invalid request versionxrayr-1 | time="2025-12-18T09:55:17+08:00" level=info msg="Added 1 new users" func="github.com/XrayR-project/XrayR/service/controller.(*Controller).addNewUser" file="github.com/XrayR-project/XrayR/service/controller/controller.go:428" Host="https://mydomain.com" ID=1 Type=Vless
这个日志表明确实是和我的xboard面板进行了通信,并且ID=1,Type=Vless
下面是我从Xboard用curl拉取的配置,因为我不知道怎么在Xboard中去看. curl命令是我在节点机上运行的.
下面这个命令是我要从NODE_ID=1这个标记拉取Xboard的配置,返回有意义的json,说明Xboard配置应当是正确的吧
HOST="https://mydomain.com"
KEY="E430F779xxxxxxxxxxxxC4F5E316672"
NODE_ID="1"
curl -s -X GET "${HOST}/api/v1/server/UniProxy/config?node_id=${NODE_ID}&node_type=vless"
-H "Token: ${KEY}"
| json_pp
{
"base_config" : {
"pull_interval" : 60,
"push_interval" : 60
},
"flow" : "xtls-rprx-vision",
"listen_ip" : "0.0.0.0",
"network" : "tcp",
"networkSettings" : null,
"protocol" : "vless",
"server_port" : 443,
"tls" : 2,
"tls_settings" : {
"allow_insecure" : false,
"private_key" : "MEgm7f3R_XHVKpiF432344324kmCWfPLDbkJaOS5GA",
"public_key" : "ZHHyXwLyn4PJ__2KUJpYCZze1211In_TvJ5QFxmNmkI",
"server_name" : "addons.mozilla.org",
"server_port" : "443",
"short_id" : "fsa012gez3fd12ef"
}
}
然后再看下UUID
HOST="https://mydomain.com"
KEY="E430F779xxxxxxxxxxxxC4F5E316672" # 记得换成新的
NODE_ID="1"
注意:这里把 config 改成了 user
curl -s -X GET "${HOST}/api/v1/server/UniProxy/user?node_id=${NODE_ID}&node_type=vless&token=${KEY}"
| json_pp
得到
{
"users" : [
{
"id" : 1,
"speed_limit" : null,
"uuid" : "0141ddbe-3d84-4eef-99d5-6bd36dd61e15"
}
]
}
然后我用这个uuid对应的订阅也肯定能从客户端V2ray中拉取到上面的节点信息吗,但是做ping测试或者连接,就报上面的日志 proxy/vless/encoding: invalid request version ,我向请教下哪里出了问题,很早以前我用XrayR对接过Xboard倒是挺好的. 是最近XrayR更新了吗,还是什么原因
我再补充一下我XrayR的docker yaml配置config/config.yml
/XrayR-release# cat docker-compose.yml
version: '3'
services:
xrayr:
# image: cloudorz/xrayr:latest
image: ghcr.io/xrayr-project/xrayr@sha256:ad16bfb5311221d6130c2f455ee447128e91587c941e65df82ccc7d487b50e77
volumes:
- ./config:/etc/XrayR/ # 映射配置文件夹
restart: always
environment:
- TZ=Asia/Shanghai
network_mode: host
/XrayR-release# cat config/config.yml
Log:
Level: debug # Log level: none, error, warning, info, debug
AccessPath: #/etc/XrayR/access.log # /etc/XrayR/access.Log
ErrorPath: #/etc/XrayR/error.log # /etc/XrayR/error.log
DnsConfigPath: # /etc/XrayR/dns.json # Path to dns config, check https://xtls.github.io/config/dns.html for help
RouteConfigPath: # /etc/XrayR/route.json # Path to route config, check https://xtls.github.io/config/routing.html for help
InboundConfigPath: # /etc/XrayR/custom_inbound.json # Path to custom inbound config, check https://xtls.github.io/config/inbound.html for help
OutboundConfigPath: # /etc/XrayR/custom_outbound.json # Path to custom outbound config, check https://xtls.github.io/config/outbound.html for help
ConnectionConfig:
Handshake: 4 # Handshake time limit, Second
ConnIdle: 30 # Connection idle time limit, Second
UplinkOnly: 2 # Time limit when the connection downstream is closed, Second
DownlinkOnly: 4 # Time limit when the connection is closed after the uplink is closed, Second
BufferSize: 64 # The internal cache size of each connection, kB
Nodes:
-
PanelType: "NewV2board" # Panel type: SSpanel, V2board, NewV2board, PMpanel, Proxypanel, V2RaySocks
ApiConfig:
ApiHost: "https://mydomain.com"
ApiKey: "E430F779xxxxxxxxxxxxC4F5E316672"
NodeID: 1
NodeType: Vless # Node type: V2ray, Vmess, Vless, Shadowsocks, Trojan, Shadowsocks-Plugin
Timeout: 30 # Timeout for the api request
EnableVless: true # Enable Vless for V2ray Type
EnableXTLS: true # Enable XTLS for V2ray and Trojan
SpeedLimit: 0 # Mbps, Local settings will replace remote settings, 0 means disable
DeviceLimit: 0 # Local settings will replace remote settings, 0 means disable
RuleListPath: # /etc/XrayR/rulelist Path to local rulelist file
ControllerConfig:
ListenIP: 0.0.0.0 # IP address you want to listen
SendIP: 0.0.0.0 # IP address you want to send pacakage
UpdatePeriodic: 60 # Time to update the nodeinfo, how many sec.
EnableDNS: false # Use custom DNS config, Please ensure that you set the dns.json well
DNSType: AsIs # AsIs, UseIP, UseIPv4, UseIPv6, DNS strategy
EnableProxyProtocol: false # Only works for WebSocket and TCP
AutoSpeedLimitConfig:
Limit: 0 # Warned speed. Set to 0 to disable AutoSpeedLimit (mbps)
WarnTimes: 0 # After (WarnTimes) consecutive warnings, the user will be limited. Set to 0 to punish overspeed user immediately.
LimitSpeed: 0 # The speedlimit of a limited user (unit: mbps)
LimitDuration: 0 # How many minutes will the limiting last (unit: minute)
GlobalDeviceLimitConfig:
Enable: false # Enable the global device limit of a user
RedisAddr: 127.0.0.1:6379 # The redis server address
RedisPassword: YOUR PASSWORD # Redis password
RedisDB: 0 # Redis DB
Timeout: 5 # Timeout for redis request
Expiry: 60 # Expiry time (second)
EnableFallback: false # Only support for Trojan and Vless
FallBackConfigs: # Support multiple fallbacks
-
SNI: # TLS SNI(Server Name Indication), Empty for any
Alpn: # Alpn, Empty for any
Path: # HTTP PATH, Empty for any
Dest: 80 # Required, Destination of fallback, check https://xtls.github.io/config/features/fallback.html for details.
ProxyProtocolVer: 0 # Send PROXY protocol version, 0 for dsable
CertConfig:
CertMode: none # Option about how to get certificate: none, file, http, tls, dns. Choose "none" will forcedly disable the tls config.
CertDomain: "node1.test.com" # Domain to cert
CertFile: /etc/XrayR/cert/node1.test.com.cert # Provided if the CertMode is file
KeyFile: /etc/XrayR/cert/node1.test.com.key
Provider: alidns # DNS cert provider, Get the full support list here: https://go-acme.github.io/lego/dns/
Email: test@me.com
DNSEnv: # DNS ENV option used by DNS provider
ALICLOUD_ACCESS_KEY: aaa
ALICLOUD_SECRET_KEY: bbb