爱极客专注分享-好玩的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
nano /etc/network/interfaces
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
reboot
reboot

easymosdns安装步骤

首先,我们需要安装easymosdns。

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

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

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

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

脚本权限修改

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

chmod +x dns-ui.sh
chmod +x dns-ui.sh
chmod +x dns-ui.sh

执行安装脚本

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

./dns-ui.sh
./dns-ui.sh
./dns-ui.sh

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

重启easymosdns服务

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

mosdns service restart
mosdns service restart
mosdns service restart

确认安装成功

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

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

至此mosdns的安装已完成

安装grafana和Prometheus

创建启动文件的配置

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

mkdir -p /home/docker/prometheus/
mkdir -p /home/docker/prometheus/
mkdir -p /home/docker/prometheus/

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

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

进入docker文件夹下

cd /home/docker
cd /home/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-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-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-compose up -d
docker-compose up -d

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

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

可视化配置步骤

Grafana软件配置

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

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

http://localhost:9090
http://localhost:9090
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
crontab -e
crontab -e

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

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

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

如何使用DNS服务器

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

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

© 版权声明
THE END
喜欢就支持一下吧
点赞16赞赏 分享
pride relates more to our opinion of ourselves, vanity to what we would have others think of us.
骄傲多半涉及我们自己怎样看待自己,而虚荣则涉及我们想别人怎样看我们
评论 共24条
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

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