From 1bf877fd7a8fe5449db30158c1a8a58c8f172e4b Mon Sep 17 00:00:00 2001 From: sgt57 <198590103+sgt57@users.noreply.github.com> Date: Fri, 9 Oct 2026 17:42:27 +0800 Subject: [PATCH] Fix: use 2001:db8::/32 as the IPv6 fakeip range --- .../io/nekohasekai/sagernet/outbound/config/ConfigGenerator.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/io/nekohasekai/sagernet/outbound/config/ConfigGenerator.kt b/app/src/main/java/io/nekohasekai/sagernet/outbound/config/ConfigGenerator.kt index 4139e4bb..7fc95e03 100644 --- a/app/src/main/java/io/nekohasekai/sagernet/outbound/config/ConfigGenerator.kt +++ b/app/src/main/java/io/nekohasekai/sagernet/outbound/config/ConfigGenerator.kt @@ -781,7 +781,8 @@ class ConfigGenerator @JvmOverloads constructor( if (settings.fakeDns) { val fakeServer = jsonObjectOf("tag" to Tags.DNS_FAKE, "type" to "fakeip", "inet4_range" to "198.18.0.0/15") // No inet6_range makes the transport answer AAAA empty itself; the rule stays on both types. - if (!settings.fakeIpDisableIpv6) fakeServer["inet6_range"] = "fc00::/18" + // Not fc00::/18: the Tun's fc00::/7 private-range bypass would route fake addresses outside it. + if (!settings.fakeIpDisableIpv6) fakeServer["inet6_range"] = "2001:db8::/32" servers.add(fakeServer) rules.add(jsonObjectOf("query_type" to JsonArray.of("A", "AAAA"), "action" to "route", "server" to Tags.DNS_FAKE)) independentCache = true