Dyndns Updater
Revision as of 12:32, 4 November 2025 by Rafahsolis (talk | contribs)
Duck DNS
- Create an account at https://www.duckdns.org/
- Create the script /var/local/duckdns/updater.sh (chmod 700)
- create the log file: touch /var/local/duckdns/duck.log
LOG_FILE=/var/local/duckdns/duck.log
DATE=$(date +"%F %T")
RESULT=$( echo url="https://www.duckdns.org/update?domains=flirt,zr0ke,r0942,m0rpheus&token=********-****-****-****-************&ip=" | curl -s -k -K - )
echo ${DATE} ${RESULT} >> ${LOG_FILE}
improved script
#!/bin/bash
# Your DuckDNS token
TOKEN="********-****-****-****-************"
# List of your DuckDNS subdomains
DOMAINS=("r0942" "zr0ke" "labelbosque")
# Optional: IP address to set (leave empty to use external IP)
IP=""
# Log file
LOGFILE="$HOME/duckdns/update.log"
log() {
local message="$1"
local timestamp
timestamp=$(date '+%Y-%m-%d %H:%M:%S')
echo "$timestamp - $message" >> "$LOGFILE"
}
for DOMAIN in "${DOMAINS[@]}"; do
if [ -z "$DOMAIN" ]; then
log "Skipped empty domain entry"
continue
fi
URL="https://www.duckdns.org/update?domains=${DOMAIN}&token=${TOKEN}&ip=${IP}"
RESPONSE=$(curl -s --fail "$URL") || RESPONSE="curl_error"
if [ "$RESPONSE" == "OK" ]; then
log "Updated $DOMAIN successfully"
else
log "Failed to update $DOMAIN: $RESPONSE"
fi
done
- crontab -e
*/5 * * * * /var/local/duckdns/updater.sh >/dev/null 2>&1
NO-IP
Ubuntu 16.04 server
sudo apt install ddclient
/etc/ddclient.conf example
## ddclient configuration file
daemon=600
# check every 600 seconds
syslog=yes
# log update msgs to syslog
mail-failure=redteam@bbva.com # Mail failed updates to user
pid=/var/run/ddclient.pid
# record PID in file.
ssl=yes
# use HTTPS
## Detect IP with our CheckIP server
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
## DynDNS username and password here
login=RedTeam
password=##YOUR PASSWORD##
## Default options
protocol=dyndns2
server=members.dyndns.org
## Dynamic DNS hosts
rrafara.dyndns.org
Restart ddclient service