immortalwrt / homeproxy

The modern ImmortalWrt proxy platform for ARM64/AMD64 (powered by sing-box)
GNU General Public License v2.0
285 stars 90 forks source link

关于访问控制中DNS解析的一个建议 #14

Closed resnou closed 1 year ago

resnou commented 1 year ago

假设路由器ip为192.168.1.1。

局域网内有 设备A 192.168.1.2 和 设备B 192.168.1.3

不开启homeproxy的情况下下。设备A和设备B均可正常访问 www.gstatic.com 。

开启homeproxy 在访问控制中 LAN IP 策略设置 代理过滤模式 设置为 仅允许列表内。设置允许的地址为设备A 192.168.1.2。

此时设备B无法正常访问www.gstatic.com。因为其DNS的请求被转发到homeproxy解析并返回IP。

是否可以修改一下逻辑,如果开启仅允许列表内等访问策略时,将允许列表内的设备的dns通过防火墙规则劫持。这样可以不影响列表外的DNS解析。

目前发现受影响的域名有 google.cn dl.google.com等。开启homeproxy后,会造成不在允许列表内的设备无法访问上述网站。

虽然可以通过直连域名列表解决,但是还是希望能把这个DNS解析的逻辑更改一下。

1715173329 commented 1 year ago

此时设备B无法正常访问www.gstatic.com。因为其DNS的请求被转发到homeproxy解析并返回IP。

为什么?这种情况下 hp 只做 DNS 解析,不拒绝也不转发任何流量

是否可以修改一下逻辑,如果开启仅允许列表内等访问策略时,将允许列表内的设备的dns通过防火墙规则劫持。这样可以不影响列表外的DNS解析。

这只会大幅增加代码的复杂度,毫无意义

resnou commented 1 year ago

为什么?这种情况下 hp 只做 DNS 解析,不拒绝也不转发任何流量

因为这几个域名目前通过境内的DNS所解析的ip,境内是可以访问的。你可以实际测试一下。homeproxy通过境外DNS解析后的IP,在境内是无法访问的。

1715173329 commented 1 year ago

那你修改 gfw_list.txt 把这些域名剔除掉即可 以及给 gfwlist 项目反馈大陆可以直连

resnou commented 1 year ago

好的,明白了。非常感谢。我这边修改一下。

1715173329 commented 1 year ago

再看了下,问题在 dnsmasq 是泛域名匹配的,可以考虑开启 chinadns-ng(设置国内 DNS),或者走直连域名列表

resnou commented 1 year ago

好的,谢谢!