From a680ccc2d021efff9b604afe15a53e69a6ef7d72 Mon Sep 17 00:00:00 2001 From: Umbrix Developer Date: Mon, 26 Jan 2026 20:04:50 +0300 Subject: [PATCH] fix: Tolerance 50ms + InterruptExistConnections false MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - URLTest Tolerance: 1 → 50 (стабильный автовыбор без дёрганий) - InterruptExistConnections: true → false для URLTest и Selector - Критично: предотвращает разрывы YouTube/загрузок при смене сервера - Протестировано: streams продолжаются без прерываний --- config/config.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/config/config.go b/config/config.go index 75933a5..567e559 100644 --- a/config/config.go +++ b/config/config.go @@ -202,9 +202,9 @@ func setOutbounds(options *option.Options, input *option.Options, opt *HiddifyOp URL: opt.ConnectionTestUrl, Interval: option.Duration(opt.URLTestInterval.Duration()), // IdleTimeout: option.Duration(opt.URLTestIdleTimeout.Duration()), - Tolerance: 1, + Tolerance: 50, IdleTimeout: option.Duration(opt.URLTestInterval.Duration().Nanoseconds() * 3), - InterruptExistConnections: true, + InterruptExistConnections: false, }, } defaultSelect := urlTest.Tag @@ -220,7 +220,7 @@ func setOutbounds(options *option.Options, input *option.Options, opt *HiddifyOp SelectorOptions: option.SelectorOutboundOptions{ Outbounds: append([]string{urlTest.Tag}, tags...), Default: defaultSelect, - InterruptExistConnections: true, + InterruptExistConnections: false, }, } @@ -495,13 +495,13 @@ func setRoutingOptions(options *option.Options, opt *HiddifyOptions) { }, ) } - + // Per-App Proxy for Desktop platforms (Windows, Linux, macOS) if runtime.GOOS != "android" { if opt.PerAppProxyOptions.Mode == "include" && len(opt.PerAppProxyOptions.IncludedApplications) > 0 { // Mode: Only selected apps use VPN log.Info("[Per-App] Mode: include - ", len(opt.PerAppProxyOptions.IncludedApplications), " apps will use VPN") - + // Rule 1: Selected apps → VPN routeRules = append( routeRules, @@ -513,7 +513,7 @@ func setRoutingOptions(options *option.Options, opt *HiddifyOptions) { }, }, ) - + // Rule 2: All other apps → Direct routeRules = append( routeRules, @@ -527,7 +527,7 @@ func setRoutingOptions(options *option.Options, opt *HiddifyOptions) { } else if opt.PerAppProxyOptions.Mode == "exclude" && len(opt.PerAppProxyOptions.ExcludedApplications) > 0 { // Mode: Excluded apps DON'T use VPN log.Info("[Per-App] Mode: exclude - ", len(opt.PerAppProxyOptions.ExcludedApplications), " apps will bypass VPN") - + // Rule: Excluded apps → Direct (rest goes through VPN by default) routeRules = append( routeRules, @@ -541,7 +541,7 @@ func setRoutingOptions(options *option.Options, opt *HiddifyOptions) { ) } } - + routeRules = append(routeRules, option.Rule{ Type: C.RuleTypeDefault, DefaultOptions: option.DefaultRule{