diff --git a/core/src/main/java/com/github/kr328/clash/core/model/ConfigurationOverride.kt b/core/src/main/java/com/github/kr328/clash/core/model/ConfigurationOverride.kt
index 6332ce3536f907e7090eb2ab2b909b66b2ec9959..8d38406740d8728b7d3cac75d961cf0e7b64495d 100644
--- a/core/src/main/java/com/github/kr328/clash/core/model/ConfigurationOverride.kt
+++ b/core/src/main/java/com/github/kr328/clash/core/model/ConfigurationOverride.kt
@@ -80,7 +80,10 @@ data class ConfigurationOverride(
         var fakeIpFilter: List<String>? = null,
 
         @SerialName("fallback-filter")
-        val fallbackFilter: DnsFallbackFilter = DnsFallbackFilter()
+        val fallbackFilter: DnsFallbackFilter = DnsFallbackFilter(),
+
+        @SerialName("nameserver-policy")
+        var nameserverPolicy: Map<String, String>? = null,
     )
 
     @Serializable
diff --git a/design/src/foss/java/com/github/kr328/clash/design/OverrideSettingsDesign.kt b/design/src/foss/java/com/github/kr328/clash/design/OverrideSettingsDesign.kt
index 4df91153a572eb8e728bdc2ff256847598004f0c..80c2a92ef50f5e8f543871cc5d6f352851428518 100644
--- a/design/src/foss/java/com/github/kr328/clash/design/OverrideSettingsDesign.kt
+++ b/design/src/foss/java/com/github/kr328/clash/design/OverrideSettingsDesign.kt
@@ -378,6 +378,15 @@ class OverrideSettingsDesign(
                 configure = dnsDependencies::add,
             )
 
+            editableTextMap(
+                value = configuration.dns::nameserverPolicy,
+                keyAdapter = TextAdapter.String,
+                valueAdapter = TextAdapter.String,
+                title = R.string.name_server_policy,
+                placeholder = R.string.dont_modify,
+                configure = dnsDependencies::add,
+            )
+
             dns.listener?.onChanged()
         }
 
diff --git a/design/src/main/res/values-zh-rHK/strings.xml b/design/src/main/res/values-zh-rHK/strings.xml
index b5e420bb3b9b12706a59b4e6b4890f2a6e81148a..2668659841dfe2e59d39c3dd91c7f39289cea54c 100644
--- a/design/src/main/res/values-zh-rHK/strings.xml
+++ b/design/src/main/res/values-zh-rHK/strings.xml
@@ -208,4 +208,7 @@
     <string name="active_unsaved_tips">配置文件需要在激活之前保存</string>
     <string name="mode_switch_tips">僅在本次會話中有效</string>
     <string name="import_">å°Žå…¥</string>
+    <string name="sources">源代碼</string>
+    <string name="clash_core">Clash 核心</string>
+    <string name="name_server_policy">Name Server ç­–ç•¥</string>
 </resources>
\ No newline at end of file
diff --git a/design/src/main/res/values-zh-rTW/strings.xml b/design/src/main/res/values-zh-rTW/strings.xml
index e91dda22ac25463fa2ade2258d1113072e182dee..eb7b62e4f54458a5cb74b294dbce5aef9262e1b8 100644
--- a/design/src/main/res/values-zh-rTW/strings.xml
+++ b/design/src/main/res/values-zh-rTW/strings.xml
@@ -208,4 +208,7 @@
     <string name="active_unsaved_tips">配置文件需要在激活之前保存</string>
     <string name="mode_switch_tips">僅在本次會話中有效</string>
     <string name="import_">å°Žå…¥</string>
+    <string name="sources">源代碼</string>
+    <string name="clash_core">Clash 核心</string>
+    <string name="name_server_policy">Name Server ç­–ç•¥</string>
 </resources>
\ No newline at end of file
diff --git a/design/src/main/res/values-zh/strings.xml b/design/src/main/res/values-zh/strings.xml
index cfdbb80a584b92a3a7507baaa8eba7773ec4a0a8..9bddcbaebdd640ac701521c28e8913536a9b4a5d 100644
--- a/design/src/main/res/values-zh/strings.xml
+++ b/design/src/main/res/values-zh/strings.xml
@@ -210,4 +210,5 @@
     <string name="import_">导入</string>
     <string name="sources">源代码</string>
     <string name="clash_core">Clash 核心</string>
+    <string name="name_server_policy">Name Server ç­–ç•¥</string>
 </resources>
\ No newline at end of file
diff --git a/design/src/main/res/values/strings.xml b/design/src/main/res/values/strings.xml
index 045856e849065c85398e8635e82c30ff14470a39..b2c713296888f9cf57be2fdcbbcacb3f5e0c02df 100644
--- a/design/src/main/res/values/strings.xml
+++ b/design/src/main/res/values/strings.xml
@@ -159,6 +159,7 @@
     <string name="geoip_fallback">GeoIP Fallback</string>
     <string name="ipcidr_fallback">IPCIDR Fallback</string>
     <string name="domain_fallback">Domain Fallback</string>
+    <string name="name_server_policy">Name Server Policy</string>
 
     <string name="dont_modify">Do not modify</string>
     <string name="empty">Empty</string>
diff --git a/design/src/premium/java/com/github/kr328/clash/design/OverrideSettingsDesign.kt b/design/src/premium/java/com/github/kr328/clash/design/OverrideSettingsDesign.kt
index 6850917dace079a28c5a3e6dd7a683fb4b350035..95e2ce0c6e124f7ee3a36016a536029c90c7e8db 100644
--- a/design/src/premium/java/com/github/kr328/clash/design/OverrideSettingsDesign.kt
+++ b/design/src/premium/java/com/github/kr328/clash/design/OverrideSettingsDesign.kt
@@ -379,6 +379,15 @@ class OverrideSettingsDesign(
                 placeholder = R.string.dont_modify,
                 configure = dnsDependencies::add,
             )
+            
+            editableTextMap(
+                value = configuration.dns::nameserverPolicy,
+                keyAdapter = TextAdapter.String,
+                valueAdapter = TextAdapter.String,
+                title = R.string.name_server_policy,
+                placeholder = R.string.dont_modify,
+                configure = dnsDependencies::add,
+            )
 
             dns.listener?.onChanged()
         }
@@ -389,4 +398,4 @@ class OverrideSettingsDesign(
     fun requestClear() {
         requests.offer(Request.ResetOverride)
     }
-}
\ No newline at end of file
+}