Skip to content

Automatic dynamic DNS updates on Cloudflare with Bun.sh and JavaScript

Notifications You must be signed in to change notification settings

huynguyeexn/cloudflare-ddns

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cloudflare DDNS

Script tự động cập nhật IP hiện tại của server cho những record A, AAAA của các domain được quản lý bằng Cloudflare, thông qua Cloudflare's client API.

Yêu cầu

Môi trường Linux OS, đã cài đặt Bun.sh

Tạo API

Đăng nhập vào Cloudflare, vào My Profile, chọn API Tokens.

Tạo API Tokens Zone DNS Edit, copy token này để cài đặt bước tiếp theo.

Cài đặt

Tải source code:

git clone https://github.com/huynguyeexn/cloudflare-ddns.git

Sau khi tải, di chuyển đến thư mục cloudflare-ddns chứa source code.

cd cloudflare-ddns

Tạo file .env từ file .env.example có sẵn.

cp .env.example .env

Thiết lập lại các thông số của file .env.

  • API_TOKEN
    • Token được tạo ở bước trước đó.
    • Ví dụ API_TOKEN="ABCdeF-T6K7ppvhk6XDGbpN1fzBtr3WxP1P_mxoh"
  • RECORDS_NAME
    • Mảng các records cần cập nhật.
    • Ví dụ RECORDS_NAME=["domaincuaban.com"], RECORDS_NAME=["domain1.com", "domain2.com"]
  • LATEST_IPV4
    • IPv4 gần nhất được cập nhật, script sẽ tự động điền, không cần điền.
    • Ví dụ LATEST_IPV4=142.251.214.142.
  • LATEST_IPV6
    • IPv6 gần nhất được cập nhật, script sẽ tự động điền, không cần điền.
    • Ví dụ LATEST_IPV6=2405:4803:ffff:ffff:ffff:ffff:ffff:fffe.
  • LOGGING_WHEN_UNCHANGED_IP_ADDRESS
    • Show log nếu IP không có sự thay đổi (mặc định: false)

Run source

Cần cập nhật thông số cho file .env, và cài đặt Bun.sh trước khi run source

Lệnh run source:

bun cloudflare-ddns.js

Lưu ý: Script không chạy tự động, script chỉ chạy khi dùng lệnh trên.

Nếu bạn muốn script chạy định kì thì xem tiếp phần dưới.

Cập nhật IP định kì

Để có thể định kì kiểm tra và cập nhật IP mới thì cần phải setup crontab:

Trong source code có file cloudflare-ddns-crontab, được thiết lập cơ bản như sau:

  • */5 * * * * chạy crontab mỗi 5 phút, xem thêm tại đây crontab.guru.
  • cd /root/.cloudflare-ddns/ di chuyển tới thư mục chứa source code, chỉnh sửa giá trị trên thành đường dẫn đến thư mục source code của bạn.
  • bun cloudflare-ddns.js >> error.log 2>&1 run source và ghi lỗi vào file error.log.

Sau khi cập nhật lại các thiết lập trong file cloudflare-ddns-crontab.

Chúng ta copy file vào thư mục có đường dẫn /etc/cron.d/.

cp cloudflare-ddns-crontab /etc/cron.d/cloudflare-ddns-crontab

About

Automatic dynamic DNS updates on Cloudflare with Bun.sh and JavaScript

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published