-
Notifications
You must be signed in to change notification settings - Fork 4.9k
Description
Integrity requirements
- I have read all the comments in the issue template and ensured that this issue meet the requirements.
- I confirm that I have read the documentation, understand the meaning of all the configuration items I wrote, and did not pile up seemingly useful options or default values.
- I provided the complete config and logs, rather than just providing the truncated parts based on my own judgment.
- I searched issues and did not find any similar issues.
- The problem can be successfully reproduced in the latest Release
Description
Reality suddenly stopped working with one of my internet connections. I'm reporting this as a potential bug since your slogan is "Xray, Penetrates Everything."
It looks like the protocol itself gets blocked by the government firewall. I suspect that the firewall modifies the TLS ClientHello during the connection, causing the Xray server to reject it. However, I'm not sure whether this is the real cause, this is just a hypothesis based on the symptoms. If you need more information to debug and fix, I'm ready to help.
What I've found:
- The website I use to mask my Xray server is accessible via the server’s IP and the blocking internet provider. That is, the connection is not blocked by the IP or the SNI.
- It happens on one of my internet connections and doesn't happen on another. I’m using the same device, the same client version, and the same server configuration. The only difference is the internet provider.
- The server is running the latest version of Xray (25.10.15).
- I tested with different client applications, but the issue persists across all of them.
- I didn't change the server or client configuration recently. This morning the connection worked for a short time, and then it stopped working completely. Though, rarely it works for a short time after conncting (this happened during the log collection).
- Changing the fragmentation settings in the client (length=40, interval=10, packets=5; length=10, interval=22, packets=10) didn't hlep.
- Changing domain names for SNI didn't help.
- Changing the fingerprints in the client settings didn't help.
- The server logs show multiple "failed to read client hello" messages with my IP. That is, the connection is not fully blocked.
- Changing the server IP, data center, and country made no difference either, except...
- When connecting through the same ISP to another Xray server located in my country (Russia), using the same config except for the SNI, the VPN works without issues. This suggests that only servers outside Russia are affected.
Let me know what I cando to collect more debug information for you.
Reproduction Method
You need to be under an ISP that blocks Reality like in my case. Just try to access Internet using Xray VLESS + Reality using the configurations provided by me.
Client config
Details
{
"api" : {
"listen" : "127.0.0.1:10085",
"services" : [
"HandlerService"
],
"tag" : "api"
},
"dns" : {
"queryStrategy" : "UseIPv4"
},
"inbounds" : [
{
"listen" : "127.0.0.1",
"port" : 10808,
"protocol" : "socks",
"settings" : {
"auth" : "noauth",
"udp" : true
},
"sniffing" : {
"destOverride" : [
"quic",
"tls",
"http"
],
"enabled" : true,
"excludedDomains" : [
],
"metadataOnly" : false,
"routeOnly" : true
},
"tag" : "socks-in"
},
{
"listen" : "127.0.0.1",
"port" : 10809,
"protocol" : "http",
"settings" : {
"auth" : "noauth",
"udp" : true
},
"sniffing" : {
"destOverride" : [
"quic",
"tls",
"http"
],
"enabled" : true,
"excludedDomains" : [
],
"metadataOnly" : false,
"routeOnly" : true
},
"tag" : "http"
},
{
"listen" : "127.0.0.1",
"port" : 10820,
"protocol" : "socks",
"settings" : {
"auth" : "noauth",
"udp" : true
},
"sniffing" : {
"destOverride" : [
"quic",
"tls",
"http"
],
"enabled" : true,
"excludedDomains" : [
],
"metadataOnly" : false,
"routeOnly" : true
},
"tag" : "socks-direct"
}
],
"log" : {
"access" : "\/Users\/freedom\/Library\/Group Containers\/group.su.ffg.happ\/Library\/Application Support\/Xray\/logs\/access",
"dnsLog" : true,
"loglevel" : "Debug"
},
"outbounds" : [
{
"protocol" : "vless",
"settings" : {
"vnext" : [
{
"address" : "4.3.2.1",
"port" : 443,
"users" : [
{
"encryption" : "none",
"flow" : "xtls-rprx-vision",
"id" : "947b2a27-d5ba-4df4-8e0c-571899511104",
"level" : 8,
"security" : "auto"
}
]
}
]
},
"streamSettings" : {
"network" : "tcp",
"realitySettings" : {
"fingerprint" : "chrome",
"mldsa65Verify" : "",
"publicKey" : "If7Xei16e5rjIJWqTElGLmdJ-qu5rP7IttdCDJ4GusY",
"serverName" : "www.google.com",
"shortId" : "37b4985385c55e4c",
"show" : false,
"spiderX" : ""
},
"security" : "reality",
"tcpSettings" : {
"header" : {
"request" : {
"headers" : {
"Host" : [
""
]
},
"method" : "GET",
"path" : [
""
]
},
"type" : "none"
}
}
},
"tag" : "proxy"
},
{
"protocol" : "freedom",
"tag" : "direct"
},
{
"protocol" : "blackhole",
"tag" : "block"
}
],
"policy" : {
"levels" : {
"8" : {
"bufferSize" : 3,
"connIdle" : 100,
"downlinkOnly" : 4,
"handshake" : 3,
"statsUserDownlink" : false,
"statsUserOnline" : false,
"statsUserUplink" : false,
"uplinkOnly" : 2
}
},
"system" : {
"statsInboundDownlink" : false,
"statsInboundUplink" : false,
"statsOutboundDownlink" : false,
"statsOutboundUplink" : false
}
},
"remarks" : "Test",
"routing" : {
"domainStrategy" : "AsIs",
"rules" : [
{
"inboundTag" : [
"socks-direct"
],
"outboundTag" : "direct"
}
]
}
}Server config
Details
{
"log": {
"loglevel": "debug",
"dnsLog": true
},
"routing": {
"rules": [],
"domainStrategy": "AsIs"
},
"inbounds": [
{
"port": 443,
"protocol": "vless",
"tag": "vless_tls",
"settings": {
"clients": [
{
"id": "947b2a27-d5ba-4df4-8e0c-571899511104",
"email": "user1@myserver",
"flow": "xtls-rprx-vision"
}
],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"show": false,
"dest": "www.google.com:443",
"xver": 0,
"serverNames": [
"www.google.com"
],
"privateKey": "iEsTlYHFGjuHrj3GDY6fo8q6s21ceCwb1g1D_NAS2X0",
"minClientVer": "",
"maxClientVer": "",
"maxTimeDiff": 0,
"shortIds": [
"0123456789abcdef"
]
}
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
}
],
"outbounds": [
{
"protocol": "freedom",
"tag": "direct"
},
{
"protocol": "blackhole",
"tag": "block"
}
]
}Client log
From Happ
2025/11/23 05:15:37.573902 [Warning] core: Xray 25.10.15 started
23.11.2025 05:15:37 XrayCoreStart - {"success":true} app: v3.5.2
23.11.2025 05:16:53 Tunnel stopped.
Stop reason: - userInitiated