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. 准备配置文件

推荐使用标准配置模板

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:本地数据库 + 二进制

如果要在本地运行数据库:

  1. 安装 PostgreSQL(必需)

    bash
    # Ubuntu/Debian
    sudo apt-get install postgresql postgresql-contrib
    
    # CentOS/RHEL
    sudo yum install postgresql-server postgresql-contrib
    
    # macOS
    brew install postgresql
  2. 初始化数据库

    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.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: 如何修改监听端口?

监听端口通过命令行参数环境变量配置:

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

下一步

基于 MIT 许可发布