Wer in seinem Homelab einen Raspberry Pi als zentraler Dienst laufen hat, will gegebenenfalls auch auf diesen von außen zugreifen. Mit diesem Script kann man relativ leicht die anliegende IP-Adresse direkt aus einem Linux heraus aktualisieren.
Das Script überprüft zusätzlich, ob ein DynDNS Update überhaupt aktuell nötig ist.
Die Variablen „Domain“ und „DOMAIN_TOKEN“ müssen von dir ausgefüllt werden. Speichere einfach dieses Script auf deinem System unter z.B. den Namen „ipv64_dyndns_updater.sh
“ ab und führe es regelmäßig mit einem Crontab einfach aus. Wenn der Cronjob alle 5 Minuten überprüft, ob ein Aktualisieren nötig ist, dann bist du auch bei einem IP-Wechsel sehr schnell wieder erreichbar.
Das Script solltest du ebenfalls ausführbar machen mit „chmod +x ipv64_dyndns_updater.sh
“ und dann einfach mal testen mit ./ipv64_dyndns_updater.sh
.
#!/bin/bash
# Configuration
DOMAIN="raspberry.ipv64.de"
DOMAIN_TOKEN="DOMAIN_TOKEN"
DYNDNS_PROVIDER="https://ipv64.net/nic/update"
# Get current public IP
CURRENT_IP=$(curl -s https://checkip.amazonaws.com)
# Get the currently stored IP in DNS
DNS_IP=$(dig +short "$DOMAIN")
# Check if the IP has changed
if [ "$CURRENT_IP" != "$DNS_IP" ]; then
echo "IP has changed. Sending update..."
RESPONSE=$(curl -s "$DYNDNS_PROVIDER?key=$DOMAIN_TOKEN&domain=$DOMAIN&ip=$CURRENT_IP")
echo "Server response: $RESPONSE"
else
echo "IP has not changed. No update needed."
fi
Diesen Cronjob kannst du einrichten damit das Script alle 5 Min. ausgeführt wird. Öffne dafür dein Crontab mit dem Befehl crontab -e
.
*/5 * * * * cd /root/; /bin/sh ipv64_dyndns_updater.sh
Um das Script ausführbar zu machen, müsste es doch eigentlich „chmod +x“ und nicht „chown +x“ heißen, oder? 😉
Ansonsten sehr schön einfaches und funktionales Script.
Das ist absolut korrekt. Ich habs angepasst.