mirror of
https://github.com/caiwx86/small-packages.git
synced 2026-11-05 18:44:06 +08:00
update 2026-08-11 00:49:36
This commit is contained in:
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
|
||||
|
||||
Reference in new issue
Block a user