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

这篇具有很好参考价值的文章主要介绍了一个基于.NET7的开源DNS服务 DnsServer 的部署使用经验分享。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

接上篇 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即可
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

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

容器中资源占用情况

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

DnsServer 的使用

  • 部署成功后访问:http://192.168.123.214:5380 ,使用 admin devops666 登录 控制台中可以查看到一些监控统计

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

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

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

  1. 控制台->Zones->Add Zone 创建主区域 test.com

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

  2. 添加泛解析

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

  3. 本机设置 dns 192.168.123.214 以及 114.114.114.114(不然无法访问其他网站)

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

  4. 验证dns,正常ping test.com 的IP是存在的,现在就被解析到我们自己的dns了

    一个基于.NET7的开源DNS服务 DnsServer 的部署使用经验分享
      可能存在dns缓存,使用 ipconfig /flushdns刷新即可
    一个基于.NET7的开源DNS服务 DnsServer 的部署使用经验分享

查看系统日志

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

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

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

禁用域名访问(Blocked)

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

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

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

踩过的坑

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

相关文档

  • 项目地址:Github
  • 镜像仓库:DockerHub
  • 官方博客:technitium.com
  • 官方docker-compose:docker-compose.yml

后语

基于DNS服务,还可以做很多,比如自动 https,但是没有研究成功,后面可能会结合真实的自有域名来实现。
预告下篇呕心沥血之作,Nexus3 管理私有 nuget,docker,走过路过不要错过~文章来源地址https://www.toymoban.com/news/detail-745165.html

到了这里,关于一个基于.NET7的开源DNS服务 DnsServer 的部署使用经验分享的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【VMware vSphere 7】基于ESXi主机安装部署DNS服务器(四)

    DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名。 域名是Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的

    2024年02月13日
    浏览(54)
  • 【实用的开源项目】使用服务器部署Wiki.js,一个美观且强大的开源Wiki程序

    上个月小俊介绍了一款支持跨平台、跨终端的在线文档、知识库管理程序: MrDoc觅思文档 ,后来又在寻找有没有其他的程序,这不,美观且强大的开源Wiki程序: Wiki.js ,简单使用之后,感觉还不错,也推荐给大家,现在就教大家如何部署这款程序。 官方网站: https://js.wik

    2024年01月25日
    浏览(64)
  • .Net6 .Net7 支持的 Windows 版本

    .NET 6 支持下列 Windows 版本: (OS) Version 体系结构 Windows 11 21H2 x64、Arm64 Windows 10 客户端 1607+ x64、x86、Arm64 Windows 客户端 7 SP1+、8.1 x64、x86 Windows Server 2012+ x64、x86 Windows Server 核心 2012+ x64、x86 Nano Server 1809+ X64 如果要在以下 Windows 版本上安装 .NET SDK 或运行时,则需要其他依赖项:

    2024年02月16日
    浏览(35)
  • .NET7的AOT的使用

    其实,规划这篇文章有一段时间了,但是比较懒,所以一直拖着没写。 最近时总更新太快了,太卷了,所以借着 .NET 7 正式版发布,熬夜写完这篇文章,希望能够追上时总的一点距离。 本文主要介绍如何在 .NET 和 Go 语言中如何生成系统(Windows)动态链接库,又如何从代码中引

    2024年02月04日
    浏览(39)
  • WPF C# .NET7 基础学习

    学习视频地址:https://www.bilibili.com/video/BV1hx4y1G7C6?p=3vd_source=986db470823ebc16fe0b3d235addf050 开发工具:Visual Studio 2022 Community 基础框架:.Net 6.0 下载创建过程略 .Net和.Framework 区别是Net是依赖项,Framework是引用 1.定义一个命名空间, 最常用 不只包括using namespace,还用开头使用的usin

    2024年02月10日
    浏览(46)
  • Debian12安装.NET7 SDK

    Debian,作为最受欢迎的 Linux 发行版之一,于 2023 年 6 月 10 日正式发布了其最新版本 Debian 12,代号“Bookworm”。Debian 12 带来了许多新特性和改进,其中最引人注目的是 Linux 内核的升级,从之前的 5.10 LTS 升级到了 6.1。 这两天尝试了一下Debian12。准备配置一个开发环境,将各类

    2024年02月08日
    浏览(38)
  • 第1章 .Net7 Areas实现

    1 集成路由匹配模式 var builder = WebApplication . CreateBuilder ( args ); // Add services to the container. builder . Services . AddControllersWithViews (); var app = builder . Build (); // Configure the HTTP request pipeline. if (! app . Environment . IsDevelopment ()) {     app . UseExceptionHandler ( \\\"/Home/Error\\\" );     // The default HSTS va

    2024年02月03日
    浏览(46)
  • Linux安装Net7SDK运行Net项目

    1.安装sdk依赖环境 2.安装 SDK 1.选择发布到指定文件夹 2.将发布的 publish 文件夹打包成zip,并将zip上传到云服务器指定文件夹下 3.cd 到zip所在文件夹,解压 4.进入publish文件夹中,运行对应服务dll --urls :运行时指定IP和端口 “ output.log ” :控制台输出内容写入指定文件中 :设

    2023年04月25日
    浏览(51)
  • .NET7使用HttpClient实现查询天气预报接口

    朋友做网站需要根据城市展示天气预报,找了一圈没有找到靠谱的接口,今天在中央气象台的官网查询某个城市找到了接口,先用postman试了一下居然可以使用,可以查询某个城市7天的天气预报等信息。但是查询编码是气象台自己的编码,在网上搜索了一下居然有这个编码。

    2023年04月14日
    浏览(52)
  • .NET CORE开源 DDD微服务 支持 多租户 单点登录 多级缓存、自动任务、分布式、日志、授权和鉴权 、网关 、注册与发现 系统架构 docker部署

    源代码地址https://github.com/junkai-li/NetCoreKevin 基于NET6搭建跨平台DDD思想WebApi架构、IDS4单点登录、多缓存、自动任务、分布式、多租户、日志、授权和鉴权、CAP、SignalR、 docker部署  如需简约项目可直接去除项目引用 解耦设计都可以单独引用 架构默认全部引用并启动 项目启动时

    2023年04月24日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包