update 2026-08-11 00:49:36

This commit is contained in:
action committed 2026-08-11 00:49:36 +08:00
1 parent ea41c17f86
commit cde341f140
6 files changed
+57 -18

No files matched your search

@@ -1992,6 +1992,7 @@ function gen_config(var)
end
end
dns.final = default_dns_flag
dns.strategy = default_dns_flag == "remote" and remote_strategy or direct_strategy
--按分流顺序DNS
if dns_domain_rules and #dns_domain_rules > 0 then
@@ -2015,12 +2016,43 @@ function gen_config(var)
dns_rule.disable_cache = nil
end
if value.outboundTag == "direct" then
dns_rule.strategy = direct_strategy
local block_rule
if direct_strategy == "ipv4_only" then
block_rule = api.clone(dns_rule)
block_rule.query_type = { "AAAA" }
elseif direct_strategy == "ipv6_only" then
block_rule = api.clone(dns_rule)
block_rule.query_type = { "A" }
end
if block_rule then
block_rule.action = "predefined"
block_rule.rcode = "NOERROR"
block_rule.disable_cache = nil
block_rule.server = nil
table.insert(dns.rules, block_rule)
end
end
if value.outboundTag ~= "block" and value.outboundTag ~= "direct" then
dns_rule.server = "remote"
dns_rule.rewrite_ttl = 30
dns_rule.strategy = remote_strategy
if true then
local block_rule
if remote_strategy == "ipv4_only" then
block_rule = api.clone(dns_rule)
block_rule.query_type = { "AAAA" }
elseif remote_strategy == "ipv6_only" then
block_rule = api.clone(dns_rule)
block_rule.query_type = { "A" }
end
if block_rule then
block_rule.action = "predefined"
block_rule.rcode = "NOERROR"
block_rule.disable_cache = nil
block_rule.server = nil
block_rule.rewrite_ttl = nil
table.insert(dns.rules, block_rule)
end
end
dns_rule.client_subnet = remote_dns_client_ip
if value.outboundTag ~= COMMON.default_outbound_tag and (remote_server.address or remote_server.server) then
local remote_dns_server = api.clone(remote_server)
@@ -2033,9 +2065,13 @@ function gen_config(var)
end
if value.fakedns then
local fakedns_dns_rule = api.clone(dns_rule)
fakedns_dns_rule.query_type = {
"A", "AAAA"
}
if remote_strategy == "ipv4_only" then
fakedns_dns_rule.query_type = { "A" }
elseif remote_strategy == "ipv6_only" then
fakedns_dns_rule.query_type = { "AAAA" }
else
fakedns_dns_rule.query_type = { "A", "AAAA" }
end
fakedns_dns_rule.server = fakedns_tag
fakedns_dns_rule.disable_cache = true
table.insert(dns.rules, fakedns_dns_rule)
@@ -2046,23 +2082,26 @@ function gen_config(var)
end
end
if default_dns_flag == "remote" then
local dns_rule_query_type = { "A", "AAAA" }
if remote_strategy == "ipv4_only" then
dns_rule_query_type = { "A" }
elseif remote_strategy == "ipv6_only" then
dns_rule_query_type = { "AAAA" }
end
if remote_dns_fake then
-- When default is not direct and enable fakedns, default DNS use FakeDNS.
local fakedns_dns_rule = {
query_type = {
"A", "AAAA"
},
query_type = dns_rule_query_type,
server = fakedns_tag,
disable_cache = true,
rewrite_ttl = 30,
strategy = remote_strategy,
rewrite_ttl = 30
}
table.insert(dns.rules, fakedns_dns_rule)
else
local remote_dns_rule = {
query_type = dns_rule_query_type,
server = "remote",
disable_cache = true,
strategy = remote_strategy,
}
table.insert(dns.rules, remote_dns_rule)
end