快速开始
本指南将帮助你在 5 分钟内快速部署和运行 DNS-Go。
环境要求
在开始之前,请确保你的系统满足以下要求:
- 操作系统: Linux, Windows, macOS
- Docker: 20.10+ (推荐)
- Docker Compose: 2.0+ (推荐)
- 端口: 8085, 53/udp, 53/tcp 未被占用
方式一:Docker Compose 部署(推荐)
最简单快捷的部署方式,一键启动所有服务。
1. 克隆项目
bash
git clone https://gitee.com/liumou_site/dns-go.git
cd dns-go2. 启动服务
bash
docker-compose up -d3. 访问系统
- Web 管理界面: http://localhost:8085
- 默认账号:
admin - 默认密码:
admin123
提示
首次启动可能需要 1-2 分钟完成数据库初始化,请耐心等待。
方式二:二进制部署
如果你不想使用 Docker,可以直接下载二进制文件运行。
1. 下载二进制文件
从 Releases 页面下载对应平台的二进制文件。
2. 准备配置文件
推荐使用标准配置模板:
bash
# 创建配置目录
mkdir -p config
# 下载官方配置模板
curl -o config/config.toml https://gitee.com/liumou_site/dns-go/raw/master/vitepress/public/config.example.toml或者手动创建 config/config.toml,参考完整配置示例。
最低配置要求
重要:DNS-Go 仅支持 PostgreSQL 和 MySQL 数据库,不支持 SQLite。
即使是最小配置也需要一个数据库服务:
方案1:使用 Docker(最简单)
bash
# 使用 Docker Compose 一键启动所有服务(推荐)
git clone https://gitee.com/liumou_site/dns-go.git
cd dns-go
docker-compose up -d方案2:本地数据库 + 二进制
如果要在本地运行数据库:
安装 PostgreSQL(必需)
bash# Ubuntu/Debian sudo apt-get install postgresql postgresql-contrib # CentOS/RHEL sudo yum install postgresql-server postgresql-contrib # macOS brew install postgresql初始化数据库
bash# 启动 PostgreSQL
sudo systemctl start postgresql
创建数据库和用户
sudo -u postgres psql -c "CREATE USER dnsgo WITH PASSWORD 'your_password';" sudo -u postgres psql -c "CREATE DATABASE dns_go OWNER dnsgo;"
3. **使用标准配置模板**
```bash
mkdir -p config
curl -o config/config.toml https://gitee.com/liumou_site/dns-go/raw/master/vitepress/public/config.example.toml⚠️ 注意:
- 必须安装 PostgreSQL 或 MySQL 才能运行 DNS-Go
- 没有数据库服务,程序无法启动
- 生产环境强烈建议使用 Docker 部署
3. 运行程序
bash
# Linux/macOS
chmod +x dns-go-linux-amd64
./dns-go-linux-amd64
# Windows
dns-go-windows-amd64.exe4. 访问系统
- Web 管理界面: http://localhost:8085
- 默认账号:
admin - 默认密码:
admin123
方式三:源码编译
如果你想从源码编译,需要安装 Go 1.24+。
1. 克隆项目
bash
git clone https://gitee.com/liumou_site/dns-go.git
cd dns-go2. 编译前端
bash
cd pure-admin-thin-v6.0.0
npm install
npm run build
cd ..3. 编译后端
bash
cd backend
# 复制前端构建产物
cp -r ../pure-admin-thin-v6.0.0/dist cmd/web
# 编译
go build -o dns-go-app ./cmd4. 运行
bash
./dns-go-app初始化配置
首次登录后,建议进行以下配置:
1. 修改默认密码
进入「系统管理」→「个人资料」修改默认密码。
2. 添加上游 DNS
进入「上游管理」→「上游列表」,添加你的上游 DNS 服务器:
- 阿里云 DNS:
223.5.5.5,223.6.6.6 - 腾讯云 DNS:
119.29.29.29,182.254.116.116 - 114 DNS:
114.114.114.114,114.114.115.115 - Google DNS:
8.8.8.8,8.8.4.4
3. 配置上游策略
进入「上游管理」→「策略配置」,创建上游策略:
策略名称: 默认策略
策略类型: 轮询
上游服务器: 选择已添加的上游 DNS4. 添加测试域名
进入「域名管理」→「域名列表」,添加一个测试域名:
域名: example.local
描述: 测试域名然后添加解析记录:
主机记录: www
记录类型: A
记录值: 192.168.1.100
TTL: 3005. 测试 DNS 解析
bash
# 使用 dig 测试
dig @localhost www.example.local
# 或使用 nslookup
nslookup www.example.local localhost常见问题
Q: 端口 53 需要 root 权限?
在 Linux/macOS 上,1024 以下的端口需要 root 权限。你可以:
- 使用 sudo 运行
- 修改配置使用高端口(如 5353),然后通过 iptables 转发
- 设置 capabilities:
sudo setcap cap_net_bind_service=+ep ./dns-go-app
Q: 如何修改监听端口?
监听端口通过命令行参数或环境变量配置:
bash
# 方式1:命令行参数
./dns-go-app --port 8080 --dns-port 5353
# 方式2:环境变量
export SERVER_PORT=8080
export DNS_PORT=5353
./dns-go-app详细的配置说明请参考配置指南。
Q: 数据库连接失败?
检查数据库服务是否启动,以及配置是否正确。查看日志文件获取详细错误信息。
Q: 如何查看日志?
bash
# Docker 部署
docker-compose logs -f dns-go
# 二进制部署
tail -f logs/app.log