From 19e5ac8a0c53c39318152f83b7189f3e12e066b3 Mon Sep 17 00:00:00 2001 From: cubemaze Date: Sun, 16 Jul 2023 12:11:18 +0800 Subject: [PATCH] chore: rollback reality config, it remains effective. --- conf/node.go | 13 +++++++++++++ core/xray/inbound.go | 20 +++++++++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/conf/node.go b/conf/node.go index 939fabd..eca14be 100644 --- a/conf/node.go +++ b/conf/node.go @@ -23,12 +23,24 @@ type ControllerConfig struct { CertConfig *CertConfig `yaml:"CertConfig"` } +type RealityConfig struct { + Dest interface{} `yaml:"Dest" json:"Dest"` + Xver uint64 `yaml:"Xver" json:"Xver"` + ServerNames []string `yaml:"ServerNames" json:"ServerNames"` + PrivateKey string `yaml:"PrivateKey" json:"PrivateKey"` + MinClientVer string `yaml:"MinClientVer" json:"MinClientVer"` + MaxClientVer string `yaml:"MaxClientVer" json:"MaxClientVer"` + MaxTimeDiff uint64 `yaml:"MaxTimeDiff" json:"MaxTimeDiff"` + ShortIds []string `yaml:"ShortIds" json:"ShortIds"` +} + type XrayOptions struct { EnableProxyProtocol bool `yaml:"EnableProxyProtocol"` EnableDNS bool `yaml:"EnableDNS"` DNSType string `yaml:"DNSType"` EnableUot bool `yaml:"EnableUot"` EnableTFO bool `yaml:"EnableTFO"` + EnableVless bool `yaml:"EnableVless"` DisableIVCheck bool `yaml:"DisableIVCheck"` DisableSniffing bool `yaml:"DisableSniffing"` EnableFallback bool `yaml:"EnableFallback"` @@ -97,4 +109,5 @@ type CertConfig struct { Provider string `yaml:"Provider"` // alidns, cloudflare, gandi, godaddy.... Email string `yaml:"Email"` DNSEnv map[string]string `yaml:"DNSEnv"` + RealityConfig *RealityConfig `yaml:"RealityConfig"` } diff --git a/core/xray/inbound.go b/core/xray/inbound.go index e25f358..11a429f 100644 --- a/core/xray/inbound.go +++ b/core/xray/inbound.go @@ -71,6 +71,24 @@ func buildInbound(config *conf.ControllerConfig, nodeInfo *panel.NodeInfo, tag s } switch config.CertConfig.CertMode { case "none", "": // disable + case "reality": + // Reality + in.StreamSetting.Security = "reality" + d, err := json.Marshal(config.CertConfig.RealityConfig.Dest) + if err != nil { + return nil, fmt.Errorf("marshal reality dest error: %s", err) + } + in.StreamSetting.REALITYSettings = &coreConf.REALITYConfig{ + Dest: d, + Xver: config.CertConfig.RealityConfig.Xver, + ServerNames: config.CertConfig.RealityConfig.ServerNames, + PrivateKey: config.CertConfig.RealityConfig.PrivateKey, + MinClientVer: config.CertConfig.RealityConfig.MinClientVer, + MaxClientVer: config.CertConfig.RealityConfig.MaxClientVer, + MaxTimeDiff: config.CertConfig.RealityConfig.MaxTimeDiff, + ShortIds: config.CertConfig.RealityConfig.ShortIds, + } + case "remote": default: if nodeInfo.ExtraConfig.EnableReality { rc := nodeInfo.ExtraConfig.RealityConfig @@ -120,7 +138,7 @@ func buildInbound(config *conf.ControllerConfig, nodeInfo *panel.NodeInfo, tag s } func buildV2ray(config *conf.ControllerConfig, nodeInfo *panel.NodeInfo, inbound *coreConf.InboundDetourConfig) error { - if nodeInfo.ExtraConfig.EnableVless { + if config.XrayOptions.EnableVless || nodeInfo.ExtraConfig.EnableVless { //Set vless inbound.Protocol = "vless" if config.XrayOptions.EnableFallback {