/ddns

简单、快速、本地化的 DNS服务

Primary LanguageGo

ddns

提供简单、快速的 DNS 缓存服务

√ 支持 linux,macos

√ 支持从hosts(/etc/hosts*,C:\Windows\System32\drivers\etc\hosts*)读取配置信息

√ 支持从//etc/resolv.conf,windows注册表读取上游 DNS 服务器 IP

√ 支持从注册中心/dns读取配置

√ 支持hydra应用注册的dns服务

√ 缓存上游 DNS 解析结果,加快响应速度

√ 所有配置热更新,无需重启服务

√ 上游 DNS 服务器检测,优先使用速度最快的服务器

√ 基于hydra实现

1. 快速使用

  • 下载
go get github.com/micro-plat/ddns
  • 编译
go install github.com/micro-plat/ddns
  • 安装
sudo ddns install
  • 运行
sudo ddns start
  • 测试
dig github.com @127.0.0.1
  • 本机使用
sudo vim /etc/resolv.conf

#修改内容如下:
nameserver 127.0.0.1

2. hosts 文件

  • 修改hosts文件,添加需解析的域名,删除无需解析的域名
  • etc目录下新建名称以hosts开头的文件,添加解析信息
sudo vim /etc/hosts_google
# Google Start
172.217.6.127	com.google
172.217.6.127	domains.google
172.217.6.127	environment.google
172.217.6.127	google.com
172.217.6.127	google.com.af
172.217.6.127	google.com.ag
172.217.6.127	google.com.ai
172.217.6.127	google.com.ar
172.217.6.127	google.com.au

"/etc/hosts_google" 9L

3.注册中心

  • 进入注册中心(fszookeeper),在节点/dns目录下新建域名,和解析的 IP,如:
/dns
-----google.com
--------172.217.6.127

4.hydra 服务

为API服务设置解析域名

hydra.Conf.API(":8081", api.WithDNS("www.ddns.com"))

DDNS实时收到解析信息

[2019/08/23 16:31:12.48855][i][9077e9414][缓存:www.ddns.com,1条]

5.上游 DNS

未在hosts*,或注册中心配置的域名,直接使用上游DNS服务器查询域名解析结果

  • 打开/etc/resolv.conf文件,添加上游 DNS 服务器 IP
sudo vim /etc/resolv.conf 
nameserver 127.0.0.1
nameserver 114.114.114.114
nameserver 8.8.8.8

7. 优先级

注册中心 > 本地 HOSTS > 上游 DNS