fix: fix Trojan compatibility in xray kernel
This commit is contained in:
@@ -273,16 +273,27 @@ func buildVLESS(base M, nc *panel.NodeConfig, users []panel.User, certFile, keyF
|
|||||||
}
|
}
|
||||||
|
|
||||||
func buildTrojan(base M, nc *panel.NodeConfig, users []panel.User, certFile, keyFile string) M {
|
func buildTrojan(base M, nc *panel.NodeConfig, users []panel.User, certFile, keyFile string) M {
|
||||||
clients := make([]M, 0, len(users))
|
clients := make([]M, len(users))
|
||||||
for _, u := range users {
|
for i := range users {
|
||||||
clients = append(clients, M{
|
u := &users[i]
|
||||||
|
clients[i] = M{
|
||||||
"password": u.UUID,
|
"password": u.UUID,
|
||||||
"email": userEmail(u.ID),
|
"email": userEmail(u.ID),
|
||||||
})
|
}
|
||||||
}
|
}
|
||||||
base["settings"] = M{"clients": clients}
|
base["settings"] = M{"clients": clients}
|
||||||
|
|
||||||
applyStreamSettings(base, nc, certFile, keyFile)
|
applyStreamSettings(base, nc, certFile, keyFile)
|
||||||
|
|
||||||
|
// Trojan requires TLS or Reality to be enabled.
|
||||||
|
// If the panel didn't explicitly set TLS=1 or TLS=2, but we have certs,
|
||||||
|
// we should enable a default TLS config to ensure the inbound can start.
|
||||||
|
ss, _ := base["streamSettings"].(M)
|
||||||
|
if security, ok := ss["security"].(string); !ok || (security != "tls" && security != "reality") {
|
||||||
|
nc.TLS = 1 // Force internal state to trigger TLS build in applyStreamSettings
|
||||||
|
applyStreamSettings(base, nc, certFile, keyFile)
|
||||||
|
}
|
||||||
|
|
||||||
return base
|
return base
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user