From 31e32f174e5ccdd075f6e855f3b0f17ab57f7395 Mon Sep 17 00:00:00 2001 From: DHR60 <192860629+DHR60@users.noreply.github.com> Date: Thu, 2 Jul 2026 01:20:14 +0000 Subject: [PATCH] Fix (#9648) --- v2rayN/ServiceLib/Models/CoreConfigs/V2rayConfig.cs | 11 +---------- .../Services/CoreConfig/V2ray/V2rayBalancerService.cs | 9 ++++++--- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/v2rayN/ServiceLib/Models/CoreConfigs/V2rayConfig.cs b/v2rayN/ServiceLib/Models/CoreConfigs/V2rayConfig.cs index bf57b248..d5f189e8 100644 --- a/v2rayN/ServiceLib/Models/CoreConfigs/V2rayConfig.cs +++ b/v2rayN/ServiceLib/Models/CoreConfigs/V2rayConfig.cs @@ -289,16 +289,7 @@ public class BalancersStrategySettings4Ray { public int? expected { get; set; } public string? maxRTT { get; set; } - public float? tolerance { get; set; } - public List? baselines { get; set; } - public List? costs { get; set; } -} - -public class BalancersStrategySettingsCosts4Ray -{ - public bool? regexp { get; set; } - public string? match { get; set; } - public float? value { get; set; } + public double? tolerance { get; set; } } public class Observatory4Ray diff --git a/v2rayN/ServiceLib/Services/CoreConfig/V2ray/V2rayBalancerService.cs b/v2rayN/ServiceLib/Services/CoreConfig/V2ray/V2rayBalancerService.cs index a6955eb4..bf09c3e1 100644 --- a/v2rayN/ServiceLib/Services/CoreConfig/V2ray/V2rayBalancerService.cs +++ b/v2rayN/ServiceLib/Services/CoreConfig/V2ray/V2rayBalancerService.cs @@ -89,22 +89,25 @@ public partial class CoreConfigV2rayService EMultipleLoad.RoundRobin => "roundRobin", EMultipleLoad.LeastPing => "leastPing", EMultipleLoad.LeastLoad => "leastLoad", + EMultipleLoad.Fallback => "leastLoad", _ => "roundRobin", }; var balancerTag = $"{selector}{Global.BalancerTagSuffix}"; var balancer = new BalancersItem4Ray { selector = [selector], - strategy = new() + strategy = strategyType == "leastLoad" ? new() { type = strategyType, settings = new() { expected = 1, + tolerance = multipleLoad == EMultipleLoad.Fallback ? 0.2 : null, + maxRTT = multipleLoad == EMultipleLoad.Fallback ? "5000ms" : null, }, - }, + } : null, tag = balancerTag, - fallbackTag = multipleLoad == EMultipleLoad.Fallback ? Global.DirectTag : null, + fallbackTag = _coreConfig.outbounds?.FirstOrDefault(o => o.tag.StartsWith(selector))?.tag, }; _coreConfig.routing.balancers ??= []; _coreConfig.routing.balancers.Add(balancer);