Compare commits

..

49 commits

Author SHA1 Message Date
DHR60
9886c52e89 Avoids detour for private networks 2025-07-31 10:56:08 +08:00
DHR60
0519ca4eff Add Detour Feature 2025-07-31 10:56:08 +08:00
DHR60
9a0e340472 Adjust Avalonia UI 2025-07-31 10:56:08 +08:00
DHR60
8c794d68e0 Fixes 2025-07-31 10:56:08 +08:00
DHR60
67a534aeee Adjust UI 2025-07-31 10:56:08 +08:00
DHR60
3c6450d692 Fixes TypeInfoResolver Exception 2025-07-31 10:56:08 +08:00
DHR60
18ab33bec4 Feat. custom config 2025-07-31 10:56:08 +08:00
DHR60
35ca3b1eae auto-disable DNS items with empty NormalDNS on startup 2025-07-31 10:56:08 +08:00
DHR60
77d28e7fcf Uses correct DNS strategy for direct connections 2025-07-31 10:56:08 +08:00
DHR60
906b246873 Refactor DNS tags handling 2025-07-31 10:56:08 +08:00
DHR60
2fcd34b89f Fix 2025-07-31 10:56:08 +08:00
DHR60
2c1beb1530 Regional Preset 2025-07-31 10:56:08 +08:00
DHR60
50824cd125 Fixes Combobox for desktop 2025-07-31 10:56:08 +08:00
DHR60
9bf286a190 Compatible 2025-07-31 10:56:08 +08:00
DHR60
f3782e86e3 rename DNSItem to SimpleDNSItem 2025-07-31 10:56:07 +08:00
DHR60
070f277f20 Fixes geoip overrides rule_set when geosite is also set 2025-07-31 10:56:07 +08:00
DHR60
eb8ce06186 Optimize ExpectedIPs Logic 2025-07-31 10:56:07 +08:00
DHR60
b09b609b0a ExpectedIPs 2025-07-31 10:56:07 +08:00
DHR60
17b9bc462b fix 2025-07-31 10:56:07 +08:00
DHR60
e82fc2c272 Simplify DNS Settings 2025-07-31 10:56:07 +08:00
DHR60
faa540b929 Updates translations 2025-07-31 10:54:43 +08:00
DHR60
25cb376083 Updates sing-box documentation link 2025-07-31 10:54:43 +08:00
DHR60
7c01712e64 Fixes 2025-07-31 10:54:43 +08:00
DHR60
938ef6ccc4 Adds anytls reality support 2025-07-31 10:54:43 +08:00
DHR60
c526949fcb Deletes Duplicate Rules 2025-07-31 10:54:43 +08:00
DHR60
3d4ef78874 Adds sing-box DomainStrategy support 2025-07-31 10:54:43 +08:00
DHR60
1ba04f1cc6 Adds tag resolver supports 2025-07-31 10:54:43 +08:00
DHR60
8e1f15f415 Support sing-box hosts 2025-07-31 10:54:43 +08:00
DHR60
eff14326a5 Removes Wireguard listen port 2025-07-31 10:54:43 +08:00
DHR60
6848cd1e3e Adds properties to Rule4Sbox class 2025-07-31 10:54:43 +08:00
DHR60
72fcc590bd Improves DNS address parsing in Singbox
DNS type, host, port, and path
2025-07-31 10:54:43 +08:00
DHR60
3f4bb59c15 Removes direct clash_mode domain strategy 2025-07-31 10:54:43 +08:00
DHR60
a9c3b9438c Fixes wrong field 2025-07-31 10:54:43 +08:00
DHR60
1ad3c10619 fix singbox endpoints proxy chain not work 2025-07-31 10:54:43 +08:00
DHR60
9dba695cbb Fixes config generation 2025-07-31 10:54:43 +08:00
DHR60
02d9a87038 Refactors DNS address parsing 2025-07-31 10:54:43 +08:00
DHR60
4e808c8ec1 Adds IPv4 preference to DNS configurations
对应原dns.servers[].strategy = prefer_ipv4
2025-07-31 10:54:43 +08:00
DHR60
aa55c7d552 Adds Sing-box legacy DNS config support 2025-07-31 10:54:43 +08:00
DHR60
17269993f6 Utils.GetFreePort() default port to be zero 2025-07-31 10:54:43 +08:00
DHR60
532c5d3fb9 support Wireguard endpoint
Refactors Singbox config classes for dial fields
2025-07-31 10:54:43 +08:00
DHR60
d8bfc809c8 Fetches DNS strategy for domain resolution 2025-07-31 10:54:43 +08:00
DHR60
c0a027faa3 Enables dhcp interface configuration 2025-07-31 10:54:43 +08:00
DHR60
aee4f8daa7 Simplifies local DNS address handling 2025-07-31 10:54:43 +08:00
DHR60
01f7b342da add anytls support 2025-07-31 10:54:42 +08:00
DHR60
f5750e15cc Improves geoip rule handling in singbox 2025-07-31 10:54:42 +08:00
DHR60
d6bfd199a2 Adds Google cn dns rules 2025-07-31 10:54:42 +08:00
DHR60
2418a2ac14 Migrating to singbox 1.12 support 2025-07-31 10:54:42 +08:00
DHR60
8e59539b78 Removes unnecessary sniffer 2025-07-31 10:54:42 +08:00
DHR60
355e435ec4 Migrating to singbox 1.11 support 2025-07-31 10:54:42 +08:00
17 changed files with 289 additions and 358 deletions

