TwoDNS
Wer will nicht seine zu Hause betriebene Maschinen von extern erreichen. Für besitzer einer Fritzbox ist das vergleichbar einfach gelöst. Man nutzt den Fritz Dienst zur Namensauflösung. Da dieser mir aber nicht gefällt, habe ich mich für etwas anderes entscheiden, nämlich TwoDNS.
Da DynDNS mitlerweile kostenpflichtig ist, lohnt sich der Blick auf diese alternative.
Zunächst müssen wir dort einen Account anlegen und die, wie in den Bildern Beschrieben Schritte durchführen.
Nach dem Anlegen des gewünschent Hostname, den API-Token abrufen:
Im Bereich TwoDNS wars das auch schon. Jetzt müssen wir die Fritzbox vorbereiten und mit TwoDNS verheiraten.
Anbieter | Benutzerdefiniert |
Update-URL | https://update.twodns.de/update?hostname=&ip= |
Domainname | hostname.my-wan.de // hostname.dynvpn.de |
Benutzername | |
Kennwort | xxxxxxx |
Das wars eigentlich schon.
Nur wer keine FritzBox sein eigen nennen kann, ist angewiesen auf ein Script, welches Ihm die Aufgabe abnimmt.
Das BaseDir ( MY_DIR ) des Script ist /opt/scripts/dyndns/
update_dns.sh
#!/bin/bash ######################################################################################## ## ## ALLOWS YOU TO ATOMATICALLY UPDATE YOUR HOST ON TWODNS.ORG ## ## VERSION: 0.9.1 ## DATE: 08.10.2015 ## MAINTAINER: matthias.schweizer ## LICENZE: GPLv3 ## ######################################################################################## ## set -x PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin MY_DIR="/opt/scripts/dyndns" USER_AGENT="Mozilla/5.0" URL_MYIP="http://checkip.two-dns.de/" ########################################## ## PROVIDER: twodns.de ## PWD: d7aeba9e-7398 ########################################## ## TWODNS CREDENTIALS if [ -f ${MY_DIR}/config/twodns.cfg ]; then . ${MY_DIR}/config/twodns.cfg else echo "NO CONFIG PROVIDED: PLEASE REGISTER AT TWODNS.DE AND FOLLOW THE INSTRUCTIONS" exit 73 fi ## TMP - FILES IP_CACHE="/var/tmp/._my.ip" ########################################## ## GET MY EXTERNAL IP ########################################## function get_myip () { MY_IP="$( curl -q -s --user-agent \"${USER_AGENT}\" ${URL_MYIP} -o - 2>/dev/null | egrep -o '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}' )" } ########################################## ## UPDATE IP AT DNS PROVODER ########################################## function update_dns () { get_myip if [ ! "${MY_IP}" = "${OLD_IP}" ]; then echo "UPDATING IP -> ${MY_IP}" | logger -t ${0##*/} echo "UPDATING IP -> ${MY_IP}" echo ${MY_IP} > ${IP_CACHE} ## MUST BIE EXECUTED BY AN EXTERNAL SCRIPT BECAUSE OF SPECIAL MASKED SYNTAX echo "curl -q -s -X PUT -u \"${MAIL_ADDRESS}:${TOKEN}\" -d '{\"ip_address\": \"${MY_IP}\", \"activate_wildcard\": \"true\"}' https://api.twodns.de/hosts/${DOMAIN}" | /bin/bash fi } ########################################## ## CHECK GATHERED IP IF VALID ########################################## if [ -f "${IP_CACHE}" ]; then OLD_IP="$( cat ${IP_CACHE} )" ## CHECK IP if [[ ${OLD_IP} =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then ## SPLITTING INTO 4 PARTS SEPARATED BY SPACE AND REMOVE LEADING "0" EG 098 -> 98 OCTETS=$( echo ${OLD_IP} | tr -s '.' ' ' | sed 's/^0*//g; s/\.0*/\./g' ) for OCTET in ${OCTETS} do ## IF ONE OCTET IS GRATER THAN 255 IT'S NOT VALID if [ ${OCTET} -gt 255 ]; then (( ERROR ++ )) fi done else (( ERROR ++ )) fi ## GOT AN ERROR REGATHERING IP AND UPDATING DNS if [ "${ERROR}" ]; then echo "${OLD_IP} :: NOT VALID.. GATHERING AGAIN" get_myip update_dns exit 1 fi fi update_dns
Zu diesem Script gehört eine Config. Diese findet sich im Unterverzeichnis config/twodns.cfg
Deren Inhalt sieht in etwa wie folgt aus.
## TWODNS CREDENTIALS TOKEN="fb8xxxxxxxxxxxxxxxxxxxxxxxxxxxcb" MAIL_ADDRESS=mein at user.name" ## emailadresse bei twodns #DOMAIN="" DOMAIN="hostname.my-wan.de"
Author: Matthias Schweizer
Der Autor übernimmt keinerlei Gewähr für die Aktualität, Richtigkeit und Vollständigkeit der bereitgestellten Informationen auf unserer Website. Haftungsansprüche gegen den Autor, welche sich auf Schäden materieller oder ideeller Art beziehen, die durch die Nutzung oder Nichtnutzung der dargebotenen Informationen bzw. durch die Nutzung fehlerhafter und unvollständiger Informationen verursacht wurden, sind grundsätzlich ausgeschlossen, sofern seitens des Autors kein nachweislich vorsätzliches oder grob fahrlässiges Verschulden vorliegt. Alle Angebote sind freibleibend und unverbindlich. Der Autor behält es sich ausdrücklich vor, Teile der Seiten oder das gesamte Angebot ohne gesonderte Ankündigung zu verändern, zu ergänzen, zu löschen oder die Veröffentlichung zeitweise oder endgültig einzustellen.