Compare commits

..

9 commits

Author SHA1 Message Date
DHR60
cf503da469 Avoids detour for private networks 2025-08-10 11:28:00 +08:00
DHR60
9ec6d3f955 Add Detour Feature 2025-08-10 11:28:00 +08:00
DHR60
e357e2a0b6 Adjust Avalonia UI 2025-08-10 11:28:00 +08:00
DHR60
237eba22e4 Fixes 2025-08-10 11:28:00 +08:00
DHR60
856d155937 Adjust UI 2025-08-10 11:28:00 +08:00
DHR60
ff1df89038 Fixes TypeInfoResolver Exception 2025-08-10 11:27:59 +08:00
DHR60
6349553fe0 Feat. custom config 2025-08-10 11:27:59 +08:00
DHR60
7995bdd4df
Migrate to sing-box 1.12 support (#7521)
Some checks are pending
release Linux / build (Release) (push) Waiting to run
release macOS / build (Release) (push) Waiting to run
release Windows desktop (Avalonia UI) / build (Release) (push) Waiting to run
release Windows / build (Release) (push) Waiting to run
* Revert "Temporary addition to support proper use of sing-box v1.12"

This reverts commit 508eb24fc3.

* Migrating to singbox 1.11 support

* Removes unnecessary sniffer

* Migrating to singbox 1.12 support

* Adds Google cn dns rules

* Improves geoip rule handling in singbox

* add anytls support

* Simplifies local DNS address handling

* Enables dhcp interface configuration

* Fetches DNS strategy for domain resolution

* support Wireguard endpoint
Refactors Singbox config classes for dial fields

* Utils.GetFreePort() default port to be zero

* Adds Sing-box legacy DNS config support

* Adds IPv4 preference to DNS configurations

对应原dns.servers[].strategy = prefer_ipv4

* Refactors DNS address parsing

* Fixes config generation

* fix singbox endpoints proxy chain not work

* Fixes wrong field

* Removes direct clash_mode domain strategy

* Improves DNS address parsing in Singbox

DNS type, host, port, and path

* Adds properties to Rule4Sbox class

* Removes Wireguard listen port

* Support sing-box hosts

* Adds tag resolver supports

* Adds sing-box DomainStrategy support

* Deletes Duplicate Rules

* Adds anytls reality support

* Fixes

* Updates sing-box documentation link

* Updates translations
2025-08-10 10:15:32 +08:00
2dust
df95cc6af7 Code clean 2025-08-10 09:17:15 +08:00
7 changed files with 8 additions and 7 deletions

View file

@ -411,11 +411,11 @@ public class Utils
// Link-local address fe80::/10 // Link-local address fe80::/10
if (ipBytes[0] == 0xfe && (ipBytes[1] & 0xc0) == 0x80) if (ipBytes[0] == 0xfe && (ipBytes[1] & 0xc0) == 0x80)
return true; return true;
// Unique local address fc00::/7 (typically fd00::/8) // Unique local address fc00::/7 (typically fd00::/8)
if ((ipBytes[0] & 0xfe) == 0xfc) if ((ipBytes[0] & 0xfe) == 0xfc)
return true; return true;
// Private portion in IPv4-mapped addresses ::ffff:0:0/96 // Private portion in IPv4-mapped addresses ::ffff:0:0/96
if (address.IsIPv4MappedToIPv6) if (address.IsIPv4MappedToIPv6)
{ {

View file

@ -2028,7 +2028,7 @@ public class ConfigHandler
if (!blImportAdvancedRules && items.Count > 0) if (!blImportAdvancedRules && items.Count > 0)
{ {
//migrate //migrate
//TODO Temporary code to be removed later //TODO Temporary code to be removed later
if (config.RoutingBasicItem.RoutingIndexId.IsNotEmpty()) if (config.RoutingBasicItem.RoutingIndexId.IsNotEmpty())
{ {

View file

@ -62,7 +62,7 @@ public class BaseFmt
if (item.Mldsa65Verify.IsNotEmpty()) if (item.Mldsa65Verify.IsNotEmpty())
{ {
dicQuery.Add("pqv", Utils.UrlEncode(item.Mldsa65Verify)); dicQuery.Add("pqv", Utils.UrlEncode(item.Mldsa65Verify));
} }
if (item.AllowInsecure.Equals("true")) if (item.AllowInsecure.Equals("true"))
{ {
dicQuery.Add("allowInsecure", "1"); dicQuery.Add("allowInsecure", "1");

View file

@ -12,7 +12,7 @@ public class CoreConfigClashService
{ {
_config = config; _config = config;
} }
public async Task<RetResult> GenerateClientCustomConfig(ProfileItem node, string? fileName) public async Task<RetResult> GenerateClientCustomConfig(ProfileItem node, string? fileName)
{ {
var ret = new RetResult(); var ret = new RetResult();

View file

@ -234,7 +234,7 @@ public class ClashProxiesViewModel : MyReactiveObject
else else
{ {
SelectedGroup = _proxyGroups.First(); SelectedGroup = _proxyGroups.First();
} }
} }
else else
{ {

View file

@ -73,6 +73,7 @@
<ScrollViewer x:Name="msgScrollViewer" VerticalScrollBarVisibility="Auto"> <ScrollViewer x:Name="msgScrollViewer" VerticalScrollBarVisibility="Auto">
<SelectableTextBlock <SelectableTextBlock
Name="txtMsg" Name="txtMsg"
Margin="{StaticResource Margin8}"
VerticalAlignment="Stretch" VerticalAlignment="Stretch"
Classes="TextArea" Classes="TextArea"
TextAlignment="Left" TextAlignment="Left"

View file

@ -25,7 +25,7 @@ public partial class MsgView
menuMsgViewCopy.Click += menuMsgViewCopy_Click; menuMsgViewCopy.Click += menuMsgViewCopy_Click;
menuMsgViewCopyAll.Click += menuMsgViewCopyAll_Click; menuMsgViewCopyAll.Click += menuMsgViewCopyAll_Click;
menuMsgViewClear.Click += menuMsgViewClear_Click; menuMsgViewClear.Click += menuMsgViewClear_Click;
cmbMsgFilter.ItemsSource = Global.PresetMsgFilters; cmbMsgFilter.ItemsSource = Global.PresetMsgFilters;
} }