mirror of
https://github.com/2dust/v2rayN.git
synced 2026-03-03 14:43:07 +00:00
Compare commits
3 commits
dd52672ae5
...
1f7609cc22
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1f7609cc22 | ||
|
|
45d9db2c5a | ||
|
|
21ca5c10b8 |
21 changed files with 100 additions and 340 deletions
65
.github/workflows/build-linux.yml
vendored
65
.github/workflows/build-linux.yml
vendored
|
|
@ -31,7 +31,7 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v6.0.2
|
uses: actions/checkout@v6.0.1
|
||||||
with:
|
with:
|
||||||
submodules: 'recursive'
|
submodules: 'recursive'
|
||||||
fetch-depth: '0'
|
fetch-depth: '0'
|
||||||
|
|
@ -103,67 +103,14 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Prepare tools (Red Hat)
|
- name: Prepare tools (Red Hat)
|
||||||
shell: bash
|
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
dnf repolist all
|
||||||
|
dnf -y makecache
|
||||||
. /etc/os-release
|
dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-10.noarch.rpm
|
||||||
EL_MAJOR="${VERSION_ID%%.*}"
|
dnf -y install sudo git rpm-build rpmdevtools dnf-plugins-core rsync findutils tar gzip unzip which
|
||||||
echo "EL_MAJOR=${EL_MAJOR}"
|
|
||||||
|
|
||||||
dnf -y makecache || true
|
|
||||||
command -v curl >/dev/null || dnf -y install curl ca-certificates
|
|
||||||
|
|
||||||
ARCH="$(uname -m)"
|
|
||||||
case "$ARCH" in x86_64|aarch64) ;; *) echo "Unsupported arch: $ARCH"; exit 1 ;; esac
|
|
||||||
|
|
||||||
install_epel_from_dir() {
|
|
||||||
local base="$1" rpm
|
|
||||||
echo "Try: $base"
|
|
||||||
|
|
||||||
rpm="$(
|
|
||||||
{
|
|
||||||
curl -fsSL "$base/Packages/" 2>/dev/null
|
|
||||||
curl -fsSL "$base/Packages/e/" 2>/dev/null | sed 's|href="|href="e/|'
|
|
||||||
} |
|
|
||||||
sed -n 's/.*href="\([^"]*epel-release-[^"]*\.noarch\.rpm\)".*/\1/p' |
|
|
||||||
sort -V | tail -n1
|
|
||||||
)" || true
|
|
||||||
|
|
||||||
if [[ -n "$rpm" ]]; then
|
|
||||||
dnf -y install "$base/Packages/$rpm"
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
FEDORA="https://dl.fedoraproject.org/pub/epel/epel-release-latest-${EL_MAJOR}.noarch.rpm"
|
|
||||||
echo "Try Fedora: $FEDORA"
|
|
||||||
|
|
||||||
if curl -fsSLI "$FEDORA" >/dev/null; then
|
|
||||||
dnf -y install "$FEDORA"
|
|
||||||
else
|
|
||||||
ROCKY="https://dl.rockylinux.org/pub/rocky/${EL_MAJOR}/extras/${ARCH}/os"
|
|
||||||
if install_epel_from_dir "$ROCKY"; then
|
|
||||||
:
|
|
||||||
else
|
|
||||||
ALMA="https://repo.almalinux.org/almalinux/${EL_MAJOR}/extras/${ARCH}/os"
|
|
||||||
if install_epel_from_dir "$ALMA"; then
|
|
||||||
:
|
|
||||||
else
|
|
||||||
echo "EPEL bootstrap failed (Fedora/Rocky/Alma)"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnf -y install sudo git rpm-build rpmdevtools dnf-plugins-core \
|
|
||||||
rsync findutils tar gzip unzip which
|
|
||||||
|
|
||||||
dnf repolist | grep -i epel || true
|
|
||||||
|
|
||||||
- name: Checkout repo (for scripts)
|
- name: Checkout repo (for scripts)
|
||||||
uses: actions/checkout@v6.0.2
|
uses: actions/checkout@v6.0.1
|
||||||
with:
|
with:
|
||||||
submodules: 'recursive'
|
submodules: 'recursive'
|
||||||
fetch-depth: '0'
|
fetch-depth: '0'
|
||||||
|
|
|
||||||
2
.github/workflows/build-osx.yml
vendored
2
.github/workflows/build-osx.yml
vendored
|
|
@ -26,7 +26,7 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v6.0.2
|
uses: actions/checkout@v6.0.1
|
||||||
with:
|
with:
|
||||||
submodules: 'recursive'
|
submodules: 'recursive'
|
||||||
fetch-depth: '0'
|
fetch-depth: '0'
|
||||||
|
|
|
||||||
2
.github/workflows/build-windows-desktop.yml
vendored
2
.github/workflows/build-windows-desktop.yml
vendored
|
|
@ -26,7 +26,7 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v6.0.2
|
uses: actions/checkout@v6.0.1
|
||||||
with:
|
with:
|
||||||
submodules: 'recursive'
|
submodules: 'recursive'
|
||||||
fetch-depth: '0'
|
fetch-depth: '0'
|
||||||
|
|
|
||||||
2
.github/workflows/build-windows.yml
vendored
2
.github/workflows/build-windows.yml
vendored
|
|
@ -27,7 +27,7 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v6.0.2
|
uses: actions/checkout@v6.0.1
|
||||||
|
|
||||||
- name: Setup
|
- name: Setup
|
||||||
uses: actions/setup-dotnet@v5.0.1
|
uses: actions/setup-dotnet@v5.0.1
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<Project>
|
<Project>
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Version>7.17.3</Version>
|
<Version>7.17.2</Version>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
<CentralPackageVersionOverrideEnabled>false</CentralPackageVersionOverrideEnabled>
|
<CentralPackageVersionOverrideEnabled>false</CentralPackageVersionOverrideEnabled>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageVersion Include="Avalonia.AvaloniaEdit" Version="11.4.0" />
|
<PackageVersion Include="Avalonia.AvaloniaEdit" Version="11.3.0" />
|
||||||
<PackageVersion Include="Avalonia.Controls.DataGrid" Version="11.3.11" />
|
<PackageVersion Include="Avalonia.Controls.DataGrid" Version="11.3.11" />
|
||||||
<PackageVersion Include="Avalonia.Desktop" Version="11.3.11" />
|
<PackageVersion Include="Avalonia.Desktop" Version="11.3.11" />
|
||||||
<PackageVersion Include="Avalonia.Diagnostics" Version="11.3.11" />
|
<PackageVersion Include="Avalonia.Diagnostics" Version="11.3.11" />
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
<PackageVersion Include="Semi.Avalonia" Version="11.3.7.2" />
|
<PackageVersion Include="Semi.Avalonia" Version="11.3.7.2" />
|
||||||
<PackageVersion Include="Semi.Avalonia.AvaloniaEdit" Version="11.2.0.1" />
|
<PackageVersion Include="Semi.Avalonia.AvaloniaEdit" Version="11.2.0.1" />
|
||||||
<PackageVersion Include="Semi.Avalonia.DataGrid" Version="11.3.7.2" />
|
<PackageVersion Include="Semi.Avalonia.DataGrid" Version="11.3.7.2" />
|
||||||
<PackageVersion Include="NLog" Version="6.1.0" />
|
<PackageVersion Include="NLog" Version="6.0.7" />
|
||||||
<PackageVersion Include="sqlite-net-pcl" Version="1.9.172" />
|
<PackageVersion Include="sqlite-net-pcl" Version="1.9.172" />
|
||||||
<PackageVersion Include="TaskScheduler" Version="2.12.2" />
|
<PackageVersion Include="TaskScheduler" Version="2.12.2" />
|
||||||
<PackageVersion Include="WebDav.Client" Version="2.9.0" />
|
<PackageVersion Include="WebDav.Client" Version="2.9.0" />
|
||||||
|
|
|
||||||
|
|
@ -288,16 +288,6 @@ public class Global
|
||||||
"dns"
|
"dns"
|
||||||
];
|
];
|
||||||
|
|
||||||
public static readonly Dictionary<string, string> KcpHeaderMaskMap = new()
|
|
||||||
{
|
|
||||||
{ "srtp", "header-srtp" },
|
|
||||||
{ "utp", "header-utp" },
|
|
||||||
{ "wechat-video", "header-wechat" },
|
|
||||||
{ "dtls", "header-dtls" },
|
|
||||||
{ "wireguard", "header-wireguard" },
|
|
||||||
{ "dns", "header-dns" }
|
|
||||||
};
|
|
||||||
|
|
||||||
public static readonly List<string> CoreTypes =
|
public static readonly List<string> CoreTypes =
|
||||||
[
|
[
|
||||||
"Xray",
|
"Xray",
|
||||||
|
|
@ -611,20 +601,20 @@ public class Global
|
||||||
|
|
||||||
public static readonly Dictionary<string, List<string>> PredefinedHosts = new()
|
public static readonly Dictionary<string, List<string>> PredefinedHosts = new()
|
||||||
{
|
{
|
||||||
{ "dns.google", ["8.8.8.8", "8.8.4.4", "2001:4860:4860::8888", "2001:4860:4860::8844"] },
|
{ "dns.google", new List<string> { "8.8.8.8", "8.8.4.4", "2001:4860:4860::8888", "2001:4860:4860::8844" } },
|
||||||
{ "dns.alidns.com", ["223.5.5.5", "223.6.6.6", "2400:3200::1", "2400:3200:baba::1"] },
|
{ "dns.alidns.com", new List<string> { "223.5.5.5", "223.6.6.6", "2400:3200::1", "2400:3200:baba::1" } },
|
||||||
{ "one.one.one.one", ["1.1.1.1", "1.0.0.1", "2606:4700:4700::1111", "2606:4700:4700::1001"] },
|
{ "one.one.one.one", new List<string> { "1.1.1.1", "1.0.0.1", "2606:4700:4700::1111", "2606:4700:4700::1001" } },
|
||||||
{ "1dot1dot1dot1.cloudflare-dns.com", ["1.1.1.1", "1.0.0.1", "2606:4700:4700::1111", "2606:4700:4700::1001"] },
|
{ "1dot1dot1dot1.cloudflare-dns.com", new List<string> { "1.1.1.1", "1.0.0.1", "2606:4700:4700::1111", "2606:4700:4700::1001" } },
|
||||||
{ "cloudflare-dns.com", ["104.16.249.249", "104.16.248.249", "2606:4700::6810:f8f9", "2606:4700::6810:f9f9"] },
|
{ "cloudflare-dns.com", new List<string> { "104.16.249.249", "104.16.248.249", "2606:4700::6810:f8f9", "2606:4700::6810:f9f9" } },
|
||||||
{ "dns.cloudflare.com", ["104.16.132.229", "104.16.133.229", "2606:4700::6810:84e5", "2606:4700::6810:85e5"] },
|
{ "dns.cloudflare.com", new List<string> { "104.16.132.229", "104.16.133.229", "2606:4700::6810:84e5", "2606:4700::6810:85e5" } },
|
||||||
{ "dot.pub", ["1.12.12.12", "120.53.53.53"] },
|
{ "dot.pub", new List<string> { "1.12.12.12", "120.53.53.53" } },
|
||||||
{ "doh.pub", ["1.12.12.12", "120.53.53.53"] },
|
{ "doh.pub", new List<string> { "1.12.12.12", "120.53.53.53" } },
|
||||||
{ "dns.quad9.net", ["9.9.9.9", "149.112.112.112", "2620:fe::fe", "2620:fe::9"] },
|
{ "dns.quad9.net", new List<string> { "9.9.9.9", "149.112.112.112", "2620:fe::fe", "2620:fe::9" } },
|
||||||
{ "dns.yandex.net", ["77.88.8.8", "77.88.8.1", "2a02:6b8::feed:0ff", "2a02:6b8:0:1::feed:0ff"] },
|
{ "dns.yandex.net", new List<string> { "77.88.8.8", "77.88.8.1", "2a02:6b8::feed:0ff", "2a02:6b8:0:1::feed:0ff" } },
|
||||||
{ "dns.sb", ["185.222.222.222", "2a09::"] },
|
{ "dns.sb", new List<string> { "185.222.222.222", "2a09::" } },
|
||||||
{ "dns.umbrella.com", ["208.67.220.220", "208.67.222.222", "2620:119:35::35", "2620:119:53::53"] },
|
{ "dns.umbrella.com", new List<string> { "208.67.220.220", "208.67.222.222", "2620:119:35::35", "2620:119:53::53" } },
|
||||||
{ "dns.sse.cisco.com", ["208.67.220.220", "208.67.222.222", "2620:119:35::35", "2620:119:53::53"] },
|
{ "dns.sse.cisco.com", new List<string> { "208.67.220.220", "208.67.222.222", "2620:119:35::35", "2620:119:53::53" } },
|
||||||
{ "engage.cloudflareclient.com", ["162.159.192.1"] }
|
{ "engage.cloudflareclient.com", new List<string> { "162.159.192.1", "2606:4700:d0::a29f:c001" } }
|
||||||
};
|
};
|
||||||
|
|
||||||
public static readonly List<string> ExpectedIPs =
|
public static readonly List<string> ExpectedIPs =
|
||||||
|
|
|
||||||
|
|
@ -226,7 +226,7 @@ public class CoreManager
|
||||||
{
|
{
|
||||||
if (mayNeedSudo
|
if (mayNeedSudo
|
||||||
&& _config.TunModeItem.EnableTun
|
&& _config.TunModeItem.EnableTun
|
||||||
&& (coreInfo.CoreType is ECoreType.sing_box or ECoreType.mihomo)
|
&& coreInfo.CoreType == ECoreType.sing_box
|
||||||
&& Utils.IsNonWindows())
|
&& Utils.IsNonWindows())
|
||||||
{
|
{
|
||||||
_linuxSudo = true;
|
_linuxSudo = true;
|
||||||
|
|
|
||||||
|
|
@ -341,7 +341,7 @@ public class StreamSettings4Ray
|
||||||
|
|
||||||
public HysteriaSettings4Ray? hysteriaSettings { get; set; }
|
public HysteriaSettings4Ray? hysteriaSettings { get; set; }
|
||||||
|
|
||||||
public FinalMask4Ray? finalmask { get; set; }
|
public List<UdpMasks4Ray>? udpmasks { get; set; }
|
||||||
|
|
||||||
public Sockopt4Ray? sockopt { get; set; }
|
public Sockopt4Ray? sockopt { get; set; }
|
||||||
}
|
}
|
||||||
|
|
@ -386,6 +386,8 @@ public class Header4Ray
|
||||||
public object request { get; set; }
|
public object request { get; set; }
|
||||||
|
|
||||||
public object response { get; set; }
|
public object response { get; set; }
|
||||||
|
|
||||||
|
public string? domain { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class KcpSettings4Ray
|
public class KcpSettings4Ray
|
||||||
|
|
@ -403,6 +405,10 @@ public class KcpSettings4Ray
|
||||||
public int readBufferSize { get; set; }
|
public int readBufferSize { get; set; }
|
||||||
|
|
||||||
public int writeBufferSize { get; set; }
|
public int writeBufferSize { get; set; }
|
||||||
|
|
||||||
|
public Header4Ray header { get; set; }
|
||||||
|
|
||||||
|
public string seed { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class WsSettings4Ray
|
public class WsSettings4Ray
|
||||||
|
|
@ -476,22 +482,15 @@ public class HysteriaUdpHop4Ray
|
||||||
public int? interval { get; set; }
|
public int? interval { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class FinalMask4Ray
|
public class UdpMasks4Ray
|
||||||
{
|
|
||||||
public List<Mask4Ray>? tcp { get; set; }
|
|
||||||
public List<Mask4Ray>? udp { get; set; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public class Mask4Ray
|
|
||||||
{
|
{
|
||||||
public string type { get; set; }
|
public string type { get; set; }
|
||||||
public MaskSettings4Ray? settings { get; set; }
|
public UdpMasksSettings4Ray? settings { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class MaskSettings4Ray
|
public class UdpMasksSettings4Ray
|
||||||
{
|
{
|
||||||
public string? password { get; set; }
|
public string? password { get; set; }
|
||||||
public string? domain { get; set; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class AccountsItem4Ray
|
public class AccountsItem4Ray
|
||||||
|
|
|
||||||
35
v2rayN/ServiceLib/Resx/ResUI.Designer.cs
generated
35
v2rayN/ServiceLib/Resx/ResUI.Designer.cs
generated
|
|
@ -2728,7 +2728,7 @@ namespace ServiceLib.Resx {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 查找类似 Direct Target Resolution Strategy 的本地化字符串。
|
/// 查找类似 Direct Resolution Strategy 的本地化字符串。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string TbDirectResolveStrategy {
|
public static string TbDirectResolveStrategy {
|
||||||
get {
|
get {
|
||||||
|
|
@ -2736,15 +2736,6 @@ namespace ServiceLib.Resx {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 查找类似 If unset or "AsIs", DNS resolution uses the system DNS; otherwise, the internal DNS module is used. 的本地化字符串。
|
|
||||||
/// </summary>
|
|
||||||
public static string TbDirectResolveStrategyTips {
|
|
||||||
get {
|
|
||||||
return ResourceManager.GetString("TbDirectResolveStrategyTips", resourceCulture);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 查找类似 Display GUI 的本地化字符串。
|
/// 查找类似 Display GUI 的本地化字符串。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
@ -2817,15 +2808,6 @@ namespace ServiceLib.Resx {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 查找类似 By default, invoked only during routing for resolution 的本地化字符串。
|
|
||||||
/// </summary>
|
|
||||||
public static string TbDomesticDNSTips {
|
|
||||||
get {
|
|
||||||
return ResourceManager.GetString("TbDomesticDNSTips", resourceCulture);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 查找类似 EchConfigList 的本地化字符串。
|
/// 查找类似 EchConfigList 的本地化字符串。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
@ -3250,7 +3232,7 @@ namespace ServiceLib.Resx {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 查找类似 By default, invoked only during routing for resolution; ensure the remote server can reach this DNS 的本地化字符串。
|
/// 查找类似 Via proxy — please ensure remote availability 的本地化字符串。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string TbRemoteDNSTips {
|
public static string TbRemoteDNSTips {
|
||||||
get {
|
get {
|
||||||
|
|
@ -3259,7 +3241,7 @@ namespace ServiceLib.Resx {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 查找类似 Proxy Target Resolution Strategy 的本地化字符串。
|
/// 查找类似 Remote Resolution Strategy 的本地化字符串。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string TbRemoteResolveStrategy {
|
public static string TbRemoteResolveStrategy {
|
||||||
get {
|
get {
|
||||||
|
|
@ -3267,15 +3249,6 @@ namespace ServiceLib.Resx {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 查找类似 If unset or "AsIs", DNS resolution is performed by the remote server's DNS; otherwise, the internal DNS module is used. 的本地化字符串。
|
|
||||||
/// </summary>
|
|
||||||
public static string TbRemoteResolveStrategyTips {
|
|
||||||
get {
|
|
||||||
return ResourceManager.GetString("TbRemoteResolveStrategyTips", resourceCulture);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 查找类似 Camouflage domain(host) 的本地化字符串。
|
/// 查找类似 Camouflage domain(host) 的本地化字符串。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
@ -4456,7 +4429,7 @@ namespace ServiceLib.Resx {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 查找类似 When configured, validates IPs returned for regional domains (e.g., geosite:cn - geoip:cn), returning only expected IPs 的本地化字符串。
|
/// 查找类似 When configured, validates IPs returned for regional domains (e.g., geosite:cn), returning only expected IPs 的本地化字符串。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string TbValidateDirectExpectedIPsDesc {
|
public static string TbValidateDirectExpectedIPsDesc {
|
||||||
get {
|
get {
|
||||||
|
|
|
||||||
|
|
@ -1419,11 +1419,14 @@
|
||||||
<data name="TbDomesticDNS" xml:space="preserve">
|
<data name="TbDomesticDNS" xml:space="preserve">
|
||||||
<value>Domestic DNS</value>
|
<value>Domestic DNS</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="TbRemoteDNSTips" xml:space="preserve">
|
||||||
|
<value>Via proxy — please ensure remote availability</value>
|
||||||
|
</data>
|
||||||
<data name="TbDirectResolveStrategy" xml:space="preserve">
|
<data name="TbDirectResolveStrategy" xml:space="preserve">
|
||||||
<value>Direct Target Resolution Strategy</value>
|
<value>Direct Resolution Strategy</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbRemoteResolveStrategy" xml:space="preserve">
|
<data name="TbRemoteResolveStrategy" xml:space="preserve">
|
||||||
<value>Proxy Target Resolution Strategy</value>
|
<value>Remote Resolution Strategy</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbAddCommonDNSHosts" xml:space="preserve">
|
<data name="TbAddCommonDNSHosts" xml:space="preserve">
|
||||||
<value>Add Common DNS Hosts</value>
|
<value>Add Common DNS Hosts</value>
|
||||||
|
|
@ -1447,7 +1450,7 @@
|
||||||
<value>Validate Regional Domain IPs</value>
|
<value>Validate Regional Domain IPs</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbValidateDirectExpectedIPsDesc" xml:space="preserve">
|
<data name="TbValidateDirectExpectedIPsDesc" xml:space="preserve">
|
||||||
<value>When configured, validates IPs returned for regional domains (e.g., geosite:cn - geoip:cn), returning only expected IPs</value>
|
<value>When configured, validates IPs returned for regional domains (e.g., geosite:cn), returning only expected IPs</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbCustomDNSEnable" xml:space="preserve">
|
<data name="TbCustomDNSEnable" xml:space="preserve">
|
||||||
<value>Enable Custom DNS</value>
|
<value>Enable Custom DNS</value>
|
||||||
|
|
@ -1653,16 +1656,4 @@ The "Get Certificate" action may fail if a self-signed certificate is used or if
|
||||||
<data name="TbParallelQuery" xml:space="preserve">
|
<data name="TbParallelQuery" xml:space="preserve">
|
||||||
<value>Parallel Query</value>
|
<value>Parallel Query</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbDomesticDNSTips" xml:space="preserve">
|
|
||||||
<value>By default, invoked only during routing for resolution</value>
|
|
||||||
</data>
|
|
||||||
<data name="TbRemoteDNSTips" xml:space="preserve">
|
|
||||||
<value>By default, invoked only during routing for resolution; ensure the remote server can reach this DNS</value>
|
|
||||||
</data>
|
|
||||||
<data name="TbDirectResolveStrategyTips" xml:space="preserve">
|
|
||||||
<value>If unset or "AsIs", DNS resolution uses the system DNS; otherwise, the internal DNS module is used.</value>
|
|
||||||
</data>
|
|
||||||
<data name="TbRemoteResolveStrategyTips" xml:space="preserve">
|
|
||||||
<value>If unset or "AsIs", DNS resolution is performed by the remote server's DNS; otherwise, the internal DNS module is used.</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
</root>
|
||||||
|
|
@ -1416,11 +1416,14 @@
|
||||||
<data name="TbDomesticDNS" xml:space="preserve">
|
<data name="TbDomesticDNS" xml:space="preserve">
|
||||||
<value>DNS direct</value>
|
<value>DNS direct</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="TbRemoteDNSTips" xml:space="preserve">
|
||||||
|
<value>Via le proxy ; assurez-vous que le serveur distant est disponible</value>
|
||||||
|
</data>
|
||||||
<data name="TbDirectResolveStrategy" xml:space="preserve">
|
<data name="TbDirectResolveStrategy" xml:space="preserve">
|
||||||
<value>Direct Target Resolution Strategy</value>
|
<value>Stratégie de résolution directe</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbRemoteResolveStrategy" xml:space="preserve">
|
<data name="TbRemoteResolveStrategy" xml:space="preserve">
|
||||||
<value>Proxy Target Resolution Strategy</value>
|
<value>Stratégie de résolution distante</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbAddCommonDNSHosts" xml:space="preserve">
|
<data name="TbAddCommonDNSHosts" xml:space="preserve">
|
||||||
<value>Ajouter des hôtes DNS courants</value>
|
<value>Ajouter des hôtes DNS courants</value>
|
||||||
|
|
@ -1444,7 +1447,7 @@
|
||||||
<value>Valider les IP des domaines de la région concernée</value>
|
<value>Valider les IP des domaines de la région concernée</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbValidateDirectExpectedIPsDesc" xml:space="preserve">
|
<data name="TbValidateDirectExpectedIPsDesc" xml:space="preserve">
|
||||||
<value>Après config, les IP renvoyées des domaines régionaux (ex. geosite:cn - geoip:cn) seront vérifiées ; seules les IP attendues seront retournées.</value>
|
<value>Après config, les IP renvoyées des domaines régionaux (ex. geosite:cn) seront vérifiées ; seules les IP attendues seront retournées.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbCustomDNSEnable" xml:space="preserve">
|
<data name="TbCustomDNSEnable" xml:space="preserve">
|
||||||
<value>Activer le DNS personnalisé</value>
|
<value>Activer le DNS personnalisé</value>
|
||||||
|
|
@ -1650,16 +1653,4 @@ The "Get Certificate" action may fail if a self-signed certificate is used or if
|
||||||
<data name="TbParallelQuery" xml:space="preserve">
|
<data name="TbParallelQuery" xml:space="preserve">
|
||||||
<value>Parallel Query</value>
|
<value>Parallel Query</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbDomesticDNSTips" xml:space="preserve">
|
|
||||||
<value>By default, invoked only during routing for resolution</value>
|
|
||||||
</data>
|
|
||||||
<data name="TbRemoteDNSTips" xml:space="preserve">
|
|
||||||
<value>By default, invoked only during routing for resolution; ensure the remote server can reach this DNS</value>
|
|
||||||
</data>
|
|
||||||
<data name="TbDirectResolveStrategyTips" xml:space="preserve">
|
|
||||||
<value>If unset or "AsIs", DNS resolution uses the system DNS; otherwise, the internal DNS module is used.</value>
|
|
||||||
</data>
|
|
||||||
<data name="TbRemoteResolveStrategyTips" xml:space="preserve">
|
|
||||||
<value>If unset or "AsIs", DNS resolution is performed by the remote server's DNS; otherwise, the internal DNS module is used.</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
</root>
|
||||||
|
|
@ -1419,11 +1419,14 @@
|
||||||
<data name="TbDomesticDNS" xml:space="preserve">
|
<data name="TbDomesticDNS" xml:space="preserve">
|
||||||
<value>Domestic DNS</value>
|
<value>Domestic DNS</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="TbRemoteDNSTips" xml:space="preserve">
|
||||||
|
<value>Via proxy — please ensure remote availability</value>
|
||||||
|
</data>
|
||||||
<data name="TbDirectResolveStrategy" xml:space="preserve">
|
<data name="TbDirectResolveStrategy" xml:space="preserve">
|
||||||
<value>Direct Target Resolution Strategy</value>
|
<value>Direct Resolution Strategy</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbRemoteResolveStrategy" xml:space="preserve">
|
<data name="TbRemoteResolveStrategy" xml:space="preserve">
|
||||||
<value>Proxy Target Resolution Strategy</value>
|
<value>Remote Resolution Strategy</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbAddCommonDNSHosts" xml:space="preserve">
|
<data name="TbAddCommonDNSHosts" xml:space="preserve">
|
||||||
<value>Add Common DNS Hosts</value>
|
<value>Add Common DNS Hosts</value>
|
||||||
|
|
@ -1447,7 +1450,7 @@
|
||||||
<value>Validate Regional Domain IPs</value>
|
<value>Validate Regional Domain IPs</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbValidateDirectExpectedIPsDesc" xml:space="preserve">
|
<data name="TbValidateDirectExpectedIPsDesc" xml:space="preserve">
|
||||||
<value>When configured, validates IPs returned for regional domains (e.g., geosite:cn - geoip:cn), returning only expected IPs</value>
|
<value>When configured, validates IPs returned for regional domains (e.g., geosite:cn), returning only expected IPs</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbCustomDNSEnable" xml:space="preserve">
|
<data name="TbCustomDNSEnable" xml:space="preserve">
|
||||||
<value>Enable Custom DNS</value>
|
<value>Enable Custom DNS</value>
|
||||||
|
|
@ -1653,16 +1656,4 @@ The "Get Certificate" action may fail if a self-signed certificate is used or if
|
||||||
<data name="TbParallelQuery" xml:space="preserve">
|
<data name="TbParallelQuery" xml:space="preserve">
|
||||||
<value>Parallel Query</value>
|
<value>Parallel Query</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbDomesticDNSTips" xml:space="preserve">
|
|
||||||
<value>By default, invoked only during routing for resolution</value>
|
|
||||||
</data>
|
|
||||||
<data name="TbRemoteDNSTips" xml:space="preserve">
|
|
||||||
<value>By default, invoked only during routing for resolution; ensure the remote server can reach this DNS</value>
|
|
||||||
</data>
|
|
||||||
<data name="TbDirectResolveStrategyTips" xml:space="preserve">
|
|
||||||
<value>If unset or "AsIs", DNS resolution uses the system DNS; otherwise, the internal DNS module is used.</value>
|
|
||||||
</data>
|
|
||||||
<data name="TbRemoteResolveStrategyTips" xml:space="preserve">
|
|
||||||
<value>If unset or "AsIs", DNS resolution is performed by the remote server's DNS; otherwise, the internal DNS module is used.</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
</root>
|
||||||
|
|
@ -1419,11 +1419,14 @@
|
||||||
<data name="TbDomesticDNS" xml:space="preserve">
|
<data name="TbDomesticDNS" xml:space="preserve">
|
||||||
<value>Domestic DNS</value>
|
<value>Domestic DNS</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="TbRemoteDNSTips" xml:space="preserve">
|
||||||
|
<value>Via proxy — please ensure remote availability</value>
|
||||||
|
</data>
|
||||||
<data name="TbDirectResolveStrategy" xml:space="preserve">
|
<data name="TbDirectResolveStrategy" xml:space="preserve">
|
||||||
<value>Direct Target Resolution Strategy</value>
|
<value>Direct Resolution Strategy</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbRemoteResolveStrategy" xml:space="preserve">
|
<data name="TbRemoteResolveStrategy" xml:space="preserve">
|
||||||
<value>Proxy Target Resolution Strategy</value>
|
<value>Remote Resolution Strategy</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbAddCommonDNSHosts" xml:space="preserve">
|
<data name="TbAddCommonDNSHosts" xml:space="preserve">
|
||||||
<value>Add Common DNS Hosts</value>
|
<value>Add Common DNS Hosts</value>
|
||||||
|
|
@ -1447,7 +1450,7 @@
|
||||||
<value>Validate Regional Domain IPs</value>
|
<value>Validate Regional Domain IPs</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbValidateDirectExpectedIPsDesc" xml:space="preserve">
|
<data name="TbValidateDirectExpectedIPsDesc" xml:space="preserve">
|
||||||
<value>When configured, validates IPs returned for regional domains (e.g., geosite:cn - geoip:cn), returning only expected IPs</value>
|
<value>When configured, validates IPs returned for regional domains (e.g., geosite:cn), returning only expected IPs</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbCustomDNSEnable" xml:space="preserve">
|
<data name="TbCustomDNSEnable" xml:space="preserve">
|
||||||
<value>Enable Custom DNS</value>
|
<value>Enable Custom DNS</value>
|
||||||
|
|
@ -1653,16 +1656,4 @@ The "Get Certificate" action may fail if a self-signed certificate is used or if
|
||||||
<data name="TbParallelQuery" xml:space="preserve">
|
<data name="TbParallelQuery" xml:space="preserve">
|
||||||
<value>Parallel Query</value>
|
<value>Parallel Query</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbDomesticDNSTips" xml:space="preserve">
|
|
||||||
<value>By default, invoked only during routing for resolution</value>
|
|
||||||
</data>
|
|
||||||
<data name="TbRemoteDNSTips" xml:space="preserve">
|
|
||||||
<value>By default, invoked only during routing for resolution; ensure the remote server can reach this DNS</value>
|
|
||||||
</data>
|
|
||||||
<data name="TbDirectResolveStrategyTips" xml:space="preserve">
|
|
||||||
<value>If unset or "AsIs", DNS resolution uses the system DNS; otherwise, the internal DNS module is used.</value>
|
|
||||||
</data>
|
|
||||||
<data name="TbRemoteResolveStrategyTips" xml:space="preserve">
|
|
||||||
<value>If unset or "AsIs", DNS resolution is performed by the remote server's DNS; otherwise, the internal DNS module is used.</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
</root>
|
||||||
|
|
@ -1419,11 +1419,14 @@
|
||||||
<data name="TbDomesticDNS" xml:space="preserve">
|
<data name="TbDomesticDNS" xml:space="preserve">
|
||||||
<value>Внутренний DNS</value>
|
<value>Внутренний DNS</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="TbRemoteDNSTips" xml:space="preserve">
|
||||||
|
<value>Via proxy — please ensure remote availability</value>
|
||||||
|
</data>
|
||||||
<data name="TbDirectResolveStrategy" xml:space="preserve">
|
<data name="TbDirectResolveStrategy" xml:space="preserve">
|
||||||
<value>Direct Target Resolution Strategy</value>
|
<value>Стратегия прямого резолвинга</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbRemoteResolveStrategy" xml:space="preserve">
|
<data name="TbRemoteResolveStrategy" xml:space="preserve">
|
||||||
<value>Proxy Target Resolution Strategy</value>
|
<value>Стратегия удалённого резолвинга</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbAddCommonDNSHosts" xml:space="preserve">
|
<data name="TbAddCommonDNSHosts" xml:space="preserve">
|
||||||
<value>Добавить стандартные записи hosts (DNS)</value>
|
<value>Добавить стандартные записи hosts (DNS)</value>
|
||||||
|
|
@ -1447,7 +1450,7 @@
|
||||||
<value>Проверять IP-адреса региональных доменов</value>
|
<value>Проверять IP-адреса региональных доменов</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbValidateDirectExpectedIPsDesc" xml:space="preserve">
|
<data name="TbValidateDirectExpectedIPsDesc" xml:space="preserve">
|
||||||
<value>При включении проверяет IP-адреса, возвращаемые для региональных доменов (например, geosite:cn - geoip:cn), и оставляет только ожидаемые IP-адреса</value>
|
<value>При включении проверяет IP-адреса, возвращаемые для региональных доменов (например, geosite:cn), и оставляет только ожидаемые IP-адреса</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbCustomDNSEnable" xml:space="preserve">
|
<data name="TbCustomDNSEnable" xml:space="preserve">
|
||||||
<value>Включить пользовательский DNS</value>
|
<value>Включить пользовательский DNS</value>
|
||||||
|
|
@ -1653,16 +1656,4 @@ The "Get Certificate" action may fail if a self-signed certificate is used or if
|
||||||
<data name="TbParallelQuery" xml:space="preserve">
|
<data name="TbParallelQuery" xml:space="preserve">
|
||||||
<value>Parallel Query</value>
|
<value>Parallel Query</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbDomesticDNSTips" xml:space="preserve">
|
|
||||||
<value>By default, invoked only during routing for resolution</value>
|
|
||||||
</data>
|
|
||||||
<data name="TbRemoteDNSTips" xml:space="preserve">
|
|
||||||
<value>By default, invoked only during routing for resolution; ensure the remote server can reach this DNS</value>
|
|
||||||
</data>
|
|
||||||
<data name="TbDirectResolveStrategyTips" xml:space="preserve">
|
|
||||||
<value>If unset or "AsIs", DNS resolution uses the system DNS; otherwise, the internal DNS module is used.</value>
|
|
||||||
</data>
|
|
||||||
<data name="TbRemoteResolveStrategyTips" xml:space="preserve">
|
|
||||||
<value>If unset or "AsIs", DNS resolution is performed by the remote server's DNS; otherwise, the internal DNS module is used.</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
</root>
|
||||||
|
|
@ -1416,11 +1416,14 @@
|
||||||
<data name="TbDomesticDNS" xml:space="preserve">
|
<data name="TbDomesticDNS" xml:space="preserve">
|
||||||
<value>直连 DNS</value>
|
<value>直连 DNS</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="TbRemoteDNSTips" xml:space="preserve">
|
||||||
|
<value>通过代理,请确保远程可用</value>
|
||||||
|
</data>
|
||||||
<data name="TbDirectResolveStrategy" xml:space="preserve">
|
<data name="TbDirectResolveStrategy" xml:space="preserve">
|
||||||
<value>直连目标解析策略</value>
|
<value>直连解析策略</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbRemoteResolveStrategy" xml:space="preserve">
|
<data name="TbRemoteResolveStrategy" xml:space="preserve">
|
||||||
<value>代理目标解析策略</value>
|
<value>远程解析策略</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbAddCommonDNSHosts" xml:space="preserve">
|
<data name="TbAddCommonDNSHosts" xml:space="preserve">
|
||||||
<value>添加常用 DNS Hosts</value>
|
<value>添加常用 DNS Hosts</value>
|
||||||
|
|
@ -1444,7 +1447,7 @@
|
||||||
<value>校验相应地区域名 IP</value>
|
<value>校验相应地区域名 IP</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbValidateDirectExpectedIPsDesc" xml:space="preserve">
|
<data name="TbValidateDirectExpectedIPsDesc" xml:space="preserve">
|
||||||
<value>配置后,会对相应地区域名(如 geosite:cn - geoip:cn)的返回 IP 进行校验,仅返回期望 IP</value>
|
<value>配置后,会对相应地区域名(如 geosite:cn)的返回 IP 进行校验,仅返回期望 IP</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbCustomDNSEnable" xml:space="preserve">
|
<data name="TbCustomDNSEnable" xml:space="preserve">
|
||||||
<value>启用自定义 DNS</value>
|
<value>启用自定义 DNS</value>
|
||||||
|
|
@ -1650,16 +1653,4 @@
|
||||||
<data name="TbParallelQuery" xml:space="preserve">
|
<data name="TbParallelQuery" xml:space="preserve">
|
||||||
<value>并行查询</value>
|
<value>并行查询</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbDomesticDNSTips" xml:space="preserve">
|
|
||||||
<value>默认仅在路由阶段被调用解析</value>
|
|
||||||
</data>
|
|
||||||
<data name="TbRemoteDNSTips" xml:space="preserve">
|
|
||||||
<value>默认仅在路由阶段被调用解析;请确保远程服务器可访问该 DNS</value>
|
|
||||||
</data>
|
|
||||||
<data name="TbDirectResolveStrategyTips" xml:space="preserve">
|
|
||||||
<value>当未选择或 "AsIs" 时,使用系统 DNS 进行解析;否则,使用内部 DNS 模块解析。</value>
|
|
||||||
</data>
|
|
||||||
<data name="TbRemoteResolveStrategyTips" xml:space="preserve">
|
|
||||||
<value>当未选择或 "AsIs" 时,由远程服务器端 DNS 解析;否则,使用内部 DNS 模块解析。</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
</root>
|
||||||
|
|
@ -1416,11 +1416,14 @@
|
||||||
<data name="TbDomesticDNS" xml:space="preserve">
|
<data name="TbDomesticDNS" xml:space="preserve">
|
||||||
<value>直連 DNS</value>
|
<value>直連 DNS</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="TbRemoteDNSTips" xml:space="preserve">
|
||||||
|
<value>通过代理,请确保远程可用</value>
|
||||||
|
</data>
|
||||||
<data name="TbDirectResolveStrategy" xml:space="preserve">
|
<data name="TbDirectResolveStrategy" xml:space="preserve">
|
||||||
<value>直連目標解析策略</value>
|
<value>直連解析策略</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbRemoteResolveStrategy" xml:space="preserve">
|
<data name="TbRemoteResolveStrategy" xml:space="preserve">
|
||||||
<value>代理目標解析策略</value>
|
<value>遠程解析策略</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbAddCommonDNSHosts" xml:space="preserve">
|
<data name="TbAddCommonDNSHosts" xml:space="preserve">
|
||||||
<value>新增常用 DNS Hosts</value>
|
<value>新增常用 DNS Hosts</value>
|
||||||
|
|
@ -1444,7 +1447,7 @@
|
||||||
<value>校驗相應地區域名 IP</value>
|
<value>校驗相應地區域名 IP</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbValidateDirectExpectedIPsDesc" xml:space="preserve">
|
<data name="TbValidateDirectExpectedIPsDesc" xml:space="preserve">
|
||||||
<value>配置後,會對相應地區域名(如 geosite:cn - geoip:cn)的返回 IP 進行校驗,僅返回期望 IP</value>
|
<value>配置後,會對相應地區域名(如 geosite:cn)的返回 IP 進行校驗,僅返回期望 IP</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbCustomDNSEnable" xml:space="preserve">
|
<data name="TbCustomDNSEnable" xml:space="preserve">
|
||||||
<value>啟用自訂 DNS</value>
|
<value>啟用自訂 DNS</value>
|
||||||
|
|
@ -1650,16 +1653,4 @@
|
||||||
<data name="TbParallelQuery" xml:space="preserve">
|
<data name="TbParallelQuery" xml:space="preserve">
|
||||||
<value>Parallel Query</value>
|
<value>Parallel Query</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbDomesticDNSTips" xml:space="preserve">
|
|
||||||
<value>By default, invoked only during routing for resolution</value>
|
|
||||||
</data>
|
|
||||||
<data name="TbRemoteDNSTips" xml:space="preserve">
|
|
||||||
<value>By default, invoked only during routing for resolution; ensure the remote server can reach this DNS</value>
|
|
||||||
</data>
|
|
||||||
<data name="TbDirectResolveStrategyTips" xml:space="preserve">
|
|
||||||
<value>If unset or "AsIs", DNS resolution uses the system DNS; otherwise, the internal DNS module is used.</value>
|
|
||||||
</data>
|
|
||||||
<data name="TbRemoteResolveStrategyTips" xml:space="preserve">
|
|
||||||
<value>If unset or "AsIs", DNS resolution is performed by the remote server's DNS; otherwise, the internal DNS module is used.</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
</root>
|
||||||
|
|
@ -280,9 +280,7 @@ public partial class CoreConfigSingboxService
|
||||||
if (_config.TunModeItem.EnableTun && item.Process?.Count > 0)
|
if (_config.TunModeItem.EnableTun && item.Process?.Count > 0)
|
||||||
{
|
{
|
||||||
var ruleProcName = JsonUtils.DeepCopy(rule3);
|
var ruleProcName = JsonUtils.DeepCopy(rule3);
|
||||||
ruleProcName.process_name ??= [];
|
|
||||||
var ruleProcPath = JsonUtils.DeepCopy(rule3);
|
var ruleProcPath = JsonUtils.DeepCopy(rule3);
|
||||||
ruleProcPath.process_path ??= [];
|
|
||||||
foreach (var process in item.Process)
|
foreach (var process in item.Process)
|
||||||
{
|
{
|
||||||
// sing-box doesn't support this, fall back to process name match
|
// sing-box doesn't support this, fall back to process name match
|
||||||
|
|
|
||||||
|
|
@ -325,7 +325,6 @@ public partial class CoreConfigV2rayService
|
||||||
else if (!node.CertSha.IsNullOrEmpty())
|
else if (!node.CertSha.IsNullOrEmpty())
|
||||||
{
|
{
|
||||||
tlsSettings.pinnedPeerCertSha256 = node.CertSha;
|
tlsSettings.pinnedPeerCertSha256 = node.CertSha;
|
||||||
tlsSettings.allowInsecure = false;
|
|
||||||
}
|
}
|
||||||
streamSettings.tlsSettings = tlsSettings;
|
streamSettings.tlsSettings = tlsSettings;
|
||||||
}
|
}
|
||||||
|
|
@ -365,33 +364,14 @@ public partial class CoreConfigV2rayService
|
||||||
kcpSettings.congestion = _config.KcpItem.Congestion;
|
kcpSettings.congestion = _config.KcpItem.Congestion;
|
||||||
kcpSettings.readBufferSize = _config.KcpItem.ReadBufferSize;
|
kcpSettings.readBufferSize = _config.KcpItem.ReadBufferSize;
|
||||||
kcpSettings.writeBufferSize = _config.KcpItem.WriteBufferSize;
|
kcpSettings.writeBufferSize = _config.KcpItem.WriteBufferSize;
|
||||||
streamSettings.finalmask ??= new();
|
kcpSettings.header = new Header4Ray
|
||||||
if (Global.KcpHeaderMaskMap.TryGetValue(node.HeaderType, out var header))
|
|
||||||
{
|
{
|
||||||
streamSettings.finalmask.udp =
|
type = node.HeaderType,
|
||||||
[
|
domain = host.NullIfEmpty()
|
||||||
new Mask4Ray
|
};
|
||||||
{
|
if (path.IsNotEmpty())
|
||||||
type = header,
|
|
||||||
settings = node.HeaderType == "dns" && !host.IsNullOrEmpty() ? new MaskSettings4Ray { domain = host } : null
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
streamSettings.finalmask.udp ??= [];
|
|
||||||
if (path.IsNullOrEmpty())
|
|
||||||
{
|
{
|
||||||
streamSettings.finalmask.udp.Add(new Mask4Ray
|
kcpSettings.seed = path;
|
||||||
{
|
|
||||||
type = "mkcp-original"
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
streamSettings.finalmask.udp.Add(new Mask4Ray
|
|
||||||
{
|
|
||||||
type = "mkcp-aes128gcm",
|
|
||||||
settings = new MaskSettings4Ray { password = path }
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
streamSettings.kcpSettings = kcpSettings;
|
streamSettings.kcpSettings = kcpSettings;
|
||||||
break;
|
break;
|
||||||
|
|
@ -532,15 +512,8 @@ public partial class CoreConfigV2rayService
|
||||||
streamSettings.hysteriaSettings = hysteriaSettings;
|
streamSettings.hysteriaSettings = hysteriaSettings;
|
||||||
if (node.Path.IsNotEmpty())
|
if (node.Path.IsNotEmpty())
|
||||||
{
|
{
|
||||||
streamSettings.finalmask ??= new();
|
streamSettings.udpmasks =
|
||||||
streamSettings.finalmask.udp =
|
[new() { type = "salamander", settings = new() { password = node.Path.TrimEx(), } }];
|
||||||
[
|
|
||||||
new Mask4Ray
|
|
||||||
{
|
|
||||||
type = "salamander",
|
|
||||||
settings = new MaskSettings4Ray { password = node.Path.TrimEx(), }
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -61,15 +61,7 @@
|
||||||
Grid.Column="1"
|
Grid.Column="1"
|
||||||
Width="300"
|
Width="300"
|
||||||
Margin="{StaticResource Margin4}"
|
Margin="{StaticResource Margin4}"
|
||||||
VerticalAlignment="Center"
|
|
||||||
IsEditable="True" />
|
IsEditable="True" />
|
||||||
<TextBlock
|
|
||||||
Grid.Row="1"
|
|
||||||
Grid.Column="2"
|
|
||||||
Margin="{StaticResource Margin4}"
|
|
||||||
VerticalAlignment="Center"
|
|
||||||
Text="{x:Static resx:ResUI.TbDomesticDNSTips}"
|
|
||||||
TextWrapping="Wrap" />
|
|
||||||
|
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Grid.Row="2"
|
Grid.Row="2"
|
||||||
|
|
@ -83,7 +75,6 @@
|
||||||
Grid.Column="1"
|
Grid.Column="1"
|
||||||
Width="300"
|
Width="300"
|
||||||
Margin="{StaticResource Margin4}"
|
Margin="{StaticResource Margin4}"
|
||||||
VerticalAlignment="Center"
|
|
||||||
IsEditable="True" />
|
IsEditable="True" />
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Grid.Row="2"
|
Grid.Row="2"
|
||||||
|
|
@ -92,7 +83,7 @@
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Text="{x:Static resx:ResUI.TbRemoteDNSTips}"
|
Text="{x:Static resx:ResUI.TbRemoteDNSTips}"
|
||||||
TextWrapping="Wrap" />
|
TextWrapping="Wrap" />
|
||||||
|
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Grid.Row="3"
|
Grid.Row="3"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
|
|
@ -105,7 +96,6 @@
|
||||||
Grid.Column="1"
|
Grid.Column="1"
|
||||||
Width="300"
|
Width="300"
|
||||||
Margin="{StaticResource Margin4}"
|
Margin="{StaticResource Margin4}"
|
||||||
VerticalAlignment="Center"
|
|
||||||
IsEditable="True" />
|
IsEditable="True" />
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Grid.Row="3"
|
Grid.Row="3"
|
||||||
|
|
@ -127,15 +117,7 @@
|
||||||
Grid.Column="1"
|
Grid.Column="1"
|
||||||
Width="200"
|
Width="200"
|
||||||
Margin="{StaticResource Margin4}"
|
Margin="{StaticResource Margin4}"
|
||||||
VerticalAlignment="Center"
|
|
||||||
PlaceholderText="Default" />
|
PlaceholderText="Default" />
|
||||||
<TextBlock
|
|
||||||
Grid.Row="5"
|
|
||||||
Grid.Column="2"
|
|
||||||
Margin="{StaticResource Margin4}"
|
|
||||||
VerticalAlignment="Center"
|
|
||||||
Text="{x:Static resx:ResUI.TbDirectResolveStrategyTips}"
|
|
||||||
TextWrapping="Wrap" />
|
|
||||||
|
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Grid.Row="6"
|
Grid.Row="6"
|
||||||
|
|
@ -149,16 +131,8 @@
|
||||||
Grid.Column="1"
|
Grid.Column="1"
|
||||||
Width="200"
|
Width="200"
|
||||||
Margin="{StaticResource Margin4}"
|
Margin="{StaticResource Margin4}"
|
||||||
VerticalAlignment="Center"
|
|
||||||
PlaceholderText="Default" />
|
PlaceholderText="Default" />
|
||||||
<TextBlock
|
|
||||||
Grid.Row="6"
|
|
||||||
Grid.Column="2"
|
|
||||||
Margin="{StaticResource Margin4}"
|
|
||||||
VerticalAlignment="Center"
|
|
||||||
Text="{x:Static resx:ResUI.TbRemoteResolveStrategyTips}"
|
|
||||||
TextWrapping="Wrap" />
|
|
||||||
|
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Grid.Row="7"
|
Grid.Row="7"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
|
|
@ -170,9 +144,8 @@
|
||||||
Grid.Row="7"
|
Grid.Row="7"
|
||||||
Grid.Column="1"
|
Grid.Column="1"
|
||||||
Margin="{StaticResource Margin4}"
|
Margin="{StaticResource Margin4}"
|
||||||
HorizontalAlignment="Left"
|
HorizontalAlignment="Left" />
|
||||||
VerticalAlignment="Center" />
|
|
||||||
|
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Grid.Row="8"
|
Grid.Row="8"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
|
|
@ -184,8 +157,7 @@
|
||||||
Grid.Row="8"
|
Grid.Row="8"
|
||||||
Grid.Column="1"
|
Grid.Column="1"
|
||||||
Margin="{StaticResource Margin4}"
|
Margin="{StaticResource Margin4}"
|
||||||
HorizontalAlignment="Left"
|
HorizontalAlignment="Left" />
|
||||||
VerticalAlignment="Center" />
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</ScrollViewer>
|
</ScrollViewer>
|
||||||
</TabItem>
|
</TabItem>
|
||||||
|
|
@ -217,8 +189,7 @@
|
||||||
Grid.Row="1"
|
Grid.Row="1"
|
||||||
Grid.Column="1"
|
Grid.Column="1"
|
||||||
Margin="{StaticResource Margin4}"
|
Margin="{StaticResource Margin4}"
|
||||||
HorizontalAlignment="Left"
|
HorizontalAlignment="Left" />
|
||||||
VerticalAlignment="Center" />
|
|
||||||
|
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Grid.Row="2"
|
Grid.Row="2"
|
||||||
|
|
@ -231,8 +202,7 @@
|
||||||
Grid.Row="2"
|
Grid.Row="2"
|
||||||
Grid.Column="1"
|
Grid.Column="1"
|
||||||
Margin="{StaticResource Margin4}"
|
Margin="{StaticResource Margin4}"
|
||||||
HorizontalAlignment="Left"
|
HorizontalAlignment="Left" />
|
||||||
VerticalAlignment="Center" />
|
|
||||||
|
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Grid.Row="3"
|
Grid.Row="3"
|
||||||
|
|
@ -245,8 +215,7 @@
|
||||||
Grid.Row="3"
|
Grid.Row="3"
|
||||||
Grid.Column="1"
|
Grid.Column="1"
|
||||||
Margin="{StaticResource Margin4}"
|
Margin="{StaticResource Margin4}"
|
||||||
HorizontalAlignment="Left"
|
HorizontalAlignment="Left" />
|
||||||
VerticalAlignment="Center" />
|
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Grid.Row="3"
|
Grid.Row="3"
|
||||||
Grid.Column="2"
|
Grid.Column="2"
|
||||||
|
|
@ -266,8 +235,7 @@
|
||||||
Grid.Row="4"
|
Grid.Row="4"
|
||||||
Grid.Column="1"
|
Grid.Column="1"
|
||||||
Margin="{StaticResource Margin4}"
|
Margin="{StaticResource Margin4}"
|
||||||
HorizontalAlignment="Left"
|
HorizontalAlignment="Left" />
|
||||||
VerticalAlignment="Center" />
|
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Grid.Row="4"
|
Grid.Row="4"
|
||||||
Grid.Column="2"
|
Grid.Column="2"
|
||||||
|
|
@ -288,7 +256,6 @@
|
||||||
Grid.Column="1"
|
Grid.Column="1"
|
||||||
Width="200"
|
Width="200"
|
||||||
Margin="{StaticResource Margin4}"
|
Margin="{StaticResource Margin4}"
|
||||||
VerticalAlignment="Center"
|
|
||||||
IsEditable="True" />
|
IsEditable="True" />
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Grid.Row="5"
|
Grid.Row="5"
|
||||||
|
|
|
||||||
|
|
@ -84,14 +84,6 @@
|
||||||
Margin="{StaticResource Margin8}"
|
Margin="{StaticResource Margin8}"
|
||||||
IsEditable="True"
|
IsEditable="True"
|
||||||
Style="{StaticResource DefComboBox}" />
|
Style="{StaticResource DefComboBox}" />
|
||||||
<TextBlock
|
|
||||||
Grid.Row="1"
|
|
||||||
Grid.Column="2"
|
|
||||||
Margin="{StaticResource Margin8}"
|
|
||||||
VerticalAlignment="Center"
|
|
||||||
Style="{StaticResource ToolbarTextBlock}"
|
|
||||||
Text="{x:Static resx:ResUI.TbDomesticDNSTips}"
|
|
||||||
TextWrapping="Wrap" />
|
|
||||||
|
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Grid.Row="2"
|
Grid.Row="2"
|
||||||
|
|
@ -156,14 +148,6 @@
|
||||||
Margin="{StaticResource Margin8}"
|
Margin="{StaticResource Margin8}"
|
||||||
materialDesign:HintAssist.Hint="Default"
|
materialDesign:HintAssist.Hint="Default"
|
||||||
Style="{StaticResource DefComboBox}" />
|
Style="{StaticResource DefComboBox}" />
|
||||||
<TextBlock
|
|
||||||
Grid.Row="5"
|
|
||||||
Grid.Column="2"
|
|
||||||
Margin="{StaticResource Margin8}"
|
|
||||||
VerticalAlignment="Center"
|
|
||||||
Style="{StaticResource ToolbarTextBlock}"
|
|
||||||
Text="{x:Static resx:ResUI.TbDirectResolveStrategyTips}"
|
|
||||||
TextWrapping="Wrap" />
|
|
||||||
|
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Grid.Row="6"
|
Grid.Row="6"
|
||||||
|
|
@ -180,14 +164,6 @@
|
||||||
Margin="{StaticResource Margin8}"
|
Margin="{StaticResource Margin8}"
|
||||||
materialDesign:HintAssist.Hint="Default"
|
materialDesign:HintAssist.Hint="Default"
|
||||||
Style="{StaticResource DefComboBox}" />
|
Style="{StaticResource DefComboBox}" />
|
||||||
<TextBlock
|
|
||||||
Grid.Row="6"
|
|
||||||
Grid.Column="2"
|
|
||||||
Margin="{StaticResource Margin8}"
|
|
||||||
VerticalAlignment="Center"
|
|
||||||
Style="{StaticResource ToolbarTextBlock}"
|
|
||||||
Text="{x:Static resx:ResUI.TbRemoteResolveStrategyTips}"
|
|
||||||
TextWrapping="Wrap" />
|
|
||||||
|
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Grid.Row="7"
|
Grid.Row="7"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue