文档目录

运行目录结构

这篇文章主要介绍坦克NS运行目录结构。默认情况下,你下载的坦克NS压缩包只包含一个二进制可执行文件,第一次运行的时候会创建一些文件和目录。这些文件和目录就是这里要解释的。

坦克NS运行目录结构

tank-ns
│   ├── i18n
│   │   ├── zh-CN.client.tconf
│   │   ├── zh-CN.daemon.tconf
│   │   ├── zh-CN.document.tconf
│   │   ├── zh-CN.exportns.tconf
│   │   ├── zh-CN.finder.tconf
│   │   ├── zh-CN.forwarder.tconf
│   │   ├── zh-CN.main.tconf
│   │   ├── zh-CN.parser.tconf
│   │   ├── zh-CN.query.tconf
│   │   ├── zh-CN.record.tconf
│   │   ├── zh-CN.recursive.tconf
│   │   ├── zh-CN.table.tconf
│   │   ├── zh-CN.tool.tconf
│   │   ├── zh-CN.update.tconf
│   │   ├── zh-CN.webfw.tconf
│   │   ├── zh-CN.weixinWork.tconf
│   │   └── zh-CN.writer.tconf
│   ├── tankns
│   ├── 日志.txt
│   ├── 生产环境.tconf
│   ├── 记录
│   │   ├── 所有记录.tconf
│   │   └── 配置示例.md
│   └── 调试
│       └── 坦克ns声明.tconf

想知道什么是tconf格式(点击这里了解 tconf)

文件解释

i18n,多语言目录,支持软件国际化,当前只支持中文。用户可以添加自己的语言在这里,然后在生产环境.tconf配置文件里面设置成对应的语言即可。

zh-CN.daemon.tconf 中文语言文件部分内容展示:

,,=《》#“”

权限不足 = “权限不足,需要 Root 用户运行”
服务已经安装 = “服务已经安装的萨菲”
安装失败 = “安装失败,错误机器消息:%v”
创建systemd模板失败 = “创建systemd模板失败,机器消息:%v”
解析systemd模板失败 = “解析systemd模板失败,机器消息:%v”
重启系统服务失败 = “重启系统服务失败,机器消息:%v”
设置开机启动失败 = “设置服务开机启动失败,机器消息:%v”
安装成功 = “安装成功”

tankns,可以执行的二进制文件,在windows系统,这个文件的名称是tankns.exe,当您在坦克官方网站下载压缩包的时候,唯一包含的文件就是这个。

日志.txt,记录坦克NS运行时日志。其中包括错误,意外终止信息,帮助开发者迅速定位问题。

生产环境.tconf,生产环境配置文件,这个文件是坦克NS运行时配置文件,它包括所有支持的选项。
生产环境.tconf是中文配置文件,部分内容展示:

语言=zh-CN

!监听网络接口=0.0.0.0

#全局递归查询主要设置是坦克NS负责的Zone之外的域名(没有添加到坦克NS的Zone,也称坦克NS不负责的Zone)是否递归查询。举例:坦克NS服务器没有配置 com.cn 这个Zone,用户现在查询 example.com.cn 这个域名,如果开启递归查询,则会进行递归查询。如果不开启,就返回未查询到域名响应。这个根据用户需要,如果坦克NS服务器原则只负责自己的Zone,可以关闭它,如果坦克NS作为服务器的同时也作为代理服务器,则可以开启它。默认开启。关于前端DNS服务器和后端DNS服务器的描述,参考这里:https://www.tankprint.online/2023/09/04/坦克NS-v1.4.0开发计划.html
#关闭递归查询只要在前面添加!号注释它。
!递归查询

# 坦克缓存自带的缓存查看器,提供一个服务,让开发者可以用浏览器实时查看到缓存的记录内容,方便开发调试。如果不是开发者,可以不用开启这个功能。
!启动缓存查看器

...
...

#记录存放的目录。
记录目录=./记录

#软件运行过程会产生记录,包括:错误,消息。这些记录会对外输出给用户,当你使用 systemD 启动的时候,会保存到“记录保存文件”字设置的文件里面,当你在前台运行的时候,除了保存在上面指定的文件里面,还会输出到终端。如果不需要这个功能,请添加!号注释它。
运行情况记录《
    记录保存文件=./日志.txt
》

记录,坦克NS的DNS记录实际保存数据的目录。

调试,调试是开发者使用的目录,记录坦克NS调试信息。可以在生产环境配置文件开启。
坦克ns声明.tconf 记录调试信息,这个只是声明一个步骤的开始,并不会记录其他信息,完成一次请求过程记录的内容展示:

「2024-11-22 22:26:36,210437173254697377,新请求,客户端 192.168.3.100 发来请求。」
「2024-11-22 22:26:36,210437173254697377,开始处理,开始创建协程处理客户端 192.168.3.100 的请求。」
「2024-11-22 22:26:36,210437173254697377,解析DNS包成功,解析客户端 192.168.3.100 的DNS请求包到处理结构体成功。」
「2024-11-22 22:26:36,210437173254697377,开始查询数据库,开始在数据库查询记录类型 A 域名 gitee.com 。」
「2024-11-22 22:26:36,210437173254697377,查询结束,查询结束,查询到的答案数量 0。」
「2024-11-22 22:26:36,210437173254697377,开始借助外部查询,数据库没有找到答案,开始借助外部服务器查询域名 gitee.com 。」
「2024-11-22 22:26:36,210437173254697377,没有执行递归查询,没有执行递归查询。」
「2024-11-22 22:26:36,210437173254697377,进入缓存查询阶段,进入缓存查询阶段,开始执行缓存查询。」
「2024-11-22 22:26:36,210437173254697377,缓存查询不到,缓存查询不到,进入下个阶段。」
「2024-11-22 22:26:36,210437173254697377,进入转发查询阶段,进入转发查询阶段,但未执行转发查询(依据策略执行)。」
「2024-11-22 22:26:36,210437173254697377,开始转发,开始转发,借助外部服务器 114.114.114.114 查询。」
「2024-11-22 22:26:36,210437173254697377,转发完成,借助外部服务器 114.114.114.114 查询完成」
「2024-11-22 22:26:36,210437173254697377,完成处理,完成处理客户端 192.168.3.100:59711 的域名 gitee.com 请求。」
「2024-11-22 22:26:36,210437173254697377,关闭协程,关闭协程。」

总结

完成了这篇教程,你应该已经清晰起来了,对坦克NS有了大概了解。接下来你可以往 记录 文件夹里添加自己的记录了,由你定义,你想要多少域名都可以。坦克NS支持的记录类型,点击这里了解。