爱极客专注分享-好玩的docker应用-源码分享

抛弃ADguardhome轻松搭建无污染dns及ui显示界面,预防DNS泄漏

抛弃ADguardhome轻松搭建无污染dns及ui显示界面,预防DNS泄漏

2025.1.20更新日志

更新DNSPod地址
更新GoogleDNS请求方式

我之前是通过旁路由打开mosdns做dns解析及分流,但是我平时经常爱折腾加上openwrt插件太多兼容性问题,导致openwrt经常挂掉,然后家里就断网了。

所以一个稳定且强大的DNS服务器无疑是家庭网络中不可缺少的一环。

因此,我为您准备了一篇详细的指南,搭建一个独立的dns服务器及ui显示界面,从而提高网络的稳定性和响应速度。

项目介绍

mosdns:一个 DNS 转发器

项目地址:https://github.com/IrineSistiana/mosdns

easymosdns:基于Mosdns的精准DNS分流策略,仅需几分钟即可搭建一台支持ECS的无污染DNS服务器。

https://github.com/pmkol/easymosdns

Prometheus:是云原生计算基金会项目,是一个系统和服务监控系统

项目地址:https://github.com/prometheus/prometheus

grafana:用于监控和可观察的开源平台

项目地址:https://github.com/grafana/grafana

exsi安装debian12系统

网上有保姆级教程,我这里就不介绍了。

【保姆级教程】Debian12虚拟机安装教程

固定ip地址

nano /etc/network/interfaces

把网卡的dhcp改成static,address是ip地址,netmask是子网掩码,gateway是网关

iface ens192 inet static
address 10.0.0.222
netmask 255.255.255.0
gateway 10.0.0.1
dns-nameservers 127.0.0.1
iface ens192 inet6 dhcp

更完玩重启服务器,随后用ssh通过修改完的ip地址登录

reboot

easymosdns安装步骤

首先,我们需要安装easymosdns。

我会把脚本打包放在文章底部。

该过程简洁明了,只需遵循以下几个步骤:

上传脚本dns-ui到root目录下

抛弃ADguardhome轻松搭建无污染dns及ui显示界面,预防DNS泄漏

脚本权限修改

首先,为安装脚本授予可执行权限:

chmod +x dns-ui.sh

执行安装脚本

然后,执行脚本以启动安装过程:

./dns-ui.sh

脚本中包含了常用的组件以及docker

重启easymosdns服务

应用配置后重启服务以确保更改生效:

mosdns service restart

确认安装成功

最后,检查服务状态以验证安装是否成功:

mosdns service status
抛弃ADguardhome轻松搭建无污染dns及ui显示界面,预防DNS泄漏

至此mosdns的安装已完成

安装grafana和Prometheus

创建启动文件的配置

接下来我们需要创建并配置启动文件:

mkdir -p /home/docker/prometheus/

之后,将先前下载好的prometheus.yml文件移至此配置文件夹内。

抛弃ADguardhome轻松搭建无污染dns及ui显示界面,预防DNS泄漏

进入docker文件夹下

cd /home/docker

上传docker-compose.yml文件

抛弃ADguardhome轻松搭建无污染dns及ui显示界面,预防DNS泄漏
# docker-compose.yml
version: '3'
services:
  grafana:
    image: grafana/grafana-oss:latest
    container_name: grafana
    restart: always
    user: root
    network_mode: host
    volumes:
      - /home/docker/grafana/data:/var/lib/grafana
      - /home/docker/grafana/panels:/etc/dashboards
      - /home/docker/grafana/provisioning/dashboards:/etc/grafana/provisioning/dashboards
      - /home/docker/grafana/provisioning/datasources:/etc/grafana/provisioning/datasources
  prometheus:
    image: prom/prometheus
    container_name: prometheus
    hostname: prometheus
    restart: always
    user: root
    network_mode: host
    volumes:
      - /home/docker/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml

Docker安装相关文件

docker-compose up -d

可通过一下命令查看docker容器是否已运行

docker ps
抛弃ADguardhome轻松搭建无污染dns及ui显示界面,预防DNS泄漏

可视化配置步骤

Grafana软件配置

以Grafana为例,我们可以进行如下几步配置来优化您的可视化体验:

修改默认数据库地址
打开Grafana,将默认数据库地址更改为:

http://localhost:9090
抛弃ADguardhome轻松搭建无污染dns及ui显示界面,预防DNS泄漏
抛弃ADguardhome轻松搭建无污染dns及ui显示界面,预防DNS泄漏
抛弃ADguardhome轻松搭建无污染dns及ui显示界面,预防DNS泄漏

修改默认语言
根据您的偏好,调整界面语言设置。

抛弃ADguardhome轻松搭建无污染dns及ui显示界面,预防DNS泄漏

面板导入
根据需要,导入dns.json监控面板配置文件。

抛弃ADguardhome轻松搭建无污染dns及ui显示界面,预防DNS泄漏

逐行启用
逐项启用并配置相应的面板选项。

抛弃ADguardhome轻松搭建无污染dns及ui显示界面,预防DNS泄漏
抛弃ADguardhome轻松搭建无污染dns及ui显示界面,预防DNS泄漏

日志文件优化

为了保持系统的整洁和高效运行,我们可以通过定期清理日志文件来优化性能:

crontab -e

在文件末尾添加以下内容,以定时清理DNS服务的日志文件:

0 5 * * * sudo truncate -s 0 /etc/mosdns/mosdns.log && /etc/mosdns/rules/update-cdn

通过上述步骤,您不仅可以减少家庭网络中的断网情况,还能获得一个更加稳定、高效的DNS服务。

如何使用DNS服务器

家里想使用dns服务器的可以网关指向这个服务器的ip地址

如果想整个网络环境都是用,那可以主路由套娃的形式指向这个dns服务器

© 版权声明
THE END
喜欢就支持一下吧
点赞16赞赏 分享
评论 共20条
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复
    • 头像DHCN0
    • 头像缘起缘灭0
    • 头像sinycn0
    • 头像huī0
    • 头像鸡鸡0
    • 头像oceanuse0
    • 头像DHCN0
        • 头像DHCN0
          • 头像爱极客0
            • 头像DHCN0
    • 头像2220
    • 头像可可0
    • 头像可可0