From c7ee5d47deae6904bbc93d5fb205d5c85d338efd Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 6 Mar 2026 11:35:15 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=97=BD=20Sync=202026-03-06=2011:35:15?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../luasrc/passwall/util_sing-box.lua | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/luci-app-passwall/luasrc/passwall/util_sing-box.lua b/luci-app-passwall/luasrc/passwall/util_sing-box.lua index 172aacac..c72c6b9f 100644 --- a/luci-app-passwall/luasrc/passwall/util_sing-box.lua +++ b/luci-app-passwall/luasrc/passwall/util_sing-box.lua @@ -922,6 +922,8 @@ function gen_config(var) local remote_dns_tcp_port = var["remote_dns_tcp_port"] local remote_dns_doh_url = var["remote_dns_doh_url"] local remote_dns_doh_host = var["remote_dns_doh_host"] + local remote_dns_doh_ip = var["remote_dns_doh_ip"] + local remote_dns_doh_port = var["remote_dns_doh_port"] local remote_dns_client_ip = var["remote_dns_client_ip"] local remote_dns_query_strategy = var["remote_dns_query_strategy"] local remote_dns_fake = var["remote_dns_fake"] @@ -1672,12 +1674,35 @@ function gen_config(var) end remote_server.path = _a.pathname end + if remote_dns_doh_ip and remote_dns_doh_host ~= remote_dns_doh_ip and not api.is_ip(remote_dns_doh_host) then + local domains = {} + local hosts_server = { + tag = "hosts", + type = "hosts", + predefined = {} + } + hosts_server.predefined[remote_dns_doh_host] = remote_dns_doh_ip + table.insert(domains, remote_dns_doh_host) + remote_server_domain_resolver = "hosts" + table.insert(dns.servers, hosts_server) + table.insert(dns.rules, { + query_type = { + "A", "AAAA" + }, + domain = domains, + server = "hosts" + }) + end end if api.is_local_ip(remote_server.server) then --dns为本地ip,不走代理 remote_server.detour = "direct" end + if remote_server_domain_resolver then + remote_server.domain_resolver = remote_server_domain_resolver + end + table.insert(dns.servers, remote_server) fakedns_tag = "remote_fakeip" @@ -1685,7 +1710,7 @@ function gen_config(var) table.insert(dns.servers, { tag = fakedns_tag, type = "fakeip", - inet4_range = "198.18.0.0/16", + inet4_range = "198.18.0.0/15", inet6_range = "fc00::/18", })