logo
0
0
Login

SmartDNS ConfigService Client

基于 Apollo 的 SmartDNS 配置管理工具

编译

go version >= 1.22

./build.sh

会生成 aarch64 x86 等平台的二进制程序

安装

运行目录 /opt/cmclient

将对应平台的程序拷贝到运行目录,命名为 cmclient

拷贝 cmclient.yaml.demo 到运行目录,命名为 cmclient.yaml

拷贝 cmclient.service 到 /etc/systemd/system/

sudo systemctl daemon-reload

修改配置

下面是 cmclient.yaml 的配置说明

configServer: http://192.168.74.40:8080 #Apollo Config Server 地址 appId: smartdns # Apollo Appid cluster: beijing # Apollo 集群名称 accessKey: xxxx # Apollo 鉴权 AppKey targetConfig: /etc/smartdns/conf.d/ # 将生成的配置存在哪里? reloadCmd: /usr/bin/systemctl restart smartdns # 重启服务的命令 namespaces: - service - nameservers.txt - rules.txt - domains

安装 SmartDNS 并进行配置

根据 SmartDNS 文档进行安装

创建 /etc/smartdns/conf.d/ 目录

创建 smartdns.conf 内容如下

conf-file conf.d/*.conf

Apollo 的配置

  • 私有 properties service 服务通用配置
dualstack-ip-selection = yes bind = :53 user = dns speed-check-mode = ping,tcp:80,tcp:443 response-mode = fastest-ip audit-enable = yes audit-num = 16 audit-size = 16M audit-file-mode = 0644 audit-file = /var/log/smartdns/smartdns-audit.log log-level = error log-num = 8 log-size = 2M log-file-mode = 0644 log-file = /var/log/smartdns/smartdns.log expand-ptr-from-address = yes #reload = true
  • 私有 txt nameservers 上游DNS服务器
# nameservers server tls://223.6.6.6 server tls://223.5.5.5
  • 私有 txt rules 解析策略
# rules domain-rules /bj-home-ros-v6.ddns.hex.ac.cn/ -no-cache domain-rules /hb-home-ros-ydv6.ddns.hex.ac.cn/ -no-cache
  • 私有 properties domains 内网域记录
xxx.com = A,192.168.100.100

Cmclient 控制

systemctl start cmclient.service # 启动 systemctl enable cmclient.service # 自启 journalctl -f -u cmclient # 日志

About

基于 Apollo 的 SmartDNS 配置管理工具

Language
Go94.3%
Markdown4.2%
License1%
Shell0.2%
Others0.3%