
🏅自建DNS服务器环境准备:创建VPS、配置SSH密钥、安装Docker Compose完整教程

🏅自建DNS服务器环境准备:创建VPS、配置SSH密钥、安装Docker Compose完整教程
开场 — 实践篇环境准备
实践篇系列说明
| 集数 | 内容 | 状态 |
|---|---|---|
| Part 1(本集) | VPS 创建 + SSH 密钥 + Docker Compose | ✅ 本文 |
| Part 2(下集) | 更新脚本 + SmartDNS + AdGuard Home + 定时任务 + 成果展示 | 待发布 |
视频因时长限制,本集仅覆盖实践篇前三步。Money哥家里的 DNS 服务器跑在 ESXi 上的 CentOS 7,与 VPS 部署原理一致。
1. GCP 创建 VPS
视频以 Google Cloud 为例从头到尾演示。点击「创建实例」,按以下推荐配置:
| 配置项 | 推荐值 | 说明 |
|---|---|---|
| 区域 | 香港 | 离国内近、延迟低 |
| CPU / 内存 | 2 vCPU / 4 GB | 跑 SmartDNS + AdGuard Home 双容器足够 |
| 系统盘 | 20 GB 标准持久盘 | DNS 服务无需高性能 SSD |
| 操作系统 | CentOS Stream 9 x86_64 | GCP 已下架 CentOS 7,选 9 即可 |
| 防火墙 | 允许 HTTP + HTTPS | 后续 AdGuard Home Web 管理需要 |
GCP 创建 VPS 入口
选择香港区域
实例规格 — 2 CPU / 4 GB 内存
选择 CentOS Stream 9
防火墙 — 允许 HTTP/HTTPS
配置确认后点击 Create,等待实例启动:
VPS 创建完成
2. 系统更新
通过 GCP 浏览器 SSH 或后续配置的密钥登录后,先更新系统:
sudo yum update -y
出现 Complete! 提示即表示系统已更新到最新版本。
yum update 系统更新
3. SSH 密钥登录
3.1 安装 Vim
sudo yum install -y vim
3.2 配置 authorized_keys
mkdir -p ~/.ssh
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys
# 按 a 进入插入模式,粘贴本地公钥(ssh-rsa AAAA...)
# 保存:Shift+ZZ
chmod 600 ~/.ssh/authorized_keys
SSH 密钥登录章节
粘贴公钥到 authorized_keys
3.3 修改 sshd_config
sudo vim /etc/ssh/sshd_config
# 搜索 PermitRootLogin,改为:
# PermitRootLogin prohibit-password
sudo systemctl restart sshd
含义:允许 root 登录,但禁止密码,只能用密钥。
编辑 sshd_config — 禁止密码登录
3.4 本地测试登录
ssh root@YOUR_VPS_IP
# 首次连接输入 yes
SSH 密钥登录测试成功
4. Docker + Docker Compose 安装
重新 SSH 登录后,按顺序执行(视频内完整命令打包在会员群文档):
# 1. 再次更新
sudo yum update -y
# 2. 安装依赖库
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 3. 添加 Docker 仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 4. 安装 Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
# 5. 启动并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
# 6. 验证 Docker
sudo docker info
# 7. 下载 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" \
-o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose
# 8. 验证版本
docker-compose --version
Docker 安装步骤
Docker Compose 下载与软链接
视频演示版本为 v2.32.1。软链接到 /usr/bin/ 后,系统任意路径都可调用 docker-compose。
FAQ
Q1:没看过理论篇可以直接跟做吗?
A:可以,但建议先看 理论篇 理解 DNS 分流拓扑,部署时心里有数。
Q2:必须用 GCP 吗?
A:不必。甲骨文云、AWS、家里 ESXi/树莓派均可,只要是 Linux + Docker。
Q3:为什么选 CentOS 9 而不是 7?
A:GCP 镜像列表已下架 CentOS 7;Stream 9 命令兼容,yum 流程相同。
Q4:2GB 内存够吗?
A:勉强够单容器;SmartDNS + AdGuard Home 双容器建议 4GB。
Q5:防火墙要开哪些端口?
A:本集开 HTTP/HTTPS;下集部署 AdGuard Home 还需 53(DNS)等端口。
Q6:完整命令清单在哪?
A:视频内命令会打包成文本,由 MMH 志愿者在会员群发放。
结语
本集完成实践篇前三步:VPS → SSH 密钥 → Docker Compose。环境就绪后,下集将部署 SmartDNS + AdGuard Home 并配置定时任务。
结语 — 下集预告 SmartDNS + AdGuard Home
📺 完整视频: YouTube 环境准备篇(14 分钟)
📚 理论篇: 自建 DNS 理论篇 — 分流原理讲清楚 · 致新同学信
