diff --git a/conf/sing.go b/conf/sing.go index cdf4159..19120cc 100644 --- a/conf/sing.go +++ b/conf/sing.go @@ -2,6 +2,7 @@ package conf type SingConfig struct { LogConfig SingLogConfig `json:"Log"` + NtpConfig SingNtpConfig `json:"NTP"` OriginalPath string `json:"OriginalPath"` } @@ -18,6 +19,11 @@ func NewSingConfig() *SingConfig { Level: "error", Timestamp: true, }, + NtpConfig: SingNtpConfig{ + Enable: false, + Server: "time.apple.com", + ServerPort: 0, + }, } } @@ -29,6 +35,12 @@ type SingOptions struct { FallBackConfigs *FallBackConfigForSing `json:"FallBackConfigs"` } +type SingNtpConfig struct { + Enable bool `json:"Enable"` + Server string `json:"Server"` + ServerPort uint16 `json:"ServerPort"` +} + type FallBackConfigForSing struct { // sing-box FallBack FallBack `json:"FallBack"` diff --git a/core/sing/sing.go b/core/sing/sing.go index 30bece9..a38a858 100644 --- a/core/sing/sing.go +++ b/core/sing/sing.go @@ -59,6 +59,14 @@ func New(c *conf.CoreConfig) (vCore.Core, error) { Timestamp: c.SingConfig.LogConfig.Timestamp, Output: c.SingConfig.LogConfig.Output, } + options.NTP = &option.NTPOptions{ + Enabled: c.SingConfig.NtpConfig.Enable, + WriteToSystem: true, + ServerOptions: option.ServerOptions{ + Server: c.SingConfig.NtpConfig.Server, + ServerPort: c.SingConfig.NtpConfig.ServerPort, + }, + } ctx := context.Background() ctx = pause.ContextWithDefaultManager(ctx) createdAt := time.Now() diff --git a/example/config.json b/example/config.json index 3d087f7..d87f53c 100644 --- a/example/config.json +++ b/example/config.json @@ -16,6 +16,13 @@ "Level": "error", "Timestamp": true + }, + "NTP": { + // 同 SingBox ntp 部分配置 + // VMess VLESS 建议开启 + "Enable": true, + "Server": "time.apple.com", + "ServerPort": 0 } // More },