快速开始cloudflare ddns

本文讲述如何用最简单的方式快速开始使用cloudflare ddns。

本文不会详细将这个,请参考其他教程。

  1. 访问https://dash.cloudflare.com/profile/api-tokens,右上角处可以切换为简体中文
  2. 点击创建令牌,选择编辑区域DNS模板
  3. 名称任意填写
  4. 令牌权限选择编辑区域DNS,令牌的权限务必选择
    • 区域-区域-读取
    • 区域-dns-编辑
  5. 区域资源,选择需要用于ddns的域名
  6. 客户端IP(可选),这个用于区别调用客户端的白名单,由于本文讲解ddns,本身访问的公网IP就是动态的,所以这里最好不要填写
  7. TTL,定义此令牌将保持活动状态的时间长度。这个不需要填写

创建令牌

完成后点击创建令牌,并拷贝token

拷贝token

  1. 访问https://dash.cloudflare.com/
  2. 选择需要用于ddns的域名
  3. 页面右下角即可看到zone id

获取zone id

  1. 下载页 下载cf-ddns-windows-x64-(version)-RELEASE.exe,更名为cf-ddns.exe
  2. 将cf-ddns.exe放到一个目录,例如C:\Users[UserName]\cf-ddns,[UserName]替换为你的用户名
  3. 进入到cf-ddns所在目录,打开终端,执行命令,这行命令将开始进行300秒一次的ip检查,一旦ip变化,将会更新cloudflare的域名解析
    1
    
    cf-ddns.exe -gen -zoneId=<替换为上文的zoneId> -authKey=<替换为上文的token> -domain=<替换为想使用的域名> -v4=<true: 开启ipv4, false: 关闭ipv4> -v6=<true: 开启ipv6, false: 关闭ipv6>
    

上文的基础使用方式,需要一直保持终端开启,如果关机或者终端关闭,将无法继续更新域名解析。这里我们可以使用winsw将cf-ddns.exe包装成windows服务。 winsw是一个开源的windows服务包装器,可以将任意可执行文件包装成windows服务,官方文档请参考这里

  1. 下载页 下载cf-ddns-windows-x64-(version)-RELEASE.exe,更名为cf-ddns.exe
  2. 将cf-ddns.exe放到一个目录,例如C:\Users[UserName]\cf-ddns,[UserName]替换为你的用户名,注意后续的内容中,这个目录将会多次出现
  3. winsw 下载winsw-2.12.0-bin.exe
  4. 在cf-ddns所在目录,创建一个xml文件,例如cf-ddns-service.xml
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    <service>
        <id>cf-ddns</id>
        <name>cf-ddns</name>
        <description>cloudflare ddns</description>
        <workingdirectory>C:\Users\[UserName]\cf-ddns</workingdirectory>
        <executable>C:\Users\[UserName]\cf-ddns</executable>
        <startarguments>-gen -zoneId=<替换为上文的zoneId> -authKey=<替换为上文的token> -domain=<替换为想使用的域名> -v4=<true: 开启ipv4, false: 关闭ipv4> -v6=<true: 开启ipv6, false: 关闭ipv6></startarguments>
        <onfailure action="restart" delay="10 sec"/>
    </service>
    
  5. 将WinSW-x64.exe重命名为cf-ddns-service.exe,完成后的目录结构如下
    1
    2
    3
    4
    
    C:\Users\[UserName]\cf-ddns
    ├── cf-ddns.exe
    ├── cf-ddns-service.xml
    ├── cf-ddns-service.exe
    
  6. 打开终端,执行命令,安装服务
    1
    
    cf-ddns-service.exe install cf-ddns-service.xml
    
  7. 启动服务
    1
    
    cf-ddns-service.exe start cf-ddns-service.xml
    
  8. 查看服务状态
    1
    
    cf-ddns-service.exe status cf-ddns-service.xml
    
  9. 卸载服务
    1
    
    cf-ddns-service.exe uninstall cf-ddns-service.xml
    

