smartdns icon indicating copy to clipboard operation
smartdns copied to clipboard

请问如何只监听指定接口?

Open liudongmiao opened this issue 1 year ago • 10 comments

需求应用场景 对于特定接口的 53 端口,dnsmasq 不监听(这个 openwrt 提供),改由 smartdns 监听。

建议的方案 加入功能 “监听接口” 或者完善 “绑定到设备” / “绑定的设备名称” 功能。

设备信息

  1. 设备信息(CPU,厂家)
    ath79/generic

  2. 固件信息 OpenWrt 23.05

目前个人临时绕过方案是让 smartdns 监听非 53 端口,然后手动写配置 bind ...

liudongmiao avatar Apr 08 '24 14:04 liudongmiao

重复#1229 openwrt的话可以直接在luci里填 image

PikuZheng avatar Apr 08 '24 23:04 PikuZheng

@PikuZheng 在问题描述中提到了

完善 “绑定到设备” / “绑定的设备名称” 功能

这个功能看起来不生效,即使使用了这个绑定到设备,最终生成的配置是

bind [::]@xxx

使用 netstat -tulnp 查看结果,还是监听的全部,也就是 [::]。

而 OpenWrt 的 dnsmasq,选定该功能后,则完全不监听其它 ~端口~(接口)(这个选项上面还有一个小的配置。)

因为实际上,我的目标就是

dnsmasq 继续发挥作用,监听特定几个接口~smartdns 监听一个其它指定的接口。

BTW,如果这个功能完善了以后,建议界面上完善成像 OpenWrt 那样的选择接口,而不是现在的输入接口。

liudongmiao avatar Apr 09 '24 00:04 liudongmiao

image 有何不妥?

PikuZheng avatar Apr 09 '24 03:04 PikuZheng

明白了 你需要的功能相当于dnsmasq的”非全部地址“

PikuZheng avatar Apr 09 '24 03:04 PikuZheng

明白了 你需要的功能相当于dnsmasq的”非全部地址“

是的,就是这个“非全部地址”,这样感觉也一目了解一些,到底监听哪个没监听哪个。

liudongmiao avatar Apr 09 '24 03:04 liudongmiao

看了下 dnsmasq 源码以及 ChatGPT 回复,感觉实现还有点难度...

liudongmiao avatar Apr 28 '24 02:04 liudongmiao

@PikuZheng 先看看我这个是不是个伪需求~如果只有我一个人想用,我使用其它方式绕过就好。 如果你觉得还有其他人使用,我就再看看要不要提个 PR...

最近发现在几个项目中之前提的需求,作者实现或者PR实现后,到最后发现只有少数人使用,自己都不好意思....

liudongmiao avatar Apr 28 '24 02:04 liudongmiao

我也需要这个功能,我填绑定网卡lo,还是绑定到0.0.0.0,我就想只监听127.0.0.1+端口,接收由其它分流软件的查询包,比如chinadns-ng

wtfr-dot avatar Jul 22 '24 15:07 wtfr-dot

我也需要这个功能,我填绑定网卡lo,还是绑定到0.0.0.0,我就想只监听127.0.0.1+端口,接收由其它分流软件的查询包,比如chinadns-ng

你的情况可以直接配置 bind 127.0.0.1:53

PikuZheng avatar Jul 22 '24 22:07 PikuZheng

我也需要这个功能,我填绑定网卡lo,还是绑定到0.0.0.0,我就想只监听127.0.0.1+端口,接收由其它分流软件的查询包,比如chinadns-ng

你的情况可以直接配置 bind 127.0.0.1:53

透明代理本身劫持dns到127.0.0.1:53,不需要单独设置,我现在是透明代理通过chinadns-ng进行国内外分流,直连和代理分别转发到smartdns的6053和6553端口,smartdns本身只需监听127.0.0.1就行了,这样完全避免端口对外部暴露,代码是不是可以这样优化一下:就是绑定设备选择lo的话就关闭0.0.0.0的监听转为127.0.0.1监听,这样也方便移植吧,最新的passwall已经开放了直连和代理的自定义,我就是这样使用的,效果良好,希望以后smartdns能像chinadns-ng那样能作为代理软件的组件编译进去

wtfr-dot avatar Jul 23 '24 03:07 wtfr-dot