fix hev-socks5-tunnel CustomLocalDns route (#4806)

* fix hev-socks5-tunnel dns route

* update
This commit is contained in:
fuilloi
2025-08-06 16:54:04 +08:00
committed by GitHub
parent f703a41778
commit 95f7e99752

View File

@@ -24,6 +24,7 @@ import com.v2ray.ang.fmt.TrojanFmt
import com.v2ray.ang.fmt.VlessFmt
import com.v2ray.ang.fmt.VmessFmt
import com.v2ray.ang.fmt.WireguardFmt
import com.v2ray.ang.handler.MmkvManager
import com.v2ray.ang.util.HttpUtil
import com.v2ray.ang.util.JsonUtil
import com.v2ray.ang.util.Utils
@@ -470,6 +471,8 @@ object V2rayConfigManager {
)
}
if (MmkvManager.decodeSettingsString(AppConfig.PREF_USE_HEV_TUNNEL) == "false") {
// DNS inbound
val remoteDns = SettingsManager.getRemoteDnsServers()
if (v2rayConfig.inbounds.none { e -> e.protocol == "dokodemo-door" && e.tag == "dns-in" }) {
@@ -495,6 +498,25 @@ object V2rayConfigManager {
)
}
// DNS routing tag
v2rayConfig.routing.rules.add(
0, RulesBean(
inboundTag = arrayListOf("dns-in"),
outboundTag = "dns-out",
domain = null
)
)
} else {
//hev-socks5-tunnel dns routing
v2rayConfig.routing.rules.add(
0, RulesBean(
type = "field",
port = "53",
outboundTag = "dns-out"
)
)
}
// DNS outbound
if (v2rayConfig.outbounds.none { e -> e.protocol == "dns" && e.tag == "dns-out" }) {
v2rayConfig.outbounds.add(
@@ -507,15 +529,6 @@ object V2rayConfigManager {
)
)
}
// DNS routing tag
v2rayConfig.routing.rules.add(
0, RulesBean(
inboundTag = arrayListOf("dns-in"),
outboundTag = "dns-out",
domain = null
)
)
} catch (e: Exception) {
Log.e(AppConfig.TAG, "Failed to configure custom local DNS", e)
return false