DDNS: Unterschied zwischen den Versionen
fg>WikiSysop |
K (1 Version importiert) |
(kein Unterschied)
|
Aktuelle Version vom 7. Oktober 2020, 16:02 Uhr
DDNS Anbieter
Einen Account bei http://freedns.afraid.org anlegen - ganz unten auf SignUp klicken.
- Subdomain anlegen
Auf der Webseite http://freedns.afraid.org eine neue Subdomain anlegen, z.B.
my_subdomain.mooo.com
- DDNS aktivieren
In der linken Navigationsleiste von http://freedns.afraid.org auf Dynamic DNS klicken. Es erscheint eine Seite, auf der alle Subdomains aufgelistet werden.
- DDNS Client
Man kann auf einen speziellen DDNS Client verzichten. Die IP Adresse der Domain my_subdomain.mooo.com wird durch einen Cron Job aktualisiert.
crontab -e */5 * * * * sleep 42 ; wget -O - http://freedns.afraid.org/dynamic/update.php?xyxyxyxyxyxyxyxyx >> /tmp/freedns_my_subdomain_mooo_com.log 2>&1 &
Dieses Kommando wird angezeigt, wenn man in der Subdomain Zeile auf Example klickt.
Die Zeichenfolge hinter dem ? ist die generierte Id für diesen Account.
IP Adresse ermitteln über PHP
PHP Skript, welches die öffentliche IP Adresse des Clients am Server als Datei ablegt:
$fileName = __DIR__."/".$_GET["hostname"]."_".$_SERVER["REMOTE_ADDR"]; echo "Update auf ".$_SERVER["SERVER_NAME"]."\n"; echo $_SERVER["REMOTE_ADDR"]; @unlink (__DIR__."/".$_GET["hostname"]."*"); touch ($fileName) or trigger_error($fileName." kann nicht angelegt werden.");
Es wird in dem Verzeichnis, in dem das Skript liegt, eine leere Datei angelegt, die im Dateinamen die IP Adresse enthält.
# Beispiel ClientHostname_46.75.123.43
PHP Script aufrufen
Folgender Befehl ruft am Server das oben beschriebene Skript auf:
wget -qO - https://my.example.com/fg_home/ip.php?hostname=$(hostname)
Automatisieren
Damit man immer die aktuelle IP Adresse bekommt, kann man einen Cronjob am Client einrichten: Ich habe obigen Befehl in ein Bash Skript geschrieben:
# ddns_update.sh wget -qO - https://my.example.com/fg_home/ip.php?hostname=$(hostname)
Cronjob definieren
crontab -e */9 * * * * /usr/local/bin/ddns_update.sh > /dev/null 2>&1