完成后,cf-ddns将会以windows服务的方式运行,即使关机或者终端关闭,也会继续更新域名解析。 在Windows的服务管理器中,可以看到cf-ddns服务。

  1. 下载页 下载cf-ddns-linux-x64-(version)-RELEASE.kexe
  2. 将下载的文件重命名为cf-ddns,并且给予运行权限
    1
    
        mv cf-ddns-linux-x64-(version)-RELEASE.kexe cf-ddns && chmod +x cf-ddns
    
  3. 将cf-ddns.kexe放到一个目录,例如/usr/local/bin
    1
    
    mv cf-ddns /usr/local/bin
    
  4. 执行命令,这行命令将开始进行300秒一次的ip检查,一旦ip变化,将会更新cloudflare的域名解析
    1
    
    cf-ddns.kexe -gen -zoneId=<替换为上文的zoneId> -authKey=<替换为上文的token> -domain=<替换为想使用的域名> -v4=<true: 开启ipv4, false: 关闭ipv4> -v6=<true: 开启ipv6, false: 关闭ipv6>
    
  1. 下载页 下载cf-ddns-linux-x64-(version)-RELEASE.kexe
  2. 将下载的文件重命名为cf-ddns,并且给予运行权限
    1
    
        mv cf-ddns-linux-x64-(version)-RELEASE.kexe cf-ddns && chmod +x cf-ddns
    
  3. 将cf-ddns.kexe放到一个目录,例如/usr/local/bin
    1
    
    mv cf-ddns /usr/local/bin
    
  4. 创建服务
    1. 创建服务文件
      1
      2
      
       # 创建服务
       vim /etc/systemd/system/cloudflare-ddns.service
      
    2. 填充内容
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      
      [Unit]
      Description=cloudflare-ddns
      After=network.target
      
      [Service]
      Type=simple
      ExecStart=/usr/bin/cf-ddns -gen -zoneId=<替换为上文的zoneId> -authKey=<替换为上文的token> -domain=<替换为想使用的域名> -v4=<true: 开启ipv4, false: 关闭ipv4> -v6=<true: 开启ipv6, false: 关闭ipv6>
      Restart=on-failure
      
      [Install]
      WantedBy=multi-user.target
      
    3. 启动服务
      1
      
      systemctl start cloudflare-ddns
      
    4. 设置开机启动
      1
      
      systemctl enable cloudflare-ddns
      
  1. 下载页 下载cf-ddns-linux-x64-(version)-RELEASE.kexe
  2. 将下载的文件重命名为cf-ddns,并且给予运行权限
    1
    
        mv cf-ddns-linux-x64-(version)-RELEASE.kexe cf-ddns && chmod +x cf-ddns
    
  3. 将cf-ddns.kexe放到一个目录,例如/usr/local/bin
    1
    
    mv cf-ddns /usr/local/bin
    
  4. 编辑cron
    1
    
    crontab -e
    
  5. 添加一行
    1
    
    */5 * * * * /usr/local/bin/cf-ddns -gen -zoneId=<替换为上文的zoneId> -authKey=<替换为上文的token> -domain=<替换为想使用的域名> -v4=<true: 开启ipv4, false: 关闭ipv4> -v6=<true: 开启ipv6, false: 关闭ipv6> -once
    
1
2
3
4
5
6
docker run -d \
    --network host \
    --name cf-ddns \
    --restart unless-stopped \
    selcarpa/cloudflare-ddns:latest \
    -gen -zoneId=<替换为上文的zoneId> -authKey=<替换为上文的token> -domain=<替换为想使用的域名> -v4=<true: 开启ipv4, false: 关闭ipv4> -v6=<true: 开启ipv6, false: 关闭ipv6>
1
2
3
4
5
6
7
8
services:
  cf-ddns:
    image: selcarpa/cloudflare-ddns:latest
    network_mode: host
    container_name: cf-ddns
    restart: unless-stopped # 开机自启
    command:
      -gen -zoneId=<替换为上文的zoneId> -authKey=<替换为上文的token> -domain=<替换为想使用的域名> -v4=<true:开启ipv4, false: 关闭ipv4> -v6=<true: 开启ipv6, false: 关 闭ipv6>