找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 2013|回复: 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)来解析,等我有时间可能会写一下详细的设置方法。


屏幕截图:






















本帖子中包含更多资源

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

×
我的恩山、我的无线 The best wifi forum is right here.
牛逼,虽然我看不懂!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

感谢分享,受益匪浅
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

牛逼,虽然我看不懂!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

大神助我们起飞,好工具啊!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
刚刚发现stop service的script有bug,正在修复,等一下重新上传版本。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

留个名
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

支持!!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
已解决了bug并重新上传了ipk.
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层

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

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









本帖子中包含更多资源

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

×
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

感谢分享
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

非常赞,我去给点个星星去
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

非常赞
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

点评

太大了,没办法作为附件上传。 如果你可以访问github的话,可以下载下面这个,这个是linux_x86_x64版本。 https://raw.githubusercontent.com/tracemouse/luci-app-coredns/main/coredns  详情 回复 发表于 2023-5-18 08:56
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

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

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

https://raw.githubusercontent.com/tracemouse/luci-app-coredns/main/coredns
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 18:12

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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

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