快速开始
本指南将帮助你在 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. 准备配置文件
创建 config/config.toml 文件:
toml
[app]
name = "DNS-Go"
version = "1.0.0"
env = "production"
[server]
port = 8085
listen_addr = "0.0.0.0"
[dns]
port = 53
listen_addr = "0.0.0.0"
[database]
type = "sqlite" # 可选: sqlite, postgres, mysql
path = "./data/dns-go.db" # SQLite 路径
# 如果使用 PostgreSQL,取消下面注释并配置
# host = "localhost"
# port = 5432
# user = "dnsgo"
# password = "your-password"
# dbname = "dnsgo"
[cache]
type = "memory" # 可选: memory, valkey, redis
# 如果使用 Valkey/Redis,取消下面注释并配置
# host = "localhost"
# port = 6379
# password = ""
# db = 0
[log]
level = "info"
path = "./logs"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: 如何修改监听端口?
编辑 config/config.toml 修改端口配置:
toml
[server]
port = 8080 # 修改 Web 端口
[dns]
port = 5353 # 修改 DNS 端口Q: 数据库连接失败?
检查数据库服务是否启动,以及配置是否正确。查看日志文件获取详细错误信息。
Q: 如何查看日志?
bash
# Docker 部署
docker-compose logs -f dns-go
# 二进制部署
tail -f logs/app.log