This is a bash script to act as a Cloudflare DDNS client, useful replacement for ddclient.
This gist will no longer update, instead please go to https://github.com/lifehome/systemd-cfddns for more updated versions.
- Put the
cfupdater
files to/usr/local/bin
- If you are using IPv4 for A record, append
-v4
tocfupdater
in the following systemd service unit. - If you are using IPv6 for AAAA record, append
-v6
tocfupdater
in the following systemd service unit. - If you prefer a dual-stack record, append
-dualstack
tocfupdater
in the following systemd service unit.
chmod +x /usr/local/bin/cfupdater
- Create a systemd service unit at
/etc/systemd/system/
, thecfupdate.service
is shown as an example. - Create a systemd timer unit at the same location of the service unit, the
cfupdate.timer
is shown as an example. sudo systemctl enable cfupdate.timer
sudo systemctl start cfupdate.timer
The default cfupdate.timer
is set to execute the script every minute.
Please keep in mind not to spam the API or you will be rate limited.
The dual-stack script has NOT been tested, use with caution. The dual-stack script will always sync upon either IPv4 or IPv6 has changed.
A quote from Cloudflare FAQ:
All calls through the Cloudflare Client API are rate-limited to 1200 every 5 minutes.
-- https://support.cloudflare.com/hc/en-us/articles/200171456
@Noxturnix Thanks for the compliment! 😆
@badrianiulian Thanks! I have made a script for dual stack record 👍 And it looks good for the dual stack script u modified 😄
@ofit My idea is to update one entry at a time, so either you could CNAME all necessary subdomain to a single A record, or create multiple copies of bash script and systemd units. You may reference the following idea for the DNS management: