↓ 跳过正文
  1. 网络与运维/

基于cloudflare的ddns部署

·2 分钟·
目录

最近在研究如何使用cloudflare的api来实现动态域名解析(DDNS),这里记录一下部署的过程。

准备工作
#

  1. 注册cloudflare账号并添加域名。
  2. 获取API令牌,确保具有编辑DNS记录的权限。

项目部署
#

我是基于https://github.com/favonia/cloudflare-ddns

这个项目来进行部署的,下面是具体步骤:

  1. 克隆仓库:
git clone https://github.com/favonia/cloudflare-ddns.git

2.构建项目:

cd cloudflare-ddns
go build cmd/ddns/ddns.go

3.安装命令行工具

sudo install -m 0755 ddns /usr/local/bin/ddns

4.配置systemd服务: 执行以下命令创建服务文件:

# 创建ddns用户和组
sudo useradd -r -s /usr/sbin/nologin -m -d /var/lib/ddns ddns
#由于环境变量比较多,我们把它们放在一个单独的文件中,服务文件中引用它。
mkdir /etc/ddns
cat >/etc/ddns/config.env <<EOF
CLOUDFLARE_API_TOKEN="在这里填写你的cloudflare的api令牌"
DOMAINS="在这里填写你的域名,多个域名用,分隔"

PROXIED=false

IP4_PROVIDER=
IP6_PROVIDER=

TZ=Asia/Shanghai

RECORD_COMMENT=

DELETE_ON_STOP=true

UPDATE_ON_START=true

#这里填入你的健康检查地址,如果不需要可以留空
HEALTHCHECKS=
EOF
# 创建systemd服务文件
sudo tee >/etc/systemd/system/ddns.service >/dev/null <<EOF
[Unit]
Description=Cloudflare DDNS Updater
Documentation=https://github.com/favonia/cloudflare-ddns
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=ddns
Group=ddns

# 从文件加载环境变量

EnvironmentFile=/etc/ddns/config.env

ExecStart=/usr/local/bin/ddns
Restart=always
RestartSec=10

# 安全加固

NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=strict
ProtectHome=true
RemoveIPC=yes

[Install]
WantedBy=multi-user.target
EOF
  1. 启动服务:
sudo systemctl daemon-reload
sudo systemctl enable --now ddns

验证服务状态:
#

sudo systemctl status ddns

查看日志:
#

sudo journalctl -u ddns -f
叶知秋
作者
叶知秋
写后端的,日常和 Java、Go、数据库、消息队列打交道,也折腾网络和自托管。这里记录实践中搞明白的东西。

相关文章

Java GC进化路程

·4 分钟
JVM 垃圾回收的基本原理,以及 Serial、Parallel、CMS、G1、ZGC 等收集器的演进与启用方式。

反转链表

·1 分钟
LeetCode 206 反转链表的双指针迭代解法、Java 实现与复杂度分析。