Dyndns Updater

From RHS Wiki
Jump to navigation Jump to search

Duck DNS[edit]

  • 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[edit]

Ubuntu 16.04 server[edit]

sudo apt install ddclient

/etc/ddclient.conf example[edit]

## 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