前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个基于.NET7的开源DNS服务 DnsServer 的部署使用经验分享

一个基于.NET7的开源DNS服务 DnsServer 的部署使用经验分享

作者头像
易墨
发布2023-11-07 09:00:56
1.1K0
发布2023-11-07 09:00:56
举报

前言

接上篇 docker-bind 的使用搭建了一个 dns 服务,本篇将介绍另外一款 DnsServer 的部署和使用,更专注,更轻量。

特点

  • 基于 .NET 7 实现 ,支持 Windows、Linux、macOS 和 Raspberry Pi
  • 开箱即用,使用简单,高性能
  • 提供 Web 控制台,可视化管理,查看使用情况
  • 提供了对网络的额外控制,允许阻止域名
  • 支持 DNS-over-TLS, DNS-over-HTTPS, and DNS-over-QUIC
  • DNS-over-HTTPS 实现支持 HTTP/1.1、HTTP/2 和 HTTP/3 传输协议
  • HTTP API 由 Web 控制台使用,第三方应用或脚本可以使用 Api 接口配置来 DNS 服务器

使用情况

  • 能够快速上手使用,部署好设置域名解析很流畅
  • 用得深入一点就需要看官方的博客了
  • 高级的功能没深入研究,暂时只使用了简单的域名解析功能

DnsServer 的安装使用

准备

  • 版本:v11.4.1
  • docker 镜像:technitium/dns-server:11.4.1
  • 默认端口映射:53:53/tcp 53:53/udp 5380:5380/tcp(53 端口为 DNS 服务使用,5380为面板使用)
  • 面板访问:http://ip:5380

使用 Docker Compose 安装

本篇文章基于 Docker V24 及 Docker Compose V2,安装可以参考之前的文章

配置说明
  • 指定版本:technitium/dns-server:11.4.1
  • 指定时区:Asia/Shanghai 并启用日志使用UTC时区
  • 指定账号 admin 密码:devops666
  • 指定端口映射:53:53/tcp 53:53/udp 5380 :5380 /tcp(53 端口为 DNS 服务使用,5380 为 Web面板端口)
  • 挂载数据目录:./data:/data
  • 指定网络:devopsnetwork (docker network create devopsnetwork
  • 指定了本地访问端口范围:net.ipv4.ip_local_port_range=1024 65000
配置文件 compose.yml
  • 准备好 compose.yml 拷贝到服务器
  • 然后运行docker compose up -d即可
代码语言:javascript
复制
version: '3.1'
services:
  dns-server:
    container_name: dns_server_11_4
    hostname: dns-server
    restart: always
    image: technitium/dns-server:11.4.1
    ports:
      - "5380:5380/tcp" #DNS web console (HTTP)
      # - "53443:53443/tcp" #DNS web console (HTTPS)
      - "53:53/udp" #DNS service
      - "53:53/tcp" #DNS service
    environment:
      - TZ=Asia/Shanghai
      - DNS_SERVER_LOG_USING_LOCAL_TIME=true
      - DNS_SERVER_DOMAIN=dns-server #The primary domain name used by this DNS Server to identify itself.
      - DNS_SERVER_ADMIN_PASSWORD=devops666 #DNS web console admin user password.
    sysctls:
      - net.ipv4.ip_local_port_range=1024 65000
    volumes:
      - ./data:/etc/dns
    networks:
      - devopsnetwork

networks:
  devopsnetwork:
    external: true
部署成功

部署机器 IP:192.168.123.214

容器中资源占用情况

DnsServer 的使用

局域网域名泛解析到指定IP

和上文一样,需求是需要配置 dns 以将 test.com 解析到 192.168.123.214 中

  1. 控制台->Zones->Add Zone 创建主区域 test.com
  1. 添加泛解析
  1. 本机设置 dns 192.168.123.214 以及 114.114.114.114(不然无法访问其他网站)
  1. 验证dns,正常ping test.com 的IP是存在的,现在就被解析到我们自己的dns了

  可能存在dns缓存,使用 ipconfig /flushdns刷新即可

查看系统日志

需要同时设置环境变量TZ=Asia/ShanghaiDNS_SERVER_LOG_USING_LOCAL_TIME=true才生效,设置后会将设置中的日志配置 Use Local Time默认勾选

禁用域名访问(Blocked)

可能需要使用 ipconfig /flushdns清理dns缓存

踩过的坑

  • 日志显示,需要同时设置环境变量TZ=Asia/ShanghaiDNS_SERVER_LOG_USING_LOCAL_TIME=true才生效
  • dns缓存清理:ipconfig /flushdns
  • 代理/VPN的设置不对可能导致 DNS 时好时坏,这个时候记得检查下代理,正常dns的生效都挺快的

相关文档

后语

基于DNS服务,还可以做很多,比如自动 https,但是没有研究成功,后面可能会结合真实的自有域名来实现。 预告下篇呕心沥血之作,Nexus3 管理私有 nuget,docker,走过路过不要错过~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-11-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 特点
      • 使用情况
      • DnsServer 的安装使用
        • 准备
          • 使用 Docker Compose 安装
            • 配置说明
            • 配置文件 compose.yml
            • 部署成功
          • DnsServer 的使用
            • 局域网域名泛解析到指定IP
            • 查看系统日志
            • 禁用域名访问(Blocked)
          • 踩过的坑
            • 相关文档
            • 后语
            相关产品与服务
            容器服务
            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档