Skip to content

快速开始

本指南将帮助你在 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-go

2. 启动服务

bash
docker-compose up -d

3. 访问系统

提示

首次启动可能需要 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.exe

4. 访问系统

方式三:源码编译

如果你想从源码编译,需要安装 Go 1.24+。

1. 克隆项目

bash
git clone https://gitee.com/liumou_site/dns-go.git
cd dns-go

2. 编译前端

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 ./cmd

4. 运行

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. 配置上游策略

进入「上游管理」→「策略配置」,创建上游策略:

策略名称: 默认策略
策略类型: 轮询
上游服务器: 选择已添加的上游 DNS

4. 添加测试域名

进入「域名管理」→「域名列表」,添加一个测试域名:

域名: example.local
描述: 测试域名

然后添加解析记录:

主机记录: www
记录类型: A
记录值: 192.168.1.100
TTL: 300

5. 测试 DNS 解析

bash
# 使用 dig 测试
dig @localhost www.example.local

# 或使用 nslookup
nslookup www.example.local localhost

常见问题

Q: 端口 53 需要 root 权限?

在 Linux/macOS 上,1024 以下的端口需要 root 权限。你可以:

  1. 使用 sudo 运行
  2. 修改配置使用高端口(如 5353),然后通过 iptables 转发
  3. 设置 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

下一步

基于 MIT 许可发布