diff --git a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Windows/CommunityProxyPage/ProxySettingsWindow.axaml b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Windows/CommunityProxyPage/ProxySettingsWindow.axaml index 556e4ea42..da2dea72c 100644 --- a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Windows/CommunityProxyPage/ProxySettingsWindow.axaml +++ b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Windows/CommunityProxyPage/ProxySettingsWindow.axaml @@ -27,7 +27,7 @@ - diff --git a/src/ST.Client/Services/Implementation/HttpProxyServiceImpl.cs b/src/ST.Client/Services/Implementation/HttpProxyServiceImpl.cs index 75a4638d0..a6229b90f 100644 --- a/src/ST.Client/Services/Implementation/HttpProxyServiceImpl.cs +++ b/src/ST.Client/Services/Implementation/HttpProxyServiceImpl.cs @@ -220,28 +220,28 @@ namespace System.Application.Services.Implementation //e.Redirect(e.HttpClient.Request.RequestUri.AbsoluteUri.Replace(e.HttpClient.Request.RequestUri.Host, url)); return; } - IPAddress? ip; + IPAddress? ip = null; if (!item.ForwardDomainIsNameOrIP) { ip = IPAddress2.Parse(item.ForwardDomainIP); } else { - - if (!OperatingSystem2.IsWindows) + if (IPAddress.TryParse(ProxyDNS, out var dns)) { - if (string.IsNullOrEmpty(ProxyDNS)) - ip = (await DnsAnalysis.AnalysisDomainIp(item.ForwardDomainName))?.First(); - else - ip = (await DnsAnalysis.AnalysisDomainIpByCustomDns(item.ForwardDomainName, new[] { IPAddress.Parse(ProxyDNS) }))?.First(); + ip = (await DnsAnalysis.AnalysisDomainIpByCustomDns(item.ForwardDomainName, new[] { dns }))?.First(); } else { - //非windows环境不能使用系统默认DNS解析代理,会解析到hosts上无限循环 - if (string.IsNullOrEmpty(ProxyDNS)) - ip = (await DnsAnalysis.AnalysisDomainIpByAliDns(item.ForwardDomainName))?.First(); + if (!OperatingSystem2.IsWindows) + { + ip = (await DnsAnalysis.AnalysisDomainIp(item.ForwardDomainName))?.First(); + } else - ip = (await DnsAnalysis.AnalysisDomainIpByCustomDns(item.ForwardDomainName, new[] { IPAddress.Parse(ProxyDNS) }))?.First(); + { + //非windows环境不能使用系统默认DNS解析代理,会解析到hosts上无限循环 + ip = (await DnsAnalysis.AnalysisDomainIpByAliDns(item.ForwardDomainName))?.First(); + } } } if (ip == null || IPAddress.IsLoopback(ip) || ip == IPAddress.Any) diff --git a/src/ST.Client/Settings/ProxySettings.cs b/src/ST.Client/Settings/ProxySettings.cs index c0797dd20..e289df2df 100644 --- a/src/ST.Client/Settings/ProxySettings.cs +++ b/src/ST.Client/Settings/ProxySettings.cs @@ -62,7 +62,7 @@ namespace System.Application.Settings /// 代理时使用的解析主DNS /// public static SerializableProperty ProxyMasterDns { get; } - = GetProperty(defaultValue: null, autoSave: false); + = GetProperty(defaultValue: DnsAnalysis.PrimaryDNS_Ali, autoSave: false); #endregion #region 本地代理设置