Browse Source

Remove FakeDNS

世界 3 years ago
parent
commit
0d952d368e

+ 0 - 1
app/src/main/java/io/nekohasekai/sagernet/Constants.kt

@@ -39,7 +39,6 @@ object Key {
     const val REMOTE_DNS = "remoteDns"
     const val DIRECT_DNS = "directDns"
     const val ENABLE_DNS_ROUTING = "enableDnsRouting"
-    const val ENABLE_FAKEDNS = "enableFakeDns"
     const val DNS_HOSTS = "dnsHosts"
 
     const val IPV6_MODE = "ipv6Mode"

+ 0 - 11
app/src/main/java/io/nekohasekai/sagernet/bg/VpnService.kt

@@ -62,10 +62,8 @@ class VpnService : BaseVpnService(),
         const val VPN_MTU = 1500
         const val PRIVATE_VLAN4_CLIENT = "172.19.0.1"
         const val PRIVATE_VLAN4_ROUTER = "172.19.0.2"
-        const val FAKEDNS_VLAN4_CLIENT = "198.18.0.0"
         const val PRIVATE_VLAN6_CLIENT = "fdfe:dcba:9876::1"
         const val PRIVATE_VLAN6_ROUTER = "fdfe:dcba:9876::2"
-        const val FAKEDNS_VLAN6_CLIENT = "fc00::"
 
         private fun <T> FileDescriptor.use(block: (FileDescriptor) -> T) = try {
             block(this)
@@ -154,20 +152,12 @@ class VpnService : BaseVpnService(),
         val builder = Builder().setConfigureIntent(SagerNet.configureIntent(this))
             .setSession(profile.displayName())
             .setMtu(VPN_MTU)
-        val useFakeDns = DataStore.enableFakeDns
         val ipv6Mode = DataStore.ipv6Mode
 
         builder.addAddress(PRIVATE_VLAN4_CLIENT, 30)
-        if (useFakeDns) {
-            builder.addAddress(FAKEDNS_VLAN4_CLIENT, 15)
-        }
 
         if (ipv6Mode != IPv6Mode.DISABLE) {
             builder.addAddress(PRIVATE_VLAN6_CLIENT, 126)
-
-            if (useFakeDns) {
-                builder.addAddress(FAKEDNS_VLAN6_CLIENT, 18)
-            }
         }
 
         if (DataStore.bypassLan && !DataStore.bypassLanInCoreOnly) {
@@ -262,7 +252,6 @@ class VpnService : BaseVpnService(),
             DataStore.tunImplementation == TunImplementation.GVISOR,
             DataStore.trafficSniffing,
             DataStore.destinationOverride,
-            DataStore.enableFakeDns,
             DataStore.enableLog,
             data.proxy!!.config.dumpUid,
             DataStore.appTrafficStatistics,

+ 0 - 1
app/src/main/java/io/nekohasekai/sagernet/database/DataStore.kt

@@ -115,7 +115,6 @@ object DataStore : OnPreferenceDataStoreChangeListener {
     var remoteDns by configurationStore.string(Key.REMOTE_DNS) { "https://1.0.0.1/dns-query" }
     var directDns by configurationStore.string(Key.DIRECT_DNS) { "https+local://223.5.5.5/dns-query" }
     var enableDnsRouting by configurationStore.boolean(Key.ENABLE_DNS_ROUTING)
-    var enableFakeDns by configurationStore.boolean(Key.ENABLE_FAKEDNS)
     var hosts by configurationStore.string(Key.DNS_HOSTS)
 
     var securityAdvisory by configurationStore.boolean(Key.SECURITY_ADVISORY) { true }

+ 6 - 42
app/src/main/java/io/nekohasekai/sagernet/fmt/ConfigBuilder.kt

@@ -156,7 +156,6 @@ fun buildV2RayConfig(
     val directDNS = DataStore.directDns.split("\n")
         .mapNotNull { dns -> dns.trim().takeIf { it.isNotBlank() && !it.startsWith("#") } }
     val enableDnsRouting = DataStore.enableDnsRouting
-    val useFakeDns = DataStore.enableFakeDns
     val trafficSniffing = DataStore.trafficSniffing
     val indexMap = ArrayList<IndexEntity>()
     var requireWs = false
@@ -199,20 +198,6 @@ fun buildV2RayConfig(
 
             disableFallbackIfMatch = true
 
-            if (useFakeDns) {
-                fakedns = mutableListOf()
-                fakedns.add(FakeDnsObject().apply {
-                    ipPool = "${VpnService.FAKEDNS_VLAN4_CLIENT}/15"
-                    poolSize = 65535
-                })
-                if (ipv6Mode != IPv6Mode.DISABLE) {
-                    fakedns.add(FakeDnsObject().apply {
-                        ipPool = "${VpnService.FAKEDNS_VLAN6_CLIENT}/18"
-                        poolSize = 65535
-                    })
-                }
-            }
-
             when (ipv6Mode) {
                 IPv6Mode.DISABLE -> {
                     queryStrategy = "UseIPv4"
@@ -253,15 +238,10 @@ fun buildV2RayConfig(
                     auth = "noauth"
                     udp = true
                 })
-            if (trafficSniffing || useFakeDns) {
+            if (trafficSniffing) {
                 sniffing = InboundObject.SniffingObject().apply {
                     enabled = true
-                    destOverride = when {
-                        useFakeDns && !trafficSniffing -> listOf("fakedns")
-                        useFakeDns -> listOf("fakedns", "http", "tls", "quic")
-                        else -> listOf("http", "tls", "quic")
-                    }
-                    metadataOnly = useFakeDns && !trafficSniffing
+                    destOverride = listOf("http", "tls", "quic")
                     routeOnly = !destinationOverride
                 }
             }
@@ -277,15 +257,10 @@ fun buildV2RayConfig(
                     HTTPInboundConfigurationObject().apply {
                         allowTransparent = true
                     })
-                if (trafficSniffing || useFakeDns) {
+                if (trafficSniffing) {
                     sniffing = InboundObject.SniffingObject().apply {
                         enabled = true
-                        destOverride = when {
-                            useFakeDns && !trafficSniffing -> listOf("fakedns")
-                            useFakeDns -> listOf("fakedns", "http", "tls", "quic")
-                            else -> listOf("http", "tls", "quic")
-                        }
-                        metadataOnly = useFakeDns && !trafficSniffing
+                        destOverride = listOf("http", "tls", "quic")
                         routeOnly = !destinationOverride
                     }
                 }
@@ -303,15 +278,10 @@ fun buildV2RayConfig(
                         network = "tcp,udp"
                         followRedirect = true
                     })
-                if (trafficSniffing || useFakeDns) {
+                if (trafficSniffing) {
                     sniffing = InboundObject.SniffingObject().apply {
                         enabled = true
-                        destOverride = when {
-                            useFakeDns && !trafficSniffing -> listOf("fakedns")
-                            useFakeDns -> listOf("fakedns", "http", "tls", "quic")
-                            else -> listOf("http", "tls", "quic")
-                        }
-                        metadataOnly = useFakeDns && !trafficSniffing
+                        destOverride =  listOf("http", "tls", "quic")
                         routeOnly = !destinationOverride
                     }
                 }
@@ -1243,12 +1213,6 @@ fun buildV2RayConfig(
             })
         }
 
-        if (useFakeDns) {
-            dns.servers.add(0, DnsObject.StringOrServerObject().apply {
-                valueX = "fakedns"
-            })
-        }
-
         if (!forTest) {
             routing.rules.add(0, RoutingObject.RuleObject().apply {
                 type = "field"

+ 0 - 2
app/src/main/java/io/nekohasekai/sagernet/ui/SettingsPreferenceFragment.kt

@@ -146,7 +146,6 @@ class SettingsPreferenceFragment : PreferenceFragmentCompat() {
         val remoteDns = findPreference<EditTextPreference>(Key.REMOTE_DNS)!!
         val directDns = findPreference<EditTextPreference>(Key.DIRECT_DNS)!!
         val enableDnsRouting = findPreference<SwitchPreference>(Key.ENABLE_DNS_ROUTING)!!
-        val enableFakeDns = findPreference<SwitchPreference>(Key.ENABLE_FAKEDNS)!!
 
         val requireTransproxy = findPreference<SwitchPreference>(Key.REQUIRE_TRANSPROXY)!!
         val transproxyPort = findPreference<EditTextPreference>(Key.TRANSPROXY_PORT)!!
@@ -224,7 +223,6 @@ class SettingsPreferenceFragment : PreferenceFragmentCompat() {
         remoteDns.onPreferenceChangeListener = reloadListener
         directDns.onPreferenceChangeListener = reloadListener
         enableDnsRouting.onPreferenceChangeListener = reloadListener
-        enableFakeDns.onPreferenceChangeListener = reloadListener
         dnsHosts.onPreferenceChangeListener = reloadListener
 
         portLocalDns.onPreferenceChangeListener = reloadListener

+ 0 - 2
app/src/main/res/values/strings.xml

@@ -81,8 +81,6 @@
     <string name="direct_dns">Direct DNS</string>
     <string name="enable_dns_routing">Enable DNS Routing</string>
     <string name="dns_routing_message">Resolve domains in bypass routes with Direct DNS. Be aware of potential DNS leaks</string>
-    <string name="enable_fakedns">Enable FakeDNS</string>
-    <string name="fakedns_message">May cause other applications need to be restarted to reconnect to the network after proxy stopped</string>
     <string name="dns_hosts">Domain rewrite</string>
     <string name="port_local_dns">Local DNS Port</string>
     <string name="require_transproxy">Enable Transproxy Inbound</string>

+ 0 - 5
app/src/main/res/xml/global_preferences.xml

@@ -186,11 +186,6 @@
             app:key="enableDnsRouting"
             app:summary="@string/dns_routing_message"
             app:title="@string/enable_dns_routing" />
-        <SwitchPreference
-            app:icon="@drawable/ic_action_lock"
-            app:key="enableFakeDns"
-            app:summary="@string/fakedns_message"
-            app:title="@string/enable_fakedns" />
     </PreferenceCategory>
 
     <PreferenceCategory app:title="@string/inbound_settings">