ddclient is used to update Cloudflare DNS with the current home internet public IP address. Since the home internet uses a dynamic IP, this software runs as a service to pull the current public IP address and then update Cloudflare DNS using an API. Without this service, accessing self-hosted applications would be less reliable and fail completely if the public IP address changes. # Installation To install ddclient, run following commands ``` bash sudo apt-get update sudo apt install ddclient ``` Configure ddclient for use with Cloudflare DNS. The password field is populated with the API token generated from Cloudflare. ``` bash sudo nano /etc/ddclient.conf # Configuration file for ddclient generated by debconf # # /etc/ddclient.conf # techtrekkerz.com business domain protocol=cloudflare \ use=web, web=ipify-ipv4 \ zone=techtrekkerz.com \ login=token \ password='AiWIVPetG7by_Eclz3_Sb-n8C2Gxwvh2ts8FBHDU' \ *.techtrekkerz.com # speerfam.net personal domain protocol=cloudflare \ use=web, web=ipify-ipv4 \ zone=speerfam.net \ login=token \ password='AiWIVPetG7by_Eclz3_Sb-n8C2Gxwvh2ts8FBHDU' \ *.speerfam.net ``` Configure ddclient to run as a service ``` bash sudo nano /etc/default/ddclient # Configuration for ddclient scripts # generated from debconf on Tue May 14 12:03:42 PM CDT 2024 # # /etc/default/ddclient # Set to "true" if ddclient should be run every time DHCP client ('dhclient' # from package isc-dhcp-client) updates the systems IP address. run_dhclient="false" # Set to "true" if ddclient should be run every time a new ppp connection is # established. This might be useful, if you are using dial-on-demand. run_ipup="false" # Set the time interval between the updates of the dynamic DNS name in seconds. # This option only takes effect if the ddclient runs in daemon mode. run_daemon="true" daemon_interval="5m" ``` Start ddclient service and set service to start at boot ``` bash sudo systemctl start ddclient.service sudo update-rc.d ddclient enable ``` ----- # Backup To backup the configuration settings of ddclient, run the following commands. ``` bash sudo rsync /etc/ddclient.conf /mnt/5TB-Disk1/backup/server/ddclient/ && sudo rsync /etc/default/ddclient /mnt/5TB-Disk1/backup/server/ddclient/ ```