Da ja Linupia ein HowTo für systemd-timer (Link) erstellt hat, hier einmal ein HowTo, wie man auf seinem Rechner dyndns mit NoIP einrichtet. Dies ist nützlich, wenn der eigene Router z.B. nur https://dyn.com/dns/ unterstützt, auf der dortigen Homepage muss man sich ja einmal pro Jahr einloggen, sonst wird der Account gelöscht.
Vorraussetzung:
Ein eingerichteter Account bei NoIP mit mindestens einem eingerichteten Host.
NoIP-Client für Linux:
https://www.noip.com/download?page=linux
Jede Eingabezeile wurde kommentiert und kann mit Kommentar per copy/paste ausgeführt werden. Die entstehenden Ausgabezeilen habe ich natürlich nicht gelöscht, daher beim kopieren bitte genau schauen.
ich@linux64:~> wget -P ~/bin https://www.noip.com/client/linux/noip-duc-linux.tar.gz #Download des Programms
--2016-01-11 18:28:37-- https://www.noip.com/client/linux/noip-duc-linux.tar.gz
Auflösen des Hostnamen »www.noip.com (www.noip.com)«... 8.23.224.107
Verbindungsaufbau zu www.noip.com (www.noip.com)|8.23.224.107|:443... verbunden.
HTTP-Anforderung gesendet, warte auf Antwort... 200 OK
Länge: 134188 (131K) [application/x-gzip]
In »»/home/ich/bin/noip-duc-linux.tar.gz«« speichern.
/home/ich/bin/noip-duc-linux. 100%[================================================>] 131,04K 158KB/s in 0,8s
2016-01-11 18:28:39 (158 KB/s) - »»/home/ich/bin/noip-duc-linux.tar.gz«« gespeichert [134188/134188]
ich@linux64:~> cd bin/ #in das Verzeichnis wechseln, in dem der Download liegt
ich@linux64:~/bin> tar xf noip-duc-linux.tar.gz #den Download entpacken
ich@linux64:~/bin> cd noip-2.1.9-1/ #in das Verzeichnis wechseln, in dem die zu installierende Datei liegt
ich@linux64:~/bin/noip-2.1.9-1> su #zu dem Benutzer root wechseln
Passwort:
linux64:/home/ich/bin/noip-2.1.9-1 # #bitte bei "Passwort:" das root Passwort blind eingeben, es werden keine Platzhalter angezeigt, Return/Enter nicht vergessen
linux64:/home/ich/bin/noip-2.1.9-1 # make install #No-IP installieren und ausführen, es werden Einstellungen abgefragt
if [ ! -d /usr/local/bin ]; then mkdir -p /usr/local/bin;fi
if [ ! -d /usr/local/etc ]; then mkdir -p /usr/local/etc;fi
cp noip2 /usr/local/bin/noip2
/usr/local/bin/noip2 -C -c /tmp/no-ip2.conf
Auto configuration for Linux client of no-ip.com.
Please enter the login/email string for no-ip.com MaxMustermann@gmail.com
Please enter the password for user 'MaxMustermann@gmail.com' ***********
2 hosts are registered to this account.
Do you wish to have them all updated?[N] (y/N) y
Please enter an update interval:[30] 10
Do you wish to run something at successful update?[N] (y/N) n
New configuration file '/tmp/no-ip2.conf' created.
mv /tmp/no-ip2.conf /usr/local/etc/no-ip2.conf
Alles anzeigen
Erläuterungen zu den Abfrahgen bei der Installation:
ZitatAlles anzeigenPlease enter the login/email string for no-ip.com = der bei NoIP hinterlegte Benutzername bzw EMail Account
Please enter the password for user = das dazu gehörige Passwort
2 hosts are registered to this account. = Für meinen Account sind dort 2 Hosts eingerichtet
Do you wish to have them all updated?[N] (y/N) y = sollen diese Hosts in die Konfiguration eingefügt werden
Please enter an update interval:[30] 10 = Nach wie vielen Minuten soll sich das Programm noip2 mit dem Server verbinden, damit der Server die aktuelle IP abfragen kann
Do you wish to run something at successful update?[N] (y/N) n = soll irgendeine Datei/Script nach dem vorigen erfolgreichen Update ausgeführt werden
Damit wäre noip2 installiert und kann gestartet werden, dazu jetzt das passende systemd-service File:
Wir befinden uns immer noch in der geöffneten Konsole als root im Verzeichnis ~/bin/noip-2.1.9-1, bei mir wäre das: /home/ich/bin/noip-2.1.9-1.
Wir erstellen die Textdatei noip2.service, alles was jetzt in der Konsole nach "cat > noip2.service" eingegeben wird, wird in die Datei noip2.service geschrieben, bis wir STRG+D in einer leeren Zeile drücken
Ich habe den obigen Befehl einmal abgetrennt, der nun einzugebende Text wird in der Datei gespeichert.
[Unit]
Description=DynDNS by NoIP
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/bin/noip2
[Install]
WantedBy=multi-user.target
Alles anzeigen
Kann man natürlich auch per copy/paste in eine Datei mit Namen noip2.service machen.
Erklärung:
Description=DynDNS by NoIP = Beschreibung, was dieses Script macht
After=network.target = Welcher Dienst soll vorher vollständig gestartet werden, damit dieses Script ausgeführt werden kann, in diesem Fall muss ja das Netzwerk funktionieren, damit sich noip2 mit dem Server verbinden kann.
Type=forking = Dieser Client läuft auch dann weiter, wenn der ihn startende systemd Prozess endet. Für klassische Daemons verwende diese Art.
ExecStart=/usr/local/bin/noip2 = das zu startende Programm
WantedBy=multi-user.target = Wann sollte der Service gestartet werden, früher Runlevel, in diesem Fall Runlevel 3 https://fedoraproject.org/wiki…nit_to_Systemd_Cheatsheet
Nun verschieben wir diese erstellte system-service File und starten es bei jedem Hochfahren des PC (systemctl enable), starten es auch gleich (systemctl start) und fragen den Status ab (systemctl status).
linux64:/home/ich/bin/noip-2.1.9-1 # cp noip2.service /etc/systemd/system
linux64:/home/ich/bin/noip-2.1.9-1 # systemctl enable noip2.service
linux64:/home/ich/bin/noip-2.1.9-1 # systemctl start noip2.service
linux64:/home/ich/bin/noip-2.1.9-1 # systemctl status noip2.service
noip2.service - DynDNS by NoIP
Loaded: loaded (/etc/systemd/system/noip2.service; enabled)
Active: active (running) since Mo 2016-01-11 19:21:43 CET; 7s ago
Process: 25471 ExecStart=/usr/local/bin/noip2 (code=exited, status=0/SUCCESS)
Main PID: 25476 (noip2)
CGroup: /system.slice/noip2.service
└─25476 /usr/local/bin/noip2
Jan 11 19:21:43 linux64 noip2[25476]: v2.1.9 daemon started with NAT enabled
Jan 11 19:21:44 linux64 noip2[25476]: Mustermann1.no-ip.biz was already set to 00.00.00.00.
Jan 11 19:21:44 linux64 noip2[25476]: Mustermann2.no-ip.biz was already set to 00.00.00.00.
Alles anzeigen
Hier sieht man dann auch die beiden von mir bei NoIP eingerichteten Hosts mit der jetzt aktiven IP:
ZitatJan 11 19:21:44 linux64 noip2[25476]: Mustermann1.no-ip.biz was already set to 00.00.00.00.
Jan 11 19:21:44 linux64 noip2[25476]: Mustermann2.no-ip.biz was already set to 00.00.00.00.
NoIP kann man auch als root per Konsole einrichten, siehe noip2--help.
Wichtig ist auch noch das Kommando noip2 -S zur Konfigurationsabfrage:
noip2 -S
1 noip2 process active.
Process 25476, started as noip2, (version 2.1.9)
Using configuration from /usr/local/etc/no-ip2.conf
Last IP Address set 00.00.00.00.
Account MaxMustermann@gmail.com
configured for:
host Mustermann1.no-ip.biz
host Mustermann2.no-ip.biz
Updating every 10 minutes via /dev/br0 with NAT enabled.
Alles anzeigen
Viel Spass.
Noch einige Seiten zu systemd:
http://mywiki.bluelupo.net/ind…ende_Kommandos_zu_systemd
http://mikuerschner.org/node/26
https://wiki.archlinux.org/index.php/systemd