Skip to content

Latest commit

 

History

History
82 lines (54 loc) · 2.87 KB

readme.md

File metadata and controls

82 lines (54 loc) · 2.87 KB

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