View file

@ -1,7 +1,7 @@
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<Version>7.13.6</Version> <Version>7.13.4</Version>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>

View file

@ -251,7 +251,6 @@ public class ConfigHandler
item.PublicKey = profileItem.PublicKey; item.PublicKey = profileItem.PublicKey;
item.ShortId = profileItem.ShortId; item.ShortId = profileItem.ShortId;
item.SpiderX = profileItem.SpiderX; item.SpiderX = profileItem.SpiderX;
item.Mldsa65Verify = profileItem.Mldsa65Verify;
item.Extra = profileItem.Extra; item.Extra = profileItem.Extra;
item.MuxEnabled = profileItem.MuxEnabled; item.MuxEnabled = profileItem.MuxEnabled;
} }

View file

@ -59,10 +59,6 @@ public class BaseFmt
{ {
dicQuery.Add("spx", Utils.UrlEncode(item.SpiderX)); dicQuery.Add("spx", Utils.UrlEncode(item.SpiderX));
} }
if (item.Mldsa65Verify.IsNotEmpty())
{
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");
@ -163,7 +159,6 @@ public class BaseFmt
item.PublicKey = Utils.UrlDecode(query["pbk"] ?? ""); item.PublicKey = Utils.UrlDecode(query["pbk"] ?? "");
item.ShortId = Utils.UrlDecode(query["sid"] ?? ""); item.ShortId = Utils.UrlDecode(query["sid"] ?? "");
item.SpiderX = Utils.UrlDecode(query["spx"] ?? ""); item.SpiderX = Utils.UrlDecode(query["spx"] ?? "");
item.Mldsa65Verify = Utils.UrlDecode(query["pqv"] ?? "");
item.AllowInsecure = (query["allowInsecure"] ?? "") == "1" ? "true" : ""; item.AllowInsecure = (query["allowInsecure"] ?? "") == "1" ? "true" : "";
item.Network = query["type"] ?? nameof(ETransport.tcp); item.Network = query["type"] ?? nameof(ETransport.tcp);

View file

@ -93,7 +93,6 @@ public class ProfileItem : ReactiveObject
public string PublicKey { get; set; } public string PublicKey { get; set; }
public string ShortId { get; set; } public string ShortId { get; set; }
public string SpiderX { get; set; } public string SpiderX { get; set; }
public string Mldsa65Verify { get; set; }
public string Extra { get; set; } public string Extra { get; set; }
public bool? MuxEnabled { get; set; } public bool? MuxEnabled { get; set; }
} }

View file

@ -343,7 +343,6 @@ public class TlsSettings4Ray
public string? publicKey { get; set; } public string? publicKey { get; set; }
public string? shortId { get; set; } public string? shortId { get; set; }
public string? spiderX { get; set; } public string? spiderX { get; set; }
public string? mldsa65Verify { get; set; }
} }
public class TcpSettings4Ray public class TcpSettings4Ray

View file

@ -2643,15 +2643,6 @@ namespace ServiceLib.Resx {
} }
} }
/// <summary>
/// 查找类似 Mldsa65Verify 的本地化字符串。
/// </summary>
public static string TbMldsa65Verify {
get {
return ResourceManager.GetString("TbMldsa65Verify", resourceCulture);
}
}
/// <summary> /// <summary>
/// 查找类似 Transport protocol(network) 的本地化字符串。 /// 查找类似 Transport protocol(network) 的本地化字符串。
/// </summary> /// </summary>

View file

@ -1398,9 +1398,6 @@
<data name="SudoIncorrectPasswordTip" xml:space="preserve"> <data name="SudoIncorrectPasswordTip" xml:space="preserve">
<value>Incorrect password, please try again.</value> <value>Incorrect password, please try again.</value>
</data> </data>
<data name="TbMldsa65Verify" xml:space="preserve">
<value>Mldsa65Verify</value>
</data>
<data name="menuAddAnytlsServer" xml:space="preserve"> <data name="menuAddAnytlsServer" xml:space="preserve">
<value>Add [Anytls] Configuration</value> <value>Add [Anytls] Configuration</value>
</data> </data>

File diff suppressed because it is too large Load diff

View file

@ -1398,9 +1398,6 @@
<data name="SudoIncorrectPasswordTip" xml:space="preserve"> <data name="SudoIncorrectPasswordTip" xml:space="preserve">
<value>Incorrect password, please try again.</value> <value>Incorrect password, please try again.</value>
</data> </data>
<data name="TbMldsa65Verify" xml:space="preserve">
<value>Mldsa65Verify</value>
</data>
<data name="menuAddAnytlsServer" xml:space="preserve"> <data name="menuAddAnytlsServer" xml:space="preserve">
<value>Add [Anytls] Configuration</value> <value>Add [Anytls] Configuration</value>
</data> </data>

View file

@ -1398,9 +1398,6 @@
<data name="SudoIncorrectPasswordTip" xml:space="preserve"> <data name="SudoIncorrectPasswordTip" xml:space="preserve">
<value>Incorrect password, please try again.</value> <value>Incorrect password, please try again.</value>
</data> </data>
<data name="TbMldsa65Verify" xml:space="preserve">
<value>Mldsa65Verify</value>
</data>
<data name="menuAddAnytlsServer" xml:space="preserve"> <data name="menuAddAnytlsServer" xml:space="preserve">
<value>Добавить сервер [Anytls]</value> <value>Добавить сервер [Anytls]</value>
</data> </data>

View file

@ -1395,9 +1395,6 @@
<data name="SudoIncorrectPasswordTip" xml:space="preserve"> <data name="SudoIncorrectPasswordTip" xml:space="preserve">
<value>密码错误,请重试。</value> <value>密码错误,请重试。</value>
</data> </data>
<data name="TbMldsa65Verify" xml:space="preserve">
<value>Mldsa65Verify</value>
</data>
<data name="menuAddAnytlsServer" xml:space="preserve"> <data name="menuAddAnytlsServer" xml:space="preserve">
<value>添加 [Anytls] 配置文件</value> <value>添加 [Anytls] 配置文件</value>
</data> </data>

View file

@ -1395,9 +1395,6 @@
<data name="SudoIncorrectPasswordTip" xml:space="preserve"> <data name="SudoIncorrectPasswordTip" xml:space="preserve">
<value>密碼錯誤,請重試。</value> <value>密碼錯誤,請重試。</value>
</data> </data>
<data name="TbMldsa65Verify" xml:space="preserve">
<value>Mldsa65Verify</value>
</data>
<data name="menuAddAnytlsServer" xml:space="preserve"> <data name="menuAddAnytlsServer" xml:space="preserve">
<value>新增 [Anytls] 設定檔</value> <value>新增 [Anytls] 設定檔</value>
</data> </data>

View file

@ -952,7 +952,6 @@ public class CoreConfigV2rayService
publicKey = node.PublicKey, publicKey = node.PublicKey,
shortId = node.ShortId, shortId = node.ShortId,
spiderX = node.SpiderX, spiderX = node.SpiderX,
mldsa65Verify = node.Mldsa65Verify,
show = false, show = false,
}; };

View file

@ -773,7 +773,7 @@
Grid.Row="7" Grid.Row="7"
ColumnDefinitions="180,Auto" ColumnDefinitions="180,Auto"
IsVisible="False" IsVisible="False"
RowDefinitions="Auto,Auto,Auto,Auto,Auto,Auto"> RowDefinitions="Auto,Auto,Auto,Auto,Auto">
<TextBlock <TextBlock
Grid.Row="0" Grid.Row="0"
@ -843,20 +843,6 @@
Width="400" Width="400"
Margin="{StaticResource Margin4}" Margin="{StaticResource Margin4}"
HorizontalAlignment="Left" /> HorizontalAlignment="Left" />
<TextBlock
Grid.Row="5"
Grid.Column="0"
Margin="{StaticResource Margin4}"
VerticalAlignment="Center"
Text="{x:Static resx:ResUI.TbMldsa65Verify}" />
<TextBox
x:Name="txtMldsa65Verify"
Grid.Row="5"
Grid.Column="1"
Width="400"
Margin="{StaticResource Margin4}"
HorizontalAlignment="Left" />
</Grid> </Grid>
<Separator Grid.Row="8" Margin="{StaticResource MarginTb8}" /> <Separator Grid.Row="8" Margin="{StaticResource MarginTb8}" />
</Grid> </Grid>

View file

@ -195,7 +195,6 @@ public partial class AddServerWindow : WindowBase<AddServerViewModel>
this.Bind(ViewModel, vm => vm.SelectedSource.PublicKey, v => v.txtPublicKey.Text).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.SelectedSource.PublicKey, v => v.txtPublicKey.Text).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.SelectedSource.ShortId, v => v.txtShortId.Text).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.SelectedSource.ShortId, v => v.txtShortId.Text).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.SelectedSource.SpiderX, v => v.txtSpiderX.Text).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.SelectedSource.SpiderX, v => v.txtSpiderX.Text).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.SelectedSource.Mldsa65Verify, v => v.txtMldsa65Verify.Text).DisposeWith(disposables);
this.BindCommand(ViewModel, vm => vm.SaveCmd, v => v.btnSave).DisposeWith(disposables); this.BindCommand(ViewModel, vm => vm.SaveCmd, v => v.btnSave).DisposeWith(disposables);
}); });

View file

@ -1008,7 +1008,6 @@
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="180" /> <ColumnDefinition Width="180" />
@ -1094,22 +1093,6 @@
Margin="{StaticResource Margin4}" Margin="{StaticResource Margin4}"
HorizontalAlignment="Left" HorizontalAlignment="Left"
Style="{StaticResource DefTextBox}" /> Style="{StaticResource DefTextBox}" />
<TextBlock
Grid.Row="5"
Grid.Column="0"
Margin="{StaticResource Margin4}"
VerticalAlignment="Center"
Style="{StaticResource ToolbarTextBlock}"
Text="{x:Static resx:ResUI.TbMldsa65Verify}" />
<TextBox
x:Name="txtMldsa65Verify"
Grid.Row="5"
Grid.Column="1"
Width="400"
Margin="{StaticResource Margin4}"
HorizontalAlignment="Left"
Style="{StaticResource DefTextBox}" />
</Grid> </Grid>
<Separator <Separator
Grid.Row="8" Grid.Row="8"

View file

@ -189,7 +189,6 @@ public partial class AddServerWindow
this.Bind(ViewModel, vm => vm.SelectedSource.PublicKey, v => v.txtPublicKey.Text).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.SelectedSource.PublicKey, v => v.txtPublicKey.Text).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.SelectedSource.ShortId, v => v.txtShortId.Text).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.SelectedSource.ShortId, v => v.txtShortId.Text).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.SelectedSource.SpiderX, v => v.txtSpiderX.Text).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.SelectedSource.SpiderX, v => v.txtSpiderX.Text).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.SelectedSource.Mldsa65Verify, v => v.txtMldsa65Verify.Text).DisposeWith(disposables);
this.BindCommand(ViewModel, vm => vm.SaveCmd, v => v.btnSave).DisposeWith(disposables); this.BindCommand(ViewModel, vm => vm.SaveCmd, v => v.btnSave).DisposeWith(disposables);
}); });