Skip to content

Commit 151ae70

Browse files
author
yiguo
committed
update Xray-core to v25.10.15
1 parent e76f175 commit 151ae70

File tree

8 files changed

+137
-227
lines changed

8 files changed

+137
-227
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ Compile script. It is recommended to always use this script to compile libXray.
1919
### Usage
2020

2121
```shell
22-
# Android (optional: specify Android API level, default is 21)
23-
python3 build/main.py android [api-level]
22+
# Android (min Android API level is 21)
23+
python3 build/main.py android
2424

2525
# Apple (gomobile or go)
2626
python3 build/main.py apple gomobile

desktop_bin/main.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package main
22

33
import (
44
"flag"
5-
"fmt"
65
"os"
76
"os/signal"
87
"runtime"
@@ -15,7 +14,7 @@ import (
1514
func main() {
1615
configPath := flag.String("configPath", "config.json", "Path of config.json")
1716
flag.Parse()
18-
err := runXray(configPath)
17+
err := runXray(*configPath)
1918
if err != nil {
2019
os.Exit(1)
2120
}

go.mod

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
module github.com/xtls/libxray
22

3-
go 1.25.1
3+
go 1.25.3
44

55
require (
66
github.com/stretchr/testify v1.11.1
77
github.com/vishvananda/netlink v1.3.1
8-
github.com/xtls/xray-core v1.250911.0
9-
google.golang.org/protobuf v1.36.9
8+
github.com/xtls/xray-core v1.251015.0
9+
google.golang.org/protobuf v1.36.10
1010
gopkg.in/yaml.v3 v3.0.1
1111
)
1212

@@ -27,30 +27,29 @@ require (
2727
github.com/pires/go-proxyproto v0.8.1 // indirect
2828
github.com/pmezard/go-difflib v1.0.0 // indirect
2929
github.com/quic-go/qpack v0.5.1 // indirect
30-
github.com/quic-go/quic-go v0.54.0 // indirect
31-
github.com/refraction-networking/utls v1.8.0 // indirect
30+
github.com/quic-go/quic-go v0.55.0 // indirect
31+
github.com/refraction-networking/utls v1.8.1 // indirect
3232
github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 // indirect
3333
github.com/rogpeppe/go-internal v1.14.1 // indirect
3434
github.com/sagernet/sing v0.5.1 // indirect
3535
github.com/sagernet/sing-shadowsocks v0.2.7 // indirect
3636
github.com/seiflotfy/cuckoofilter v0.0.0-20240715131351-a2f2c23f1771 // indirect
3737
github.com/v2fly/ss-bloomring v0.0.0-20210312155135-28617310f63e // indirect
3838
github.com/vishvananda/netns v0.0.5 // indirect
39-
github.com/xtls/reality v0.0.0-20250904214705-431b6ff8c67c // indirect
40-
go.uber.org/mock v0.5.0 // indirect
39+
github.com/xtls/reality v0.0.0-20251014195629-e4eec4520535 // indirect
4140
go4.org/netipx v0.0.0-20231129151722-fdeea329fbba // indirect
42-
golang.org/x/crypto v0.42.0 // indirect
43-
golang.org/x/mod v0.27.0 // indirect
44-
golang.org/x/net v0.44.0 // indirect
41+
golang.org/x/crypto v0.43.0 // indirect
42+
golang.org/x/mod v0.28.0 // indirect
43+
golang.org/x/net v0.46.0 // indirect
4544
golang.org/x/sync v0.17.0 // indirect
46-
golang.org/x/sys v0.36.0 // indirect
47-
golang.org/x/text v0.29.0 // indirect
45+
golang.org/x/sys v0.37.0 // indirect
46+
golang.org/x/text v0.30.0 // indirect
4847
golang.org/x/time v0.7.0 // indirect
49-
golang.org/x/tools v0.36.0 // indirect
48+
golang.org/x/tools v0.37.0 // indirect
5049
golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 // indirect
5150
golang.zx2c4.com/wireguard v0.0.0-20231211153847-12269c276173 // indirect
52-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7 // indirect
53-
google.golang.org/grpc v1.75.0 // indirect
51+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250804133106-a7a43d27e69b // indirect
52+
google.golang.org/grpc v1.76.0 // indirect
5453
gopkg.in/yaml.v2 v2.4.0 // indirect
5554
gvisor.dev/gvisor v0.0.0-20250428193742-2d800c3129d5 // indirect
5655
lukechampine.com/blake3 v1.4.1 // indirect

go.sum

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,10 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
4646
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
4747
github.com/quic-go/qpack v0.5.1 h1:giqksBPnT/HDtZ6VhtFKgoLOWmlyo9Ei6u9PqzIMbhI=
4848
github.com/quic-go/qpack v0.5.1/go.mod h1:+PC4XFrEskIVkcLzpEkbLqq1uCoxPhQuvK5rH1ZgaEg=
49-
github.com/quic-go/quic-go v0.54.0 h1:6s1YB9QotYI6Ospeiguknbp2Znb/jZYjZLRXn9kMQBg=
50-
github.com/quic-go/quic-go v0.54.0/go.mod h1:e68ZEaCdyviluZmy44P6Iey98v/Wfz6HCjQEm+l8zTY=
51-
github.com/refraction-networking/utls v1.8.0 h1:L38krhiTAyj9EeiQQa2sg+hYb4qwLCqdMcpZrRfbONE=
52-
github.com/refraction-networking/utls v1.8.0/go.mod h1:jkSOEkLqn+S/jtpEHPOsVv/4V4EVnelwbMQl4vCWXAM=
49+
github.com/quic-go/quic-go v0.55.0 h1:zccPQIqYCXDt5NmcEabyYvOnomjs8Tlwl7tISjJh9Mk=
50+
github.com/quic-go/quic-go v0.55.0/go.mod h1:DR51ilwU1uE164KuWXhinFcKWGlEjzys2l8zUl5Ss1U=
51+
github.com/refraction-networking/utls v1.8.1 h1:yNY1kapmQU8JeM1sSw2H2asfTIwWxIkrMJI0pRUOCAo=
52+
github.com/refraction-networking/utls v1.8.1/go.mod h1:jkSOEkLqn+S/jtpEHPOsVv/4V4EVnelwbMQl4vCWXAM=
5353
github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 h1:f/FNXud6gA3MNr8meMVVGxhp+QBTqY91tM8HjEuMjGg=
5454
github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3/go.mod h1:HgjTstvQsPGkxUsCd2KWxErBblirPizecHcpD3ffK+s=
5555
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
@@ -70,10 +70,10 @@ github.com/vishvananda/netlink v1.3.1 h1:3AEMt62VKqz90r0tmNhog0r/PpWKmrEShJU0wJW
7070
github.com/vishvananda/netlink v1.3.1/go.mod h1:ARtKouGSTGchR8aMwmkzC0qiNPrrWO5JS/XMVl45+b4=
7171
github.com/vishvananda/netns v0.0.5 h1:DfiHV+j8bA32MFM7bfEunvT8IAqQ/NzSJHtcmW5zdEY=
7272
github.com/vishvananda/netns v0.0.5/go.mod h1:SpkAiCQRtJ6TvvxPnOSyH3BMl6unz3xZlaprSwhNNJM=
73-
github.com/xtls/reality v0.0.0-20250904214705-431b6ff8c67c h1:LHLhQY3mKXSpTcQAkjFR4/6ar3rXjQryNeM7khK3AHU=
74-
github.com/xtls/reality v0.0.0-20250904214705-431b6ff8c67c/go.mod h1:XxvnCCgBee4WWE0bc4E+a7wbk8gkJ/rS0vNVNtC5qp0=
75-
github.com/xtls/xray-core v1.250911.0 h1:KMN8zVurAjHFixiUoFV/jwmzYohf27dQRntjV+8LQno=
76-
github.com/xtls/xray-core v1.250911.0/go.mod h1:LkqA/BFVtPS2e5fRzg/bkYas9nQu4Uztlx+/fjlLM9k=
73+
github.com/xtls/reality v0.0.0-20251014195629-e4eec4520535 h1:nwobseOLLRtdbP6z7Z2aVI97u8ZptTgD1ofovhAKmeU=
74+
github.com/xtls/reality v0.0.0-20251014195629-e4eec4520535/go.mod h1:vbHCV/3VWUvy1oKvTxxWJRPEWSeR1sYgQHIh6u/JiZQ=
75+
github.com/xtls/xray-core v1.251015.0 h1:P7b3vt8ShhH31k4h6VJ/Pxar3tY9eK+7S8eygd6rsP0=
76+
github.com/xtls/xray-core v1.251015.0/go.mod h1:72ZU/srfutsNPmw9y8SCGRy0iccvshIRk8BNGR8D2Ik=
7777
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
7878
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
7979
go.opentelemetry.io/otel v1.37.0 h1:9zhNfelUvx0KBfu/gb+ZgeAfAgtWrfHJZcAqFC228wQ=
@@ -86,40 +86,40 @@ go.opentelemetry.io/otel/sdk/metric v1.37.0 h1:90lI228XrB9jCMuSdA0673aubgRobVZFh
8686
go.opentelemetry.io/otel/sdk/metric v1.37.0/go.mod h1:cNen4ZWfiD37l5NhS+Keb5RXVWZWpRE+9WyVCpbo5ps=
8787
go.opentelemetry.io/otel/trace v1.37.0 h1:HLdcFNbRQBE2imdSEgm/kwqmQj1Or1l/7bW6mxVK7z4=
8888
go.opentelemetry.io/otel/trace v1.37.0/go.mod h1:TlgrlQ+PtQO5XFerSPUYG0JSgGyryXewPGyayAWSBS0=
89-
go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU=
90-
go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM=
89+
go.uber.org/mock v0.5.2 h1:LbtPTcP8A5k9WPXj54PPPbjcI4Y6lhyOZXn+VS7wNko=
90+
go.uber.org/mock v0.5.2/go.mod h1:wLlUxC2vVTPTaE3UD51E0BGOAElKrILxhVSDYQLld5o=
9191
go4.org/netipx v0.0.0-20231129151722-fdeea329fbba h1:0b9z3AuHCjxk0x/opv64kcgZLBseWJUpBw5I82+2U4M=
9292
go4.org/netipx v0.0.0-20231129151722-fdeea329fbba/go.mod h1:PLyyIXexvUFg3Owu6p/WfdlivPbZJsZdgWZlrGope/Y=
93-
golang.org/x/crypto v0.42.0 h1:chiH31gIWm57EkTXpwnqf8qeuMUi0yekh6mT2AvFlqI=
94-
golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8=
95-
golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ=
96-
golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc=
97-
golang.org/x/net v0.44.0 h1:evd8IRDyfNBMBTTY5XRF1vaZlD+EmWx6x8PkhR04H/I=
98-
golang.org/x/net v0.44.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY=
93+
golang.org/x/crypto v0.43.0 h1:dduJYIi3A3KOfdGOHX8AVZ/jGiyPa3IbBozJ5kNuE04=
94+
golang.org/x/crypto v0.43.0/go.mod h1:BFbav4mRNlXJL4wNeejLpWxB7wMbc79PdRGhWKncxR0=
95+
golang.org/x/mod v0.28.0 h1:gQBtGhjxykdjY9YhZpSlZIsbnaE2+PgjfLWUQTnoZ1U=
96+
golang.org/x/mod v0.28.0/go.mod h1:yfB/L0NOf/kmEbXjzCPOx1iK1fRutOydrCMsqRhEBxI=
97+
golang.org/x/net v0.46.0 h1:giFlY12I07fugqwPuWJi68oOnpfqFnJIJzaIIm2JVV4=
98+
golang.org/x/net v0.46.0/go.mod h1:Q9BGdFy1y4nkUwiLvT5qtyhAnEHgnQ/zd8PfU6nc210=
9999
golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug=
100100
golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
101101
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
102102
golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
103-
golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k=
104-
golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
105-
golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk=
106-
golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4=
103+
golang.org/x/sys v0.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ=
104+
golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
105+
golang.org/x/text v0.30.0 h1:yznKA/E9zq54KzlzBEAWn1NXSQ8DIp/NYMy88xJjl4k=
106+
golang.org/x/text v0.30.0/go.mod h1:yDdHFIX9t+tORqspjENWgzaCVXgk0yYnYuSZ8UzzBVM=
107107
golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ=
108108
golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
109-
golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg=
110-
golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s=
109+
golang.org/x/tools v0.37.0 h1:DVSRzp7FwePZW356yEAChSdNcQo6Nsp+fex1SUW09lE=
110+
golang.org/x/tools v0.37.0/go.mod h1:MBN5QPQtLMHVdvsbtarmTNukZDdgwdwlO5qGacAzF0w=
111111
golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 h1:B82qJJgjvYKsXS9jeunTOisW56dUokqW/FOteYJJ/yg=
112112
golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2/go.mod h1:deeaetjYA+DHMHg+sMSMI58GrEteJUUzzw7en6TJQcI=
113113
golang.zx2c4.com/wireguard v0.0.0-20231211153847-12269c276173 h1:/jFs0duh4rdb8uIfPMv78iAJGcPKDeqAFnaLBropIC4=
114114
golang.zx2c4.com/wireguard v0.0.0-20231211153847-12269c276173/go.mod h1:tkCQ4FQXmpAgYVh++1cq16/dH4QJtmvpRv19DWGAHSA=
115115
gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
116116
gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
117-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7 h1:pFyd6EwwL2TqFf8emdthzeX+gZE1ElRq3iM8pui4KBY=
118-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
119-
google.golang.org/grpc v1.75.0 h1:+TW+dqTd2Biwe6KKfhE5JpiYIBWq865PhKGSXiivqt4=
120-
google.golang.org/grpc v1.75.0/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ=
121-
google.golang.org/protobuf v1.36.9 h1:w2gp2mA27hUeUzj9Ex9FBjsBm40zfaDtEWow293U7Iw=
122-
google.golang.org/protobuf v1.36.9/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU=
117+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250804133106-a7a43d27e69b h1:zPKJod4w6F1+nRGDI9ubnXYhU9NSWoFAijkHkUXeTK8=
118+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250804133106-a7a43d27e69b/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
119+
google.golang.org/grpc v1.76.0 h1:UnVkv1+uMLYXoIz6o7chp59WfQUYA2ex/BXQ9rHZu7A=
120+
google.golang.org/grpc v1.76.0/go.mod h1:Ju12QI8M6iQJtbcsV+awF5a4hfJMLi4X0JLo94ULZ6c=
121+
google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE=
122+
google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
123123
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
124124
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
125125
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=

share/clash_meta.go

Lines changed: 38 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
package share
22

33
import (
4-
"encoding/json"
54
"fmt"
65

76
"gopkg.in/yaml.v3"
87

98
"github.com/xtls/xray-core/infra/conf"
10-
"github.com/xtls/xray-core/proxy/vless"
119
)
1210

1311
// https://github.com/MetaCubeX/mihomo/blob/Alpha/docs/config.yaml
@@ -17,14 +15,15 @@ type ClashYaml struct {
1715
}
1816

1917
type ClashProxy struct {
20-
Name string `yaml:"name,omitempty"`
21-
Type string `yaml:"type,omitempty"`
22-
Server string `yaml:"server,omitempty"`
23-
Port uint16 `yaml:"port,omitempty"`
24-
Uuid string `yaml:"uuid,omitempty"`
25-
Cipher string `yaml:"cipher,omitempty"`
26-
Username string `yaml:"username,omitempty"`
27-
Password string `yaml:"password,omitempty"`
18+
Name string `yaml:"name,omitempty"`
19+
Type string `yaml:"type,omitempty"`
20+
Server string `yaml:"server,omitempty"`
21+
Port uint16 `yaml:"port,omitempty"`
22+
Uuid string `yaml:"uuid,omitempty"`
23+
Cipher string `yaml:"cipher,omitempty"`
24+
Username string `yaml:"username,omitempty"`
25+
Password string `yaml:"password,omitempty"`
26+
Encryption string `yaml:"encryption,omitempty"`
2827

2928
Udp bool `yaml:"udp,omitempty"`
3029
UdpOverTcp bool `yaml:"udp-over-tcp,omitempty"`
@@ -155,15 +154,14 @@ func (proxy ClashProxy) shadowsocksOutbound() (*conf.OutboundDetourConfig, error
155154
outbound.Protocol = "shadowsocks"
156155
setOutboundName(outbound, proxy.Name)
157156

158-
server := &conf.ShadowsocksServerTarget{}
159-
server.Address = parseAddress(proxy.Server)
160-
server.Port = proxy.Port
161-
server.Cipher = proxy.Cipher
162-
server.Password = proxy.Password
163-
server.UoT = proxy.UdpOverTcp
157+
settings := conf.ShadowsocksClientConfig{}
164158

165-
var settings conf.ShadowsocksClientConfig
166-
settings.Servers = []*conf.ShadowsocksServerTarget{server}
159+
settings.Address = parseAddress(proxy.Server)
160+
settings.Port = proxy.Port
161+
162+
settings.Cipher = proxy.Cipher
163+
settings.Password = proxy.Password
164+
settings.UoT = proxy.UdpOverTcp
167165

168166
settingsRawMessage, err := convertJsonToRawMessage(settings)
169167
if err != nil {
@@ -218,22 +216,13 @@ func (proxy ClashProxy) vmessOutbound() (*conf.OutboundDetourConfig, error) {
218216
outbound.Protocol = "vmess"
219217
setOutboundName(outbound, proxy.Name)
220218

221-
user := &conf.VMessAccount{}
222-
user.ID = proxy.Uuid
223-
user.Security = proxy.Cipher
224-
225-
vnext := &conf.VMessOutboundTarget{}
226-
vnext.Address = parseAddress(proxy.Server)
227-
vnext.Port = proxy.Port
219+
settings := conf.VMessOutboundConfig{}
228220

229-
userRawMessage, err := convertJsonToRawMessage(user)
230-
if err != nil {
231-
return nil, err
232-
}
233-
vnext.Users = []json.RawMessage{userRawMessage}
221+
settings.Address = parseAddress(proxy.Server)
222+
settings.Port = proxy.Port
234223

235-
settings := conf.VMessOutboundConfig{}
236-
settings.Receivers = []*conf.VMessOutboundTarget{vnext}
224+
settings.ID = proxy.Uuid
225+
settings.Security = proxy.Cipher
237226

238227
settingsRawMessage, err := convertJsonToRawMessage(settings)
239228
if err != nil {
@@ -255,22 +244,16 @@ func (proxy ClashProxy) vlessOutbound() (*conf.OutboundDetourConfig, error) {
255244
outbound.Protocol = "vless"
256245
setOutboundName(outbound, proxy.Name)
257246

258-
user := &vless.Account{}
259-
user.Id = proxy.Uuid
260-
user.Flow = proxy.Flow
247+
settings := conf.VLessOutboundConfig{}
261248

262-
vnext := &conf.VLessOutboundVnext{}
263-
vnext.Address = parseAddress(proxy.Server)
264-
vnext.Port = proxy.Port
249+
settings.Address = parseAddress(proxy.Server)
250+
settings.Port = proxy.Port
265251

266-
userRawMessage, err := convertJsonToRawMessage(user)
267-
if err != nil {
268-
return nil, err
252+
settings.Id = proxy.Uuid
253+
settings.Flow = proxy.Flow
254+
if len(proxy.Encryption) > 0 {
255+
settings.Encryption = proxy.Encryption
269256
}
270-
vnext.Users = []json.RawMessage{userRawMessage}
271-
272-
settings := &conf.VLessOutboundConfig{}
273-
settings.Vnext = []*conf.VLessOutboundVnext{vnext}
274257

275258
settingsRawMessage, err := convertJsonToRawMessage(settings)
276259
if err != nil {
@@ -292,22 +275,13 @@ func (proxy ClashProxy) socksOutbound() (*conf.OutboundDetourConfig, error) {
292275
outbound.Protocol = "socks"
293276
setOutboundName(outbound, proxy.Name)
294277

295-
user := &conf.SocksAccount{}
296-
user.Username = proxy.Username
297-
user.Password = proxy.Password
278+
settings := conf.SocksClientConfig{}
298279

299-
server := &conf.SocksRemoteConfig{}
300-
server.Address = parseAddress(proxy.Server)
301-
server.Port = proxy.Port
280+
settings.Address = parseAddress(proxy.Server)
281+
settings.Port = proxy.Port
302282

303-
userRawMessage, err := convertJsonToRawMessage(user)
304-
if err != nil {
305-
return nil, err
306-
}
307-
server.Users = []json.RawMessage{userRawMessage}
308-
309-
settings := &conf.SocksClientConfig{}
310-
settings.Servers = []*conf.SocksRemoteConfig{server}
283+
settings.Username = proxy.Username
284+
settings.Password = proxy.Password
311285

312286
settingsRawMessage, err := convertJsonToRawMessage(settings)
313287
if err != nil {
@@ -329,13 +303,12 @@ func (proxy ClashProxy) trojanOutbound() (*conf.OutboundDetourConfig, error) {
329303
outbound.Protocol = "trojan"
330304
setOutboundName(outbound, proxy.Name)
331305

332-
server := &conf.TrojanServerTarget{}
333-
server.Address = parseAddress(proxy.Server)
334-
server.Port = proxy.Port
335-
server.Password = proxy.Password
306+
settings := conf.TrojanClientConfig{}
307+
308+
settings.Address = parseAddress(proxy.Server)
309+
settings.Port = proxy.Port
336310

337-
settings := &conf.TrojanClientConfig{}
338-
settings.Servers = []*conf.TrojanServerTarget{server}
311+
settings.Password = proxy.Password
339312

340313
settingsRawMessage, err := convertJsonToRawMessage(settings)
341314
if err != nil {

0 commit comments

Comments
 (0)