120 lines
2.9 KiB
Markdown
120 lines
2.9 KiB
Markdown
# init 命令功能说明
|
||
|
||
## 功能描述
|
||
`mosdns init` 命令用于在任意服务器上快速初始化 MosDNS 配置和必要的目录结构,实现一键部署。
|
||
|
||
## 使用方法
|
||
|
||
### 基本用法
|
||
```bash
|
||
./mosdns-linux-amd64 init
|
||
```
|
||
|
||
### 强制覆盖模式
|
||
```bash
|
||
./mosdns-linux-amd64 init --force
|
||
# 或
|
||
./mosdns-linux-amd64 init -f
|
||
```
|
||
|
||
## 功能特性
|
||
|
||
1. ✅ 自动生成 config.yaml 配置文件
|
||
2. ✅ 创建必要的目录结构(data/, config.d/rules/, logs/)
|
||
3. ✅ 生成示例数据文件(CN IP 和域名列表)
|
||
4. ✅ 智能检测已存在文件,避免覆盖
|
||
5. ✅ 提供详细的后续操作指南
|
||
|
||
## 生成的文件结构
|
||
|
||
```
|
||
.
|
||
├── config.yaml # 主配置文件
|
||
├── data/ # 数据文件目录
|
||
│ ├── chn_ip.txt # 中国 IP 地址段(示例)
|
||
│ └── geosite_china-list.txt # 中国域名列表(示例)
|
||
├── config.d/ # 配置目录
|
||
│ └── rules/ # 规则文件目录(空)
|
||
└── logs/ # 日志目录
|
||
```
|
||
|
||
## 配置文件特点
|
||
|
||
生成的 config.yaml 包含:
|
||
- 完整的注释说明
|
||
- 智能 DNS 分流配置
|
||
- 国内/国外 DNS 上游
|
||
- DNS 缓存配置
|
||
- Web 管理界面
|
||
- API 接口
|
||
|
||
## 使用场景
|
||
|
||
### 场景1: 全新服务器快速部署
|
||
```bash
|
||
# 1. 上传二进制文件
|
||
scp mosdns-linux-amd64 user@server:/opt/mosdns/
|
||
|
||
# 2. SSH 登录服务器
|
||
ssh user@server
|
||
|
||
# 3. 初始化
|
||
cd /opt/mosdns
|
||
./mosdns-linux-amd64 init
|
||
|
||
# 4. 启动(非 root 用户修改端口)
|
||
sed -i 's/:53/:5310/g' config.yaml
|
||
./mosdns-linux-amd64 start -c config.yaml
|
||
```
|
||
|
||
### 场景2: Docker 容器部署
|
||
```dockerfile
|
||
FROM debian:12-slim
|
||
COPY mosdns-linux-amd64 /usr/local/bin/mosdns
|
||
WORKDIR /opt/mosdns
|
||
RUN mosdns init
|
||
CMD ["mosdns", "start", "-c", "config.yaml"]
|
||
```
|
||
|
||
### 场景3: 测试环境快速搭建
|
||
```bash
|
||
mkdir test-mosdns && cd test-mosdns
|
||
/path/to/mosdns-linux-amd64 init
|
||
sed -i 's/:53/:5310/g' config.yaml
|
||
/path/to/mosdns-linux-amd64 start -c config.yaml
|
||
```
|
||
|
||
## 代码实现
|
||
|
||
**文件**: `tools/init.go`
|
||
|
||
**核心函数**:
|
||
- `runInit()`: 主执行函数
|
||
- `createConfigFile()`: 创建配置文件
|
||
- `createDirectories()`: 创建目录结构
|
||
- `createDataFiles()`: 创建示例数据文件
|
||
- `showCompletionInfo()`: 显示完成信息
|
||
|
||
**行数**: ~330 行
|
||
|
||
## 测试结果
|
||
|
||
✅ 所有功能测试通过:
|
||
- 初次运行创建所有文件
|
||
- 再次运行提示文件已存在
|
||
- --force 模式可强制覆盖
|
||
- 生成的配置文件格式正确
|
||
- 目录权限设置正确
|
||
|
||
## 优势
|
||
|
||
1. **零配置门槛**: 不需要手动编写配置文件
|
||
2. **标准化部署**: 所有服务器使用统一的配置模板
|
||
3. **快速迭代**: 几秒钟完成初始化
|
||
4. **智能保护**: 自动检测已有文件,避免误删
|
||
5. **完整指引**: 提供详细的后续操作说明
|
||
|
||
---
|
||
|
||
**✨ 现在可以在任意服务器上一键部署 MosDNS 了!**
|