From 6e1b94908185bece6423328ac16eb65c49146126 Mon Sep 17 00:00:00 2001 From: mhsanaei Date: Mon, 28 Jul 2025 13:45:47 +0200 Subject: [PATCH 01/11] Reality: min & max client ver --- web/assets/js/model/inbound.js | 16 ++++++++-------- web/html/form/reality_settings.html | 10 ++++------ 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/web/assets/js/model/inbound.js b/web/assets/js/model/inbound.js index 56c20b69..141a1fa4 100644 --- a/web/assets/js/model/inbound.js +++ b/web/assets/js/model/inbound.js @@ -728,8 +728,8 @@ class RealityStreamSettings extends XrayCommonClass { dest = 'yahoo.com:443', serverNames = 'yahoo.com,www.yahoo.com', privateKey = '', - minClient = '', - maxClient = '', + minClientVer = '', + maxClientVer = '', maxTimediff = 0, shortIds = RandomUtil.randomShortIds(), mldsa65Seed = '', @@ -741,8 +741,8 @@ class RealityStreamSettings extends XrayCommonClass { this.dest = dest; this.serverNames = Array.isArray(serverNames) ? serverNames.join(",") : serverNames; this.privateKey = privateKey; - this.minClient = minClient; - this.maxClient = maxClient; + this.minClientVer = minClientVer; + this.maxClientVer = maxClientVer; this.maxTimediff = maxTimediff; this.shortIds = Array.isArray(shortIds) ? shortIds.join(",") : shortIds; this.mldsa65Seed = mldsa65Seed; @@ -766,8 +766,8 @@ class RealityStreamSettings extends XrayCommonClass { json.dest, json.serverNames, json.privateKey, - json.minClient, - json.maxClient, + json.minClientVer, + json.maxClientVer, json.maxTimediff, json.shortIds, json.mldsa65Seed, @@ -782,8 +782,8 @@ class RealityStreamSettings extends XrayCommonClass { dest: this.dest, serverNames: this.serverNames.split(","), privateKey: this.privateKey, - minClient: this.minClient, - maxClient: this.maxClient, + minClientVer: this.minClientVer, + maxClientVer: this.maxClientVer, maxTimediff: this.maxTimediff, shortIds: this.shortIds.split(","), mldsa65Seed: this.mldsa65Seed, diff --git a/web/html/form/reality_settings.html b/web/html/form/reality_settings.html index aebb6c42..49c05ac0 100644 --- a/web/html/form/reality_settings.html +++ b/web/html/form/reality_settings.html @@ -21,14 +21,12 @@ - From f1b7944828195a937b2f5a8d22b614b8e663c799 Mon Sep 17 00:00:00 2001 From: mhsanaei Date: Sun, 3 Aug 2025 12:01:49 +0200 Subject: [PATCH 03/11] pqv: mldsa65Verify --- web/assets/js/model/inbound.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/web/assets/js/model/inbound.js b/web/assets/js/model/inbound.js index 141a1fa4..6c299047 100644 --- a/web/assets/js/model/inbound.js +++ b/web/assets/js/model/inbound.js @@ -725,8 +725,8 @@ class RealityStreamSettings extends XrayCommonClass { constructor( show = false, xver = 0, - dest = 'yahoo.com:443', - serverNames = 'yahoo.com,www.yahoo.com', + dest = 'google.com:443', + serverNames = 'google.com,www.google.com', privateKey = '', minClientVer = '', maxClientVer = '', @@ -1385,6 +1385,7 @@ class Inbound extends XrayCommonClass { params.set("security", "reality"); params.set("pbk", this.stream.reality.settings.publicKey); params.set("fp", this.stream.reality.settings.fingerprint); + params.set("pqv", this.stream.reality.settings.mldsa65Verify); if (!ObjectUtil.isArrEmpty(this.stream.reality.serverNames)) { params.set("sni", this.stream.reality.serverNames.split(",")[0]); } @@ -1559,6 +1560,7 @@ class Inbound extends XrayCommonClass { params.set("security", "reality"); params.set("pbk", this.stream.reality.settings.publicKey); params.set("fp", this.stream.reality.settings.fingerprint); + params.set("pqv", this.stream.reality.settings.mldsa65Verify); if (!ObjectUtil.isArrEmpty(this.stream.reality.serverNames)) { params.set("sni", this.stream.reality.serverNames.split(",")[0]); } From c6062eb15c988ae0b4e19842a15b332ea7f0c556 Mon Sep 17 00:00:00 2001 From: mhsanaei Date: Sun, 3 Aug 2025 12:09:37 +0200 Subject: [PATCH 04/11] outbound: mldsa65Verify --- web/assets/js/model/outbound.js | 9 +++++++-- web/html/form/outbound.html | 3 +++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/web/assets/js/model/outbound.js b/web/assets/js/model/outbound.js index 89a11652..03569b00 100644 --- a/web/assets/js/model/outbound.js +++ b/web/assets/js/model/outbound.js @@ -388,7 +388,8 @@ class RealityStreamSettings extends CommonClass { fingerprint = '', serverName = '', shortId = '', - spiderX = '/' + spiderX = '', + mldsa65Verify = '' ) { super(); this.publicKey = publicKey; @@ -396,6 +397,7 @@ class RealityStreamSettings extends CommonClass { this.serverName = serverName; this.shortId = shortId this.spiderX = spiderX; + this.mldsa65Verify = mldsa65Verify; } static fromJson(json = {}) { return new RealityStreamSettings( @@ -404,6 +406,7 @@ class RealityStreamSettings extends CommonClass { json.serverName, json.shortId, json.spiderX, + json.mldsa65Verify ); } toJson() { @@ -413,6 +416,7 @@ class RealityStreamSettings extends CommonClass { serverName: this.serverName, shortId: this.shortId, spiderX: this.spiderX, + mldsa65Verify: this.mldsa65Verify }; } }; @@ -787,7 +791,8 @@ class Outbound extends CommonClass { let sni = url.searchParams.get('sni') ?? ''; let sid = url.searchParams.get('sid') ?? ''; let spx = url.searchParams.get('spx') ?? ''; - stream.reality = new RealityStreamSettings(pbk, fp, sni, sid, spx); + let pqv = url.searchParams.get('pqv') ?? ''; + stream.reality = new RealityStreamSettings(pbk, fp, sni, sid, spx, pqv); } const regex = /([^@]+):\/\/([^@]+)@(.+):(\d+)(.*)$/; diff --git a/web/html/form/outbound.html b/web/html/form/outbound.html index 5069c51b..4b15b22c 100644 --- a/web/html/form/outbound.html +++ b/web/html/form/outbound.html @@ -452,6 +452,9 @@ + + + From 30264043f8321717bc50dc71546fa34a6cebe1b6 Mon Sep 17 00:00:00 2001 From: mhsanaei Date: Sun, 3 Aug 2025 12:22:06 +0200 Subject: [PATCH 05/11] Xray core: old version removed --- web/service/server.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/service/server.go b/web/service/server.go index 1bd8a55d..e75a97b8 100644 --- a/web/service/server.go +++ b/web/service/server.go @@ -329,7 +329,7 @@ func (s *ServerService) GetXrayVersions() ([]string, error) { continue } - if major > 25 || (major == 25 && minor > 6) || (major == 25 && minor == 6 && patch >= 8) { + if major > 25 || (major == 25 && minor > 7) || (major == 25 && minor == 7 && patch >= 26) { versions = append(versions, release.TagName) } } From 73a5722cca0b4c06f58630ace5d90f36dc544833 Mon Sep 17 00:00:00 2001 From: mhsanaei Date: Sun, 3 Aug 2025 12:22:28 +0200 Subject: [PATCH 06/11] v2.6.3 --- config/version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/version b/config/version index d5724cd4..bd4053bf 100644 --- a/config/version +++ b/config/version @@ -1 +1 @@ -2.6.2 \ No newline at end of file +2.6.3 \ No newline at end of file From a4c4f9efb3e896c8634b8746aadfe4b1446242e2 Mon Sep 17 00:00:00 2001 From: fgsfds <4870330+fgsfds@users.noreply.github.com> Date: Mon, 4 Aug 2025 03:45:50 +0500 Subject: [PATCH 07/11] kill process instead of sending SIGTERM on Windows (#3304) --- xray/process.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/xray/process.go b/xray/process.go index 335ad9c1..21ca5223 100644 --- a/xray/process.go +++ b/xray/process.go @@ -239,7 +239,12 @@ func (p *process) Stop() error { if !p.IsRunning() { return errors.New("xray is not running") } - return p.cmd.Process.Signal(syscall.SIGTERM) + + if runtime.GOOS == "windows" { + return p.cmd.Process.Kill() + } else { + return p.cmd.Process.Signal(syscall.SIGTERM) + } } func writeCrashReport(m []byte) error { From 0d595f56e4e320fbe529be647acf273025af3537 Mon Sep 17 00:00:00 2001 From: mhsanaei Date: Mon, 4 Aug 2025 00:57:06 +0200 Subject: [PATCH 08/11] change a-input to a-textarea --- web/html/form/outbound.html | 8 ++++---- web/html/form/reality_settings.html | 8 ++++---- web/html/form/tls_settings.html | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/web/html/form/outbound.html b/web/html/form/outbound.html index 4b15b22c..eed7316d 100644 --- a/web/html/form/outbound.html +++ b/web/html/form/outbound.html @@ -444,16 +444,16 @@ - + - + - + - + diff --git a/web/html/form/reality_settings.html b/web/html/form/reality_settings.html index a4f460e0..feacccbe 100644 --- a/web/html/form/reality_settings.html +++ b/web/html/form/reality_settings.html @@ -36,22 +36,22 @@ type="sync"> - + - + - + Get New Cert - + diff --git a/web/html/form/tls_settings.html b/web/html/form/tls_settings.html index b6367f7b..0de6dae5 100644 --- a/web/html/form/tls_settings.html +++ b/web/html/form/tls_settings.html @@ -85,10 +85,10 @@ From 267024c43f1cd9cdbca8f56440f8b015ce7bafeb Mon Sep 17 00:00:00 2001 From: mhsanaei Date: Mon, 4 Aug 2025 01:28:14 +0200 Subject: [PATCH 09/11] xray core v25.8.3 --- .github/workflows/release.yml | 2 +- DockerInit.sh | 2 +- go.mod | 22 +++++++++--------- go.sum | 44 +++++++++++++++++------------------ 4 files changed, 35 insertions(+), 35 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 074dddd0..6c6708c8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -97,7 +97,7 @@ jobs: cd x-ui/bin # Download dependencies - Xray_URL="https://github.com/XTLS/Xray-core/releases/download/v25.7.26/" + Xray_URL="https://github.com/XTLS/Xray-core/releases/download/v25.8.3/" if [ "${{ matrix.platform }}" == "amd64" ]; then wget -q ${Xray_URL}Xray-linux-64.zip unzip Xray-linux-64.zip diff --git a/DockerInit.sh b/DockerInit.sh index 686778cc..c457a33b 100755 --- a/DockerInit.sh +++ b/DockerInit.sh @@ -27,7 +27,7 @@ case $1 in esac mkdir -p build/bin cd build/bin -wget -q "https://github.com/XTLS/Xray-core/releases/download/v25.7.26/Xray-linux-${ARCH}.zip" +wget -q "https://github.com/XTLS/Xray-core/releases/download/v25.8.3/Xray-linux-${ARCH}.zip" unzip "Xray-linux-${ARCH}.zip" rm -f "Xray-linux-${ARCH}.zip" geoip.dat geosite.dat mv xray "xray-linux-${FNAME}" diff --git a/go.mod b/go.mod index 01bbd3ff..771f1070 100644 --- a/go.mod +++ b/go.mod @@ -14,22 +14,22 @@ require ( github.com/op/go-logging v0.0.0-20160315200505-970db520ece7 github.com/pelletier/go-toml/v2 v2.2.4 github.com/robfig/cron/v3 v3.0.1 - github.com/shirou/gopsutil/v4 v4.25.6 - github.com/valyala/fasthttp v1.63.0 + github.com/shirou/gopsutil/v4 v4.25.7 + github.com/valyala/fasthttp v1.64.0 github.com/xlzd/gotp v0.1.0 - github.com/xtls/xray-core v1.250726.0 + github.com/xtls/xray-core v1.250803.0 go.uber.org/atomic v1.11.0 golang.org/x/crypto v0.40.0 golang.org/x/text v0.27.0 google.golang.org/grpc v1.74.2 gorm.io/driver/sqlite v1.6.0 - gorm.io/gorm v1.30.0 + gorm.io/gorm v1.30.1 ) require ( github.com/andybalholm/brotli v1.2.0 // indirect - github.com/bytedance/sonic v1.13.3 // indirect - github.com/bytedance/sonic/loader v0.2.4 // indirect + github.com/bytedance/sonic v1.14.0 // indirect + github.com/bytedance/sonic/loader v0.3.0 // indirect github.com/cloudflare/circl v1.6.1 // indirect github.com/cloudwego/base64x v0.1.5 // indirect github.com/dgryski/go-metro v0.0.0-20250106013310-edb8663e5e33 // indirect @@ -52,13 +52,13 @@ require ( github.com/json-iterator/go v1.1.12 // indirect github.com/juju/ratelimit v1.0.2 // indirect github.com/klauspost/compress v1.18.0 // indirect - github.com/klauspost/cpuid/v2 v2.2.11 // indirect + github.com/klauspost/cpuid/v2 v2.3.0 // indirect github.com/kr/text v0.2.0 // indirect github.com/leodido/go-urn v1.4.0 // indirect github.com/lufia/plan9stats v0.0.0-20250317134145-8bc96cf8fc35 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-sqlite3 v1.14.28 // indirect - github.com/miekg/dns v1.1.67 // indirect + github.com/mattn/go-sqlite3 v1.14.30 // indirect + github.com/miekg/dns v1.1.68 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/pires/go-proxyproto v0.8.1 // indirect @@ -81,7 +81,7 @@ require ( github.com/valyala/fastjson v1.6.4 // indirect github.com/vishvananda/netlink v1.3.1 // indirect github.com/vishvananda/netns v0.0.5 // indirect - github.com/xtls/reality v0.0.0-20250725142056-5b52a03d4fb7 // indirect + github.com/xtls/reality v0.0.0-20250727231020-de3bb4d08f5a // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/mock v0.5.2 // indirect go4.org/netipx v0.0.0-20231129151722-fdeea329fbba // indirect @@ -94,7 +94,7 @@ require ( golang.org/x/tools v0.35.0 // indirect golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 // indirect golang.zx2c4.com/wireguard v0.0.0-20231211153847-12269c276173 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250721164621-a45f3dfb1074 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250728155136-f173205681a0 // indirect google.golang.org/protobuf v1.36.6 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gvisor.dev/gvisor v0.0.0-20250428193742-2d800c3129d5 // indirect diff --git a/go.sum b/go.sum index 8b1c019a..74eee2b8 100644 --- a/go.sum +++ b/go.sum @@ -2,11 +2,11 @@ github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/andybalholm/brotli v1.2.0 h1:ukwgCxwYrmACq68yiUqwIWnGY0cTPox/M94sVwToPjQ= github.com/andybalholm/brotli v1.2.0/go.mod h1:rzTDkvFWvIrjDXZHkuS16NPggd91W3kUSvPlQ1pLaKY= -github.com/bytedance/sonic v1.13.3 h1:MS8gmaH16Gtirygw7jV91pDCN33NyMrPbN7qiYhEsF0= -github.com/bytedance/sonic v1.13.3/go.mod h1:o68xyaF9u2gvVBuGHPlUVCy+ZfmNNO5ETf1+KgkJhz4= +github.com/bytedance/sonic v1.14.0 h1:/OfKt8HFw0kh2rj8N0F6C/qPGRESq0BbaNZgcNXXzQQ= +github.com/bytedance/sonic v1.14.0/go.mod h1:WoEbx8WTcFJfzCe0hbmyTGrfjt8PzNEBdxlNUO24NhA= github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= -github.com/bytedance/sonic/loader v0.2.4 h1:ZWCw4stuXUsn1/+zQDqeE7JKP+QO47tz7QCNan80NzY= -github.com/bytedance/sonic/loader v0.2.4/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= +github.com/bytedance/sonic/loader v0.3.0 h1:dskwH8edlzNMctoruo8FPTJDF3vLtDT0sXZwvZJyqeA= +github.com/bytedance/sonic/loader v0.3.0/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= github.com/cloudflare/circl v1.6.1 h1:zqIqSPIndyBh1bjLVVDHMPpVKqp8Su/V+6MeDzzQBQ0= github.com/cloudflare/circl v1.6.1/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs= github.com/cloudwego/base64x v0.1.5 h1:XPciSp1xaq2VCSt6lF0phncD4koWyULpl5bUxbfCyP4= @@ -88,8 +88,8 @@ github.com/juju/ratelimit v1.0.2/go.mod h1:qapgC/Gy+xNh9UxzV13HGGl/6UXNN+ct+vwSg github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.2.11 h1:0OwqZRYI2rFrjS4kvkDnqJkKHdHaRnCm68/DY4OxRzU= -github.com/klauspost/cpuid/v2 v2.2.11/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= +github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y= +github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= @@ -101,10 +101,10 @@ github.com/lufia/plan9stats v0.0.0-20250317134145-8bc96cf8fc35 h1:PpXWgLPs+Fqr32 github.com/lufia/plan9stats v0.0.0-20250317134145-8bc96cf8fc35/go.mod h1:autxFIvghDt3jPTLoqZ9OZ7s9qTGNAWmYCjVFWPX/zg= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-sqlite3 v1.14.28 h1:ThEiQrnbtumT+QMknw63Befp/ce/nUPgBPMlRFEum7A= -github.com/mattn/go-sqlite3 v1.14.28/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= -github.com/miekg/dns v1.1.67 h1:kg0EHj0G4bfT5/oOys6HhZw4vmMlnoZ+gDu8tJ/AlI0= -github.com/miekg/dns v1.1.67/go.mod h1:fujopn7TB3Pu3JM69XaawiU0wqjpL9/8xGop5UrTPps= +github.com/mattn/go-sqlite3 v1.14.30 h1:bVreufq3EAIG1Quvws73du3/QgdeZ3myglJlrzSYYCY= +github.com/mattn/go-sqlite3 v1.14.30/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= +github.com/miekg/dns v1.1.68 h1:jsSRkNozw7G/mnmXULynzMNIsgY2dHC8LO6U6Ij2JEA= +github.com/miekg/dns v1.1.68/go.mod h1:fujopn7TB3Pu3JM69XaawiU0wqjpL9/8xGop5UrTPps= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -146,8 +146,8 @@ github.com/savsgio/gotils v0.0.0-20250408102913-196191ec6287 h1:qIQ0tWF9vxGtkJa2 github.com/savsgio/gotils v0.0.0-20250408102913-196191ec6287/go.mod h1:sM7Mt7uEoCeFSCBM+qBrqvEo+/9vdmj19wzp3yzUhmg= github.com/seiflotfy/cuckoofilter v0.0.0-20240715131351-a2f2c23f1771 h1:emzAzMZ1L9iaKCTxdy3Em8Wv4ChIAGnfiz18Cda70g4= github.com/seiflotfy/cuckoofilter v0.0.0-20240715131351-a2f2c23f1771/go.mod h1:bR6DqgcAl1zTcOX8/pE2Qkj9XO00eCNqmKb7lXP8EAg= -github.com/shirou/gopsutil/v4 v4.25.6 h1:kLysI2JsKorfaFPcYmcJqbzROzsBWEOAtw6A7dIfqXs= -github.com/shirou/gopsutil/v4 v4.25.6/go.mod h1:PfybzyydfZcN+JMMjkF6Zb8Mq1A/VcogFFg7hj50W9c= +github.com/shirou/gopsutil/v4 v4.25.7 h1:bNb2JuqKuAu3tRlPv5piSmBZyMfecwQ+t/ILq+1JqVM= +github.com/shirou/gopsutil/v4 v4.25.7/go.mod h1:XV/egmwJtd3ZQjBpJVY5kndsiOO4IRqy9TQnmm6VP7U= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= @@ -171,8 +171,8 @@ github.com/v2fly/ss-bloomring v0.0.0-20210312155135-28617310f63e h1:5QefA066A1tF github.com/v2fly/ss-bloomring v0.0.0-20210312155135-28617310f63e/go.mod h1:5t19P9LBIrNamL6AcMQOncg/r10y3Pc01AbHeMhwlpU= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasthttp v1.63.0 h1:DisIL8OjB7ul2d7cBaMRcKTQDYnrGy56R4FCiuDP0Ns= -github.com/valyala/fasthttp v1.63.0/go.mod h1:REc4IeW+cAEyLrRPa5A81MIjvz0QE1laoTX2EaPHKJM= +github.com/valyala/fasthttp v1.64.0 h1:QBygLLQmiAyiXuRhthf0tuRkqAFcrC42dckN2S+N3og= +github.com/valyala/fasthttp v1.64.0/go.mod h1:dGmFxwkWXSK0NbOSJuF7AMVzU+lkHz0wQVvVITv2UQA= github.com/valyala/fastjson v1.6.4 h1:uAUNq9Z6ymTgGhcm0UynUAB6tlbakBrz6CQFax3BXVQ= github.com/valyala/fastjson v1.6.4/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= github.com/vishvananda/netlink v1.3.1 h1:3AEMt62VKqz90r0tmNhog0r/PpWKmrEShJU0wJW6bV0= @@ -181,10 +181,10 @@ github.com/vishvananda/netns v0.0.5 h1:DfiHV+j8bA32MFM7bfEunvT8IAqQ/NzSJHtcmW5zd github.com/vishvananda/netns v0.0.5/go.mod h1:SpkAiCQRtJ6TvvxPnOSyH3BMl6unz3xZlaprSwhNNJM= github.com/xlzd/gotp v0.1.0 h1:37blvlKCh38s+fkem+fFh7sMnceltoIEBYTVXyoa5Po= github.com/xlzd/gotp v0.1.0/go.mod h1:ndLJ3JKzi3xLmUProq4LLxCuECL93dG9WASNLpHz8qg= -github.com/xtls/reality v0.0.0-20250725142056-5b52a03d4fb7 h1:Ript0vN+nSO33+Vj4n0mgNY5M+oOxFQJdrJ1VnwTBO0= -github.com/xtls/reality v0.0.0-20250725142056-5b52a03d4fb7/go.mod h1:XxvnCCgBee4WWE0bc4E+a7wbk8gkJ/rS0vNVNtC5qp0= -github.com/xtls/xray-core v1.250726.0 h1:uTUHUt/CQ1JQLip1pLkiwoS0pMvl6oCHJgur4M4orWQ= -github.com/xtls/xray-core v1.250726.0/go.mod h1:z2vn2o30flYEgpSz1iEhdZP1I46UZ3+gXINZyohH3yE= +github.com/xtls/reality v0.0.0-20250727231020-de3bb4d08f5a h1:Fs8Pc0JAc/LDOf9Q4DzKrk+Ujf4ILlyvfvDVZcmOZ2o= +github.com/xtls/reality v0.0.0-20250727231020-de3bb4d08f5a/go.mod h1:XxvnCCgBee4WWE0bc4E+a7wbk8gkJ/rS0vNVNtC5qp0= +github.com/xtls/xray-core v1.250803.0 h1:sYdRC243UsujnePINH4IfM4MfHE4lj2p4wZFAfeE2GI= +github.com/xtls/xray-core v1.250803.0/go.mod h1:z2vn2o30flYEgpSz1iEhdZP1I46UZ3+gXINZyohH3yE= github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= @@ -235,8 +235,8 @@ golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 h1:B82qJJgjvYKsXS9jeu golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2/go.mod h1:deeaetjYA+DHMHg+sMSMI58GrEteJUUzzw7en6TJQcI= golang.zx2c4.com/wireguard v0.0.0-20231211153847-12269c276173 h1:/jFs0duh4rdb8uIfPMv78iAJGcPKDeqAFnaLBropIC4= golang.zx2c4.com/wireguard v0.0.0-20231211153847-12269c276173/go.mod h1:tkCQ4FQXmpAgYVh++1cq16/dH4QJtmvpRv19DWGAHSA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250721164621-a45f3dfb1074 h1:qJW29YvkiJmXOYMu5Tf8lyrTp3dOS+K4z6IixtLaCf8= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250721164621-a45f3dfb1074/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250728155136-f173205681a0 h1:MAKi5q709QWfnkkpNQ0M12hYJ1+e8qYVDyowc4U1XZM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250728155136-f173205681a0/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= google.golang.org/grpc v1.74.2 h1:WoosgB65DlWVC9FqI82dGsZhWFNBSLjQ84bjROOpMu4= google.golang.org/grpc v1.74.2/go.mod h1:CtQ+BGjaAIXHs/5YS3i473GqwBBa1zGQNevxdeBEXrM= google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= @@ -252,8 +252,8 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/driver/sqlite v1.6.0 h1:WHRRrIiulaPiPFmDcod6prc4l2VGVWHz80KspNsxSfQ= gorm.io/driver/sqlite v1.6.0/go.mod h1:AO9V1qIQddBESngQUKWL9yoH93HIeA1X6V633rBwyT8= -gorm.io/gorm v1.30.0 h1:qbT5aPv1UH8gI99OsRlvDToLxW5zR7FzS9acZDOZcgs= -gorm.io/gorm v1.30.0/go.mod h1:8Z33v652h4//uMA76KjeDH8mJXPm1QNCYrMeatR0DOE= +gorm.io/gorm v1.30.1 h1:lSHg33jJTBxs2mgJRfRZeLDG+WZaHYCk3Wtfl6Ngzo4= +gorm.io/gorm v1.30.1/go.mod h1:8Z33v652h4//uMA76KjeDH8mJXPm1QNCYrMeatR0DOE= gvisor.dev/gvisor v0.0.0-20250428193742-2d800c3129d5 h1:sfK5nHuG7lRFZ2FdTT3RimOqWBg8IrVm+/Vko1FVOsk= gvisor.dev/gvisor v0.0.0-20250428193742-2d800c3129d5/go.mod h1:3r5CMtNQMKIvBlrmM9xWUNamjKBYPOWyXOjmg5Kts3g= lukechampine.com/blake3 v1.4.1 h1:I3Smz7gso8w4/TunLKec6K2fn+kyKtDxr/xcQEN84Wg= From 1088d1faf3a93a7927ccdeffe521db0bc6bd51ab Mon Sep 17 00:00:00 2001 From: mhsanaei Date: Mon, 4 Aug 2025 01:30:01 +0200 Subject: [PATCH 10/11] minor changes --- web/assets/js/model/inbound.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/web/assets/js/model/inbound.js b/web/assets/js/model/inbound.js index 6c299047..09073593 100644 --- a/web/assets/js/model/inbound.js +++ b/web/assets/js/model/inbound.js @@ -559,7 +559,7 @@ class TlsStreamSettings extends XrayCommonClass { disableSystemRoot = false, enableSessionResumption = false, certificates = [new TlsStreamSettings.Cert()], - alpn = [ALPN_OPTION.H3, ALPN_OPTION.H2, ALPN_OPTION.HTTP1], + alpn = [ALPN_OPTION.H2, ALPN_OPTION.HTTP1], settings = new TlsStreamSettings.Settings() ) { super(); @@ -1385,7 +1385,6 @@ class Inbound extends XrayCommonClass { params.set("security", "reality"); params.set("pbk", this.stream.reality.settings.publicKey); params.set("fp", this.stream.reality.settings.fingerprint); - params.set("pqv", this.stream.reality.settings.mldsa65Verify); if (!ObjectUtil.isArrEmpty(this.stream.reality.serverNames)) { params.set("sni", this.stream.reality.serverNames.split(",")[0]); } @@ -1395,6 +1394,9 @@ class Inbound extends XrayCommonClass { if (!ObjectUtil.isEmpty(this.stream.reality.settings.spiderX)) { params.set("spx", this.stream.reality.settings.spiderX); } + if (!ObjectUtil.isEmpty(this.stream.reality.settings.mldsa65Verify)) { + params.set("pqv", this.stream.reality.settings.mldsa65Verify); + } if (type == 'tcp' && !ObjectUtil.isEmpty(flow)) { params.set("flow", flow); } @@ -1560,7 +1562,6 @@ class Inbound extends XrayCommonClass { params.set("security", "reality"); params.set("pbk", this.stream.reality.settings.publicKey); params.set("fp", this.stream.reality.settings.fingerprint); - params.set("pqv", this.stream.reality.settings.mldsa65Verify); if (!ObjectUtil.isArrEmpty(this.stream.reality.serverNames)) { params.set("sni", this.stream.reality.serverNames.split(",")[0]); } @@ -1570,6 +1571,9 @@ class Inbound extends XrayCommonClass { if (!ObjectUtil.isEmpty(this.stream.reality.settings.spiderX)) { params.set("spx", this.stream.reality.settings.spiderX); } + if (!ObjectUtil.isEmpty(this.stream.reality.settings.mldsa65Verify)) { + params.set("pqv", this.stream.reality.settings.mldsa65Verify); + } } else { From de5314c01feb72bdb1be892d8a7fff2a388b996d Mon Sep 17 00:00:00 2001 From: mhsanaei Date: Mon, 4 Aug 2025 10:24:21 +0200 Subject: [PATCH 11/11] fix: pqv for sub #3306 --- sub/subService.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sub/subService.go b/sub/subService.go index 9f26c0e0..dfb0863e 100644 --- a/sub/subService.go +++ b/sub/subService.go @@ -437,6 +437,11 @@ func (s *SubService) genVlessLink(inbound *model.Inbound, email string) string { params["fp"] = fp } } + if pqvValue, ok := searchKey(realitySettings, "mldsa65Verify"); ok { + if pqv, ok := pqvValue.(string); ok && len(pqv) > 0 { + params["pqv"] = pqv + } + } params["spx"] = "/" + random.Seq(15) } @@ -627,6 +632,11 @@ func (s *SubService) genTrojanLink(inbound *model.Inbound, email string) string params["fp"] = fp } } + if pqvValue, ok := searchKey(realitySettings, "mldsa65Verify"); ok { + if pqv, ok := pqvValue.(string); ok && len(pqv) > 0 { + params["pqv"] = pqv + } + } params["spx"] = "/" + random.Seq(15) }