Hacker Public Radio

Your ideas, projects, opinions - podcasted.

New episodes Monday through Friday.


HPR4203: Setup DuckDNS on a Raspberry Pi

Hosted by Kevie on 2024-09-11 00:00:00
Download or Listen

Kevie, co-host of TuxJam, discusses what a Dynamic DNS is and also introduces the free service DuckDNS. To complete this project you are going to need:

  • Raspberry Pi
  • Pi Power Supply
  • Micro-SD Card
  • Ethernet Cable

The first thing that we will need to do is to go to the DuckDNS website, sign in using your preferred method, once you complete the captcha then you will be given your unique token (copy or take a note of it, but don't share this with anybody).

Next you will want to create your own unique address, type in your chosen domain and click on Add Domain.

Now it is time to setup your Raspberry Pi. Log into your Pi and open a terminal. The first thing that we will do is make sure that it is up to date:

sudo apt update && sudo apt upgrade -y

Install Curl using the command:

sudo apt install curl

You will now create two new folders, the first is where the script will be kept, the second to store the logs:

sudo mkdir /opt/duckdns/ && sudo mkdir /var/log/duckdns/

We need to add a bash script that will update your IP with the DuckDNS service. First of all create a new file called duck.sh with the code:

sudo nano /opt/duckdns/duck.sh

At this point the file is empty, we need to enter in the command below. However you must replace DUCKDNSDOMAIN with the domain that was created on the DuckDNS website and replace DUCKTOKEN with your DuckDNS Token:

echo url="https://www.duckdns.org/update?domains=DUCKDNSDOMAIN&token=DUCKTOKEN&ip=" | curl -k -o /var/log/duckdns/duck.log -K -

Now save and exit (ctrl+X, Y, enter on Nano).

Next we can set the script's permission so that nobody else will gain access to your token:

sudo chmod 700 /opt/duckdns/duck.sh

Last step: we need to set a cron task so that your Pi will update DuckDNS domain every 5 minutes:

sudo crontab -e

Navigate to the bottom of the page and add the line:

*/5 * * * * /opt/duckdns/duck.sh >/dev/null 2>&1

Save and exit and your dynamic DNS should be up and running within five minutes.

HPR Comments

Mastodon Comments



More Information...


Copyright Information

Unless otherwise stated, our shows are released under a Creative Commons Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) license.

The HPR Website Design is released to the Public Domain.