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
Hi,
The https://v4.ifconfig.co/ip return incorrect data. I changed to http://ipv4.icanhazip.com/ and it's working fine.