欢迎访问 生活随笔!

ag凯发k8国际

当前位置: ag凯发k8国际 > 编程语言 > asp.net >内容正文

asp.net

一个基于.net7的开源dns服务 dnsserver 的部署使用经验分享 -ag凯发k8国际

发布时间:2023/11/16 asp.net 143 coder
ag凯发k8国际 收集整理的这篇文章主要介绍了 一个基于.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

容器中资源占用情况

dnsserver 的使用

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


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

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

  1. 控制台->zones->add zone 创建主区域 test.com

  2. 添加泛解析


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

  4. 验证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的生效都挺快的

相关文档

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

后语

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

总结

以上是ag凯发k8国际为你收集整理的一个基于.net7的开源dns服务 dnsserver 的部署使用经验分享的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得ag凯发k8国际网站内容还不错,欢迎将ag凯发k8国际推荐给好友。

  • 上一篇:
  • 下一篇:
网站地图