{
"log": {
"access": "none",
"dnsLog": false,
"error": "",
"loglevel": "warning",
"maskAddress": ""
},
"routing": {
"domainStrategy": "AsIs",
"rules": [
{
"type": "field",
"inboundTag": [
"api"
],
"outboundTag": "api"
},
{
"type": "field",
"outboundTag": "blocked",
"ip": [
"geoip:private"
]
},
{
"type": "field",
"outboundTag": "blocked",
"protocol": [
"bittorrent"
]
}
]
},
"dns": null,
"inbounds": [
{
"listen": "127.0.0.1",
"port": 62789,
"protocol": "tunnel",
"settings": {
"address": "127.0.0.1"
},
"streamSettings": null,
"tag": "api",
"sniffing": null
},
{
"listen": "0.0.0.0",
"port": 44572,
"protocol": "hysteria",
"settings": {
"clients": [
{
"auth": "redacted",
"email": "redacted"
}
],
"version": 2
},
"streamSettings": {
"hysteriaSettings": {
"auth": "",
"udpIdleTimeout": 60,
"version": 2
},
"network": "hysteria",
"security": "tls",
"tlsSettings": {
"alpn": [
"h3"
],
"certificates": [
{
"buildChain": false,
"certificateFile": "/root/cert/ip/fullchain.pem",
"keyFile": "/root/cert/ip/privkey.pem",
"oneTimeLoading": false,
"usage": "encipherment"
}
],
"cipherSuites": "",
"disableSystemRoot": false,
"echForceQuery": "none",
"echServerKeys": "",
"enableSessionResumption": false,
"maxVersion": "1.3",
"minVersion": "1.2",
"rejectUnknownSni": false,
"serverName": ""
}
},
"tag": "inbound-44572",
"sniffing": {
"enabled": false,
"destOverride": [
"http",
"tls",
"quic",
"fakedns"
],
"metadataOnly": false,
"routeOnly": false
}
}
],
"outbounds": [
{
"tag": "direct",
"protocol": "freedom",
"settings": {
"domainStrategy": "AsIs",
"redirect": "",
"noises": []
}
},
{
"tag": "blocked",
"protocol": "blackhole",
"settings": {}
}
],
"transport": null,
"policy": {
"levels": {
"0": {
"statsUserDownlink": true,
"statsUserUplink": true
}
},
"system": {
"statsInboundDownlink": true,
"statsInboundUplink": true,
"statsOutboundDownlink": false,
"statsOutboundUplink": false
}
},
"api": {
"tag": "api",
"services": [
"HandlerService",
"LoggerService",
"StatsService"
]
},
"stats": {},
"reverse": null,
"fakedns": null,
"observatory": null,
"burstObservatory": null,
"metrics": {
"tag": "metrics_out",
"listen": "127.0.0.1:11111"
}
}
Integrity requirements
Description
Summary
Discord voice works normally through Xray Hysteria2 inbound, but Discord screen share / video stream has heavy lag and stuttering when the client uses TUN mode.
The same VPS and the same client-side network were tested with sing-box / Hiddify Hysteria2, and Discord screen share worked normally there.
The issue appears only with Xray-core Hysteria2 inbound.
Environment
Server:
Client:
Observed behavior:
Important comparison
The same VPS was tested with Hiddify / sing-box Hysteria2.
Result:
So this does not look like a VPS, CPU, RAM, swap, or provider network issue.
Additional clarification
I also tested Hysteria2 in Hiddify Panel when it was using Xray-core for Hysteria2.
In that case, Discord screen share / video stream also had the same lag.
When Hysteria2 was handled by sing-box / Hiddify-core on the same VPS, Discord screen share worked normally.
So the issue seems related specifically to Xray-core Hysteria2 handling, not to 3x-ui itself and not to the VPS.
The lag is visible on the viewer side: other Discord users who watch my screen share see heavy stuttering / lag.
Discord voice stays normal at the same time.
I like Xray-core and would prefer to continue using it.
I am reporting this because I would like Hysteria2 in Xray-core to work reliably for Discord screen sharing / video streaming, the same way it works with sing-box Hysteria2 in my tests.
Reproduction Method
Create a Hysteria2 inbound in Xray-core / 3x-ui with TLS and ALPN h3.
Connect from a Windows 11 client using Throne, INCY, Happ, Hiddify
Enable TUN mode in the client.
Route Discord traffic through the Hysteria2 outbound.
Join a Discord voice channel.
Start Discord screen share or video stream.
Observe the result:
Repeat the same test on the same VPS with sing-box / Hiddify Hysteria2.
Observe the comparison:
Client config
Details
Server config
Details
Client log
Details
Server log
Details
CPU/RAM were not exhausted