MetaCubeX / mihomo

A simple Python Pydantic model for Honkai: Star Rail parsed data from the Mihomo API.
https://wiki.metacubex.one
MIT License
14.25k stars 2.43k forks source link

[Feature] Completely disable dns cache or disable cache for some domain(like DDNS) #1052

Open giveup opened 5 months ago

giveup commented 5 months ago

Verify steps

Description

Some domains don't need a cache or an upstream dns resolver has been implemented.

Possible Solution

No response

daiaji commented 3 months ago

有没有其他方案解决DDNS带来的问题,我自己在家宽部署的wg算是差这一步就能用了。

giveup commented 3 months ago

有没有其他方案解决DDNS带来的问题,我自己在家宽部署的wg算是差这一步就能用了。

多套一层,基本方案是客户端->dnsmasq->mihomo->dns resolver 在收到客户端的ddns解析请求时,由dnsmasq转发给不同的dns,避免直接由mihomo处理请求时带来的的dns缓存问题。其他域名则按正常流程转发给mihomo并处理请求和缓存。

wwqgtxx commented 3 months ago

@giveup 目前的wg代码结构只会在proxy第一次触发链接的时候解析一次server的域名,你套多少层都不会解决这个问题

giveup commented 3 months ago

@giveup 目前的wg代码结构只会在proxy第一次触发链接的时候解析一次server的域名,你套多少层都不会解决这个问题

我可能误解他的使用场景了。我的使用场景是:A,有ddns,然后B去访问A,且B部署了mihomo,由于B有mihomo,在访问A的时候由于dns缓存不一定能正常解析出A的当前的IP。我给出的方法是曲线救国,避免mihomo的dns缓存导致无法正常解析A的ddns。

Skyxim commented 3 months ago

@giveup mihomo 对 DNS 的缓存也是遵循 TTL 的,与其它的 DNS 并无太大区别

giveup commented 3 months ago

@giveup mihomo 对 DNS 的缓存也是遵循 TTL 的,与其它的 DNS 并无太大区别

按我朴素的理解和使用经验,有的软件对dns缓存的处理是修改ttl,如AdGuard Home,所以这个应该是我自己误解了...