smartdns
smartdns copied to clipboard
请求: 在SmartDNS中实现Hook机制,将解析的特定域名同步到ROS的Address集合中
需求应用场景 我在内网服务器中运行 smartdns 并使用 ROS 作为主路由器,希望将特定域名的解析地址更新到 ROS 的 address 集合中,从而实现路由分流。
建议的方案 目前 smartdns 支持将特定域名的解析记录更新到 ipset。我曾尝试搜索关于 ipset 是否有相关的 update hook 机制,可以在更新时使用脚本将 ipset 内容和 ROS 的 address 集合同步,但并没有找到相关信息。
想知道 smartdns 是否有一个 hook 机制,能够在解析到特定域名时调用自定义代码。
设备信息
-
设备信息(CPU,厂家)
-
固件信息
没必要。 ros的address-list可以填域名。只要保证ros的DNS上游是smartdns,就可以实现两侧一致。
smartdns 可以与 ROS 同步域名, ROS DNS 不好用,总是卡2 秒。就放弃此方案了。
smartdns 可以与 ROS 同步域名, ROS DNS 不好用,总是卡2 秒。就放弃此方案了。
localhost:~# time dig www.baidu.com @mikrotik
.....
real 0m 0.02s
user 0m 0.00s
sys 0m 0.00s
localhost:~# time dig www.baidu.com @smartdns
.....
real 0m 0.02s
user 0m 0.00s
sys 0m 0.01s
我这正常啊 甚至ros还快了一点点
这种需求,直接在 ros 里面用 script 脚本实现就好吧,并不属于 smartdns 的通用需求
这种需求,直接在 ros 里面用 script 脚本实现就好吧,并不属于 smartdns 的通用需求
读取 smartdns 解析日志,然后回写到 ROS DNS。 不在 ROS DNS里的,就用 smartdns 解析。
这种需求,直接在 ros 里面用 script 脚本实现就好吧,并不属于 smartdns 的通用需求
脚本只能(定时或其他方式)触发式更新,不能做到实时
没必要。 ros的address-list可以填域名。只要保证ros的DNS上游是smartdns,就可以实现两侧一致。
我想实现的并不是两侧DNS保持一致, 而是想做内外分流, ROS通过路由表将特定的IP路由到指定接口 这个IP列表的来源我想通过smartDNS去拿, 比如一组特定域名的解析ip通过ROS路由到指定接口
这里ros的address列表是类似于ipset的一种功能, 是一组ip的集合, 可以和ros的firewall配合使用完成标记路由的功能
没必要。 ros的address-list可以填域名。只要保证ros的DNS上游是smartdns,就可以实现两侧一致。
我想实现的并不是两侧DNS保持一致, 而是想做内外分流, ROS通过路由表将特定的IP路由到指定接口 这个IP列表的来源我想通过smartDNS去拿, 比如一组特定域名的解析ip通过ROS路由到指定接口
读 smartdns 解析日志,将判定为需要代理的域名转写 rsc 格式。 ROS 通过 http 方式下载 rsc 文件更新。
添加定时任务。
这里ros的address列表是类似于ipset的一种功能, 是一组ip的集合, 可以和ros的firewall配合使用完成标记路由的功能
![]()
DNS 那也可以设置 address list。且,不同域名集合指定不同的 address list。
这里ros的address列表是类似于ipset的一种功能, 是一组ip的集合, 可以和ros的firewall配合使用完成标记路由的功能
DNS 那也可以设置 address list。且,不同域名集合指定不同的 address list。
抱歉, 一开始没理解你的意思, 我刚去看了官方文档ros 7.x版本增加了dns static设置address list的功能, 我目前在用的6.49.6 没有这个功能 :sob: 只能从读 smartdns 解析日志入手了, 可以给我一些读取解析日志的资料么, 我在文档里没找到相关内容, 我可以写一个程序去实时过滤解析日志然后调ros api去更新
这里ros的address列表是类似于ipset的一种功能, 是一组ip的集合, 可以和ros的firewall配合使用完成标记路由的功能
DNS 那也可以设置 address list。且,不同域名集合指定不同的 address list。
抱歉, 一开始没理解你的意思, 我刚去看了官方文档ros 7.x版本增加了dns static设置address list的功能, 我目前在用的6.49.6 没有这个功能 😭 只能从读 smartdns 解析日志入手了, 可以给我一些读取解析日志的资料么, 我在文档里没找到相关内容, 我可以写一个程序去实时过滤解析日志然后调ros api去更新
smartdns 解析日志不是难点,显示有组名,./log/smartdns.log 内有类似“group: PROXY”字样,根据组名判定域名需要代理。 难点是 ROS api,太难懂了。看了,最后放弃了。用简单的方法是:通过 http 传输 rsc 文件方式。
哎呀! 求求你先试一试在address-list里填域名。另外为啥不用winbox
哎呀! 求求你先试一试在address-list里填域名。另外为啥不用winbox
还没试过address-list里填域名...我去试试 winbox在mac下面太难用了...
这里ros的address列表是类似于ipset的一种功能, 是一组ip的集合, 可以和ros的firewall配合使用完成标记路由的功能
DNS 那也可以设置 address list。且,不同域名集合指定不同的 address list。
抱歉, 一开始没理解你的意思, 我刚去看了官方文档ros 7.x版本增加了dns static设置address list的功能, 我目前在用的6.49.6 没有这个功能 😭 只能从读 smartdns 解析日志入手了, 可以给我一些读取解析日志的资料么, 我在文档里没找到相关内容, 我可以写一个程序去实时过滤解析日志然后调ros api去更新
smartdns 解析日志不是难点,显示有组名,./log/smartdns.log 内有类似“group: PROXY”字样,根据组名判定域名需要代理。 难点是 ROS api,太难懂了。看了,最后放弃了。用简单的方法是:通过 http 传输 rsc 文件方式。
还有方案是不通过api, 直接scp文件到远端,然后ssh执行命令加载, 或者直接ssh执行命令
哎呀! 求求你先试一试在address-list里填域名。另外为啥不用winbox
这种方式不能支持匹配所有子域名...只能写特定域名
哎呀! 求求你先试一试在address-list里填域名。另外为啥不用winbox
这种方式不能支持匹配所有子域名...只能写特定域名
只有 DNS 那才支持 子域名
这里ros的address列表是类似于ipset的一种功能, 是一组ip的集合, 可以和ros的firewall配合使用完成标记路由的功能
DNS 那也可以设置 address list。且,不同域名集合指定不同的 address list。
抱歉, 一开始没理解你的意思, 我刚去看了官方文档ros 7.x版本增加了dns static设置address list的功能, 我目前在用的6.49.6 没有这个功能 😭 只能从读 smartdns 解析日志入手了, 可以给我一些读取解析日志的资料么, 我在文档里没找到相关内容, 我可以写一个程序去实时过滤解析日志然后调ros api去更新
smartdns 解析日志不是难点,显示有组名,./log/smartdns.log 内有类似“group: PROXY”字样,根据组名判定域名需要代理。 难点是 ROS api,太难懂了。看了,最后放弃了。用简单的方法是:通过 http 传输 rsc 文件方式。
还有方案是不通过api, 直接scp文件到远端,然后ssh执行命令加载, 或者直接ssh执行命令
没试过,也懒得试了。 现在,smartdns 是网络默认 DNS。
@cresky-github 我原本需求是为了能访问gpt...奈何hk的网络也访问不了,需要在hk的ros上二次路由到韩国又不想全部的流量都路由到韩国
@cresky-github 我原本需求是为了能访问gpt...奈何hk的网络也访问不了,需要在hk的ros上二次路由到韩国又不想全部的流量都路由到韩国
只要把 GPT 的全部相关域名写 ROS DNS FWD 就行了,不多的。应该不到10个。 这个 域名集合的 IP 走指定网关,其余该怎么处理就怎么处理。
@cresky-github 我6.x不支持这里的address list, 看来升级计划要提上日程了...
@cresky-github 我6.x不支持这里的address list, 看来升级计划要提上日程了...
我就为此功能升到7的。
结果,有了更好的方法了。也弃用此方法了。
哎呀! 求求你先试一试在address-list里填域名。另外为啥不用winbox
这种方式不能支持匹配所有子域名...只能写特定域名
嗯的确是这样的。。那么用mangle的l7直接route也行吧。。。就是效率差点
我是收集了所有需要route的ip(主要是谷歌等,查AS填整个网段)写到address-list,剩下一部分域名是直接填进去的。 晚上回家看一下openai相关域名,我走jp线路一直是好的,hk是被ban
我是收集了所有需要route的ip(主要是谷歌等,查AS填整个网段)写到address-list,剩下一部分域名是直接填进去的。 晚上回家看一下openai相关域名,我走jp线路一直是好的,hk是被ban
这样搞,还不如 子域名 来得有效。
http://www.iwik.org/ipcountry/mikrotik/CN 貌似有别人做好的分流规则
http://www.iwik.org/ipcountry/mikrotik/CN 貌似有别人做好的分流规则
这个逻辑,其实还可以做成 World IP分流,更直接。
http://www.iwik.org/ipcountry/mikrotik/CN 貌似有别人做好的分流规则
这个逻辑,其实还可以做成 World IP分流,更直接。
有没有实时更新的world ip源
http://www.iwik.org/ipcountry/mikrotik/CN 貌似有别人做好的分流规则
这个逻辑,其实还可以做成 World IP分流,更直接。
有没有实时更新的world ip源
https://github.com/dndx/nchnroutes/tree/main
现在, 靠纯域名分流了。