找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 2053|回复: 25

【原创插件】新做了一个luci-app-coredns把CoreDNS引入到OpenWrt

[复制链接]
本帖最后由 tracemouse 于 2023-5-17 22:13 编辑

前言:
CoreDNS是一个用Go语言写的DNS服务器,最大的特点是插件化,关于CoreDNS的详细介绍可以百度或者参考https://coredns.io/,之所以做这个项目的最主要目的是想利用CoreDNS的dnsredir实现内、外网域名分流到不同的后端去解析,懂的都懂。虽然MosDNS也可以实现这个功能,但是CoreDNS可以按照域名指定DNS,灵活很多,例如可以指定微软域名走微软服务器4.2.2.2来解析,个人感觉上比MosDNS要强大一点,特别是还有很多特色插件可以使用。

虽然之前写过 luci-theme-netgear,但是之前做主题只是涉及到 html + JS,这次算是第一次写 lua + shell script,编写过程中大量参考了 @sbwml 大佬的luci-app-mosdns,特此感谢!

下载地址:
见附件,或者去Github(https://github.com/tracemouse/luci-app-coredns)下载,代码开源,引用请注明原作者,欢迎编译到OpenWrt的安装包里面。
刚刚发现stop service的script有bug,已经修复并重新上传版本。

刚刚才写完新鲜出炉,只是简单的测了一下,并且是第一次做luci app,有bug再所难免,如果使用遇到问题可以在我的github上提交issue,不喜勿喷!

安装方法:
可以直接在openwrt的软件包页面上传ipk安装,安装之后刷新页面在“服务”下面就可以看到CoreDNS,或者用winscp上传之后在命令行opkg安装也行。

不需要再单独安装zh-cn的汉化包,我已经把中文包内置到ipk里面去了,事实上是因为我用github action编译出来的i18n ipk里面没有coredns.zh-cn.lmo,由于不熟这个搞了很久都没找到原因,所以只好手工用po2lmo把coredns.po转为coredns.zh-cn.lmo,然后打包在安装包里面一起安装了,有懂的大佬可以帮忙看看。

使用方法:

1. ipk安装包并没有把CoreDNS程序一起打包进去,所以安装之后的第一件事是需要手工上传CoreDNS程序,可以去 https://github.com/missdeer/coredns_custom_build 下载自己平台对应的CoreDNS程序,然后通过CoreDNS的页面上传就可以了,只需要上传coredns那一个程序文件就够了,上传后刷新页面,页面底下会显示你上传的coredns程序内置了哪些插件,如果页面无法读取coredns的版本号和插件说明你上传的程序不正确。

重要:不要去CoreDNS官网下载,因为官网下载的程序没有内置dnsredir插件!

2. 我已经内置了国内域名的订阅列表,勾选就可以启用,也可以根据自己的需要去添加和设置,域名列表支持 dnqmasq 的格式,或者简单一点一行一个域名就行了。虽然dnsredir支持直接读取 url 的远程文件,但是为了保证稳定性,默认是把订阅的url文件下载到本地文件然后给CoreDNS的dnsredir插件使用的。

自定义的hosts的优先级是最高的,填写的方法就是标准的hosts file规则,其他的是按照转发规则那个页面从上到下的顺序,例如test.com在第一个规则文件里面,后面规则文件就算包含了也不起作用了,因为第一次遇到就已经转发了。


我在hosts里面已经内置了几个国内可以直接加速的域名(例如 api.tmdb.org),但是不一定适合你的运营商,你可以自行测试修改或者删除,填在里面就会起作用的,不需要就删掉。


3. 端口默认是5336,可以自行修改,确保不要和其他程序冲突,如果想改为53,记得要把dnsmasq的端口改成其他端口。个人不建议设置为53,可以在CoreDNS基本设置页面勾选“DNS 转发”,这样会自动设置CoreDNS为dnsmasq的上游服务器并且禁用dnsmasq的缓存(这个功能是从@sbwml 大佬的luci-app-mosdns 完全抄过来的,再次感谢!)。

4. 大家最关心的肯定是如何配合 Dnsmasq , AdguardHome, OpenClash(Fake-IP) 一起使用,大家可以参考这个帖子里面  @望月星刀  的教程,说得很详细,原理并不复杂,就是国内域名直接交给国内DNS解析,国外域名因为OpenClash Fake-IP的原因一定要转发给OpenClash(127.0.0.1:7874)来解析,等我有时间可能会写一下详细的设置方法。


屏幕截图:






















本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
牛逼,虽然我看不懂!
回复

使用道具 举报

感谢分享,受益匪浅
回复

使用道具 举报

牛逼,虽然我看不懂!
回复

使用道具 举报

大神助我们起飞,好工具啊!
回复

使用道具 举报

 楼主| | 显示全部楼层
刚刚发现stop service的script有bug,正在修复,等一下重新上传版本。
回复

使用道具 举报

留个名
回复

使用道具 举报

支持!!!
回复

使用道具 举报

 楼主| | 显示全部楼层
已解决了bug并重新上传了ipk.
回复

使用道具 举报

 楼主| | 显示全部楼层

已经测试和 dnsmasq , adguardhome, openclash 一起配合工作正常。

大家可以参考下面的设置,看懂了就知道原理了。









本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

感谢分享
回复

使用道具 举报

非常赞,我去给点个星星去
回复

使用道具 举报

非常赞
回复

使用道具 举报

楼主上传个CoreDNS程序可不可以  我这可以打开网站  下载不了这个主程序 或者上传网盘也可以  谢谢
回复

使用道具 举报

 楼主| | 显示全部楼层
cslcslcsl 发表于 2023-5-18 08:40
楼主上传个CoreDNS程序可不可以  我这可以打开网站  下载不了这个主程序 或者上传网盘也可以  谢谢
...

太大了,没办法作为附件上传。

如果你可以访问github的话,可以下载下面这个,这个是linux_x86_x64版本。

https://raw.githubusercontent.com/tracemouse/luci-app-coredns/main/coredns
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-5-14 02:47

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表