Dynamisches DNS (DDNS): Unterschied zwischen den Versionen
Geli (Diskussion | Beiträge) (→Skript) |
Geli (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
Für Zugriffe aus dem externen Internet wird, sofern man über keine statische IP-Adresse verfügt, DDNS verwendet. Für diesen Dienst gibt es verschiedene Anbieter. Ein relativ bekannter Provider ist DtDNS.com (https://dtdns.com), der als zuverlässig gilt und zudem kostenlos ist. | Für Zugriffe aus dem externen Internet wird, sofern man über keine statische IP-Adresse verfügt, DDNS verwendet. Für diesen Dienst gibt es verschiedene Anbieter. Ein relativ bekannter Provider ist DtDNS.com (https://dtdns.com), der als zuverlässig gilt und zudem kostenlos ist. | ||
Für die Übertragung der jeweils aktuellen (externen) IP-Adresse kann zwar das Modem entsprechend konfiguriert werden, die Übermittlung funktioniert aber | Für die Übertragung der jeweils aktuellen (externen) IP-Adresse kann zwar das Modem entsprechend konfiguriert werden, die Übermittlung funktioniert aber erfahrungsgemäß nicht ausreichend zuverlässig. Man muss diese Aufgabe aber nicht dem Modem überlassen, sondern kann sie auch auf den Server, der von extern angesprochen wird, verlagern. | ||
Dazu verwendet man am einfachsten ein Bash-Skript, welches man periodisch über einen cronjob startet. | Dazu verwendet man am einfachsten ein Bash-Skript, welches man periodisch über einen cronjob startet. | ||
==== | ====Spezifikationen==== | ||
Die Spezifikationen für Update Clients findet man hier: https://www.dtdns.com/dtsite/updatespec<br /> | Die Spezifikationen für Update Clients findet man hier: https://www.dtdns.com/dtsite/updatespec<br /> | ||
Beispiele für Clients findet man hier https://www.dtdns.com/dtsite/updateclients<br /> | Beispiele für Clients findet man hier https://www.dtdns.com/dtsite/updateclients<br /> | ||
Diese sind aber nicht unmittelbar ohne Modifikationen verwendbar. | Diese sind aber nicht unmittelbar ohne Modifikationen verwendbar. | ||
====Bash Skript==== | |||
Zuerst wird die eigene IP-Adresse ermittelt - unter Inanspruchnahme externer Dienste. Danach wird die IP-Adresse festgestellt, die der eigenen Domain zugeordnet ist. Falls ''nslookup'' nicht installiert ist, muss ''dnsutils'' installiert werden. | |||
sudo apt-get update | |||
sudo apt-get install dnsutils | |||
Damit können wir mit unserem Skript beginnen (die Befehle können auch in der Shell eingegeben werden). | |||
#!/bin/bash | |||
LASTIP=`nslookup mydomain.dtdns.net | grep -A1 mydomain | grep Address | awk '{ print $2 }'` |
Version vom 25. Juli 2017, 17:38 Uhr
Für Zugriffe aus dem externen Internet wird, sofern man über keine statische IP-Adresse verfügt, DDNS verwendet. Für diesen Dienst gibt es verschiedene Anbieter. Ein relativ bekannter Provider ist DtDNS.com (https://dtdns.com), der als zuverlässig gilt und zudem kostenlos ist.
Für die Übertragung der jeweils aktuellen (externen) IP-Adresse kann zwar das Modem entsprechend konfiguriert werden, die Übermittlung funktioniert aber erfahrungsgemäß nicht ausreichend zuverlässig. Man muss diese Aufgabe aber nicht dem Modem überlassen, sondern kann sie auch auf den Server, der von extern angesprochen wird, verlagern.
Dazu verwendet man am einfachsten ein Bash-Skript, welches man periodisch über einen cronjob startet.
Spezifikationen
Die Spezifikationen für Update Clients findet man hier: https://www.dtdns.com/dtsite/updatespec
Beispiele für Clients findet man hier https://www.dtdns.com/dtsite/updateclients
Diese sind aber nicht unmittelbar ohne Modifikationen verwendbar.
Bash Skript
Zuerst wird die eigene IP-Adresse ermittelt - unter Inanspruchnahme externer Dienste. Danach wird die IP-Adresse festgestellt, die der eigenen Domain zugeordnet ist. Falls nslookup nicht installiert ist, muss dnsutils installiert werden.
sudo apt-get update sudo apt-get install dnsutils
Damit können wir mit unserem Skript beginnen (die Befehle können auch in der Shell eingegeben werden).
#!/bin/bash LASTIP=`nslookup mydomain.dtdns.net | grep -A1 mydomain | grep Address | awk '{ print $2 }'`