Dyndns Updater
Revision as of 16:14, 6 August 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="your-duckdns-token"
# List of your DuckDNS subdomains
DOMAINS=("flirt" "zr0ke" "r0942")
# Optional: IP address to set (leave empty to use external IP)
IP=""
# Log file
LOGFILE="$HOME/duckdns_update.log"
# Logging function
log() {
local message="$1"
local timestamp
timestamp=$(date '+%Y-%m-%d %H:%M:%S')
echo "$timestamp - $message" >> "$LOGFILE"
}
# Loop through domains
for DOMAIN in "${DOMAINS[@]}"; do
URL="https://www.duckdns.org/update?domains=${DOMAIN}&token=${TOKEN}&ip=${IP}"
RESPONSE=$(curl -s "$URL")
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