staging.inyokaproject.org

Dyndns

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

archondis

Anmeldungsdatum:
2. August 2012

Beiträge: Zähle...

Hallo,

ich wollte hier kurz ein Script vorstellen, dass es mir ermöglicht, mich auf einem Unix Rechner über dyndns per ssh einzuwählen. Ich betreue einen Webserver mit einer öffenlichen IP und führe das Script auf dem Webserver aus. Dazu hatte ich noch einen Imap-Server-Dovecot eingerichtet.

Zusätzlich ein Lokales Postfach, dass mir die Ergenisse des Scripts per Mail zukommen lässt.

Das Sctipt hatte ich in einem Forum gefunden und 2 Tage auf meinem Server am laufen. Es klappt supper.

Mit ufw hatte ich mir meinen ssh Zugang nur meine DYDNS Adresse erlaubt.

1
2
##ssh Port 222 nur für meine dydns Script ausgeführt seit dem 11.06.2013
ufw allow from dyndnsip to any port 222 proto tcp
1
2
ufw status
222/tcp                   ALLOW       dyndnsip

im /root/dyndnsip.sh

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/sh
DATEI=ausgabe.txt
AKTUELLE_IP=`ping -c 1 service.grafjochen.de | grep PING | egrep -o '[0-9]{[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'`

if [ -f $DATEI ]; then
    ALTE_IP=`cat $DATEI`
        if [ $ALTE_IP = $AKTUELLE_IP ]; then
                        echo "IP ist aktuell!"
                        exit 0;
                else
                        echo "IP ist nicht aktuell!"
                        echo "Schreibe neue IP in Datei."
                        echo $AKTUELLE_IP > $DATEI
                        ufw delete allow from $ALTE_IP to any port 222
                        ufw allow from $AKTUELLE_IP to any port 222
                fi
else
        echo "Datei ist nicht vorhanden."
        echo "Erstelle Datei in $DATEI und schreibe die aktuelle IP."
        echo $AKTUELLE_IP > $DATEI
        chmod 775 $DATEI
fi

exit 0;
1
2
# Script fuer Dyndns alle 10 Minuten, wobei das zu kurz ist!
*/10 * * * * /root/scripte/dydndns.sh

Lieder weiss ich den Namen des Users nicht mehr, der das Script ins Netz gestellt hat. Von meiner Seite aus, ein herzliches Dankschön, dass hat mir meine Arbeit sehr erleichtert. 👍

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14402

archondis schrieb:

AKTUELLE_IP=`ping -c 1 service.grafjochen.de | grep PING | egrep -o '[0-9]{[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'`

dig wäre schneller als ping und braucht kein grep bzw. kein egrep. Z. B.:

ohne cache

:~$ time dig service.grafjochen.de +short
77.1.145.41

real	0m0.592s
user	0m0.000s
sys	0m0.008s
:~$ time ping -c 1 service.grafjochen.de
PING service.grafjochen.de (77.1.145.41) 56(84) bytes of data.
64 bytes from mnhm-4d019129.pool.mediaWays.net (77.1.145.41): icmp_req=1 ttl=53 time=682 ms

--- service.grafjochen.de ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 682.609/682.609/682.609/0.000 ms

real	0m0.950s
user	0m0.000s
sys	0m0.000s

mit cache

:~$ time dig service.grafjochen.de +short
77.1.145.41

real	0m0.016s
user	0m0.000s
sys	0m0.012s
:~$ time ping -c 1 service.grafjochen.de
PING service.grafjochen.de (77.1.145.41) 56(84) bytes of data.
64 bytes from mnhm-4d019129.pool.mediaWays.net (77.1.145.41): icmp_req=1 ttl=53 time=639 ms

--- service.grafjochen.de ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 639.591/639.591/639.591/0.000 ms

real	0m0.649s
user	0m0.000s
sys	0m0.004s

EDIT:

ping funktioniert nur wenn "service.grafjochen.de" online ist und dig funktioniert immer.

archondis

(Themenstarter)

Anmeldungsdatum:
2. August 2012

Beiträge: Zähle...

danke, werde noch anpassen 😉

Antworten |