Version 1.1 by Tobias Wintrich on 2026/09/24 10:04

Show last authors
1 Vor kurzem hatten wir bei einem Kunden das Problem, dass der TCMS, bei aktiver OpenVPN Verbindung über eine andere IP Adresse angesprochen werden musste, als ohne aktive VPN Verbindung.
2
3 Generell wäre hier die einfache Lösung die Einrichtung eines SplitDNS. So dass der Hostname der TCMS extern anders aufgelöst wird als über einen internen DNS Server. Dieser DNS Server muss dann lediglich auch in der VPN Verbindung genutzt werden. Dies war im aktuellen Fall allerdings nicht umsetzbar.
4
5 Als Lösung wurde nun ein Skript installiert, welches in Regelmäßigen Abständen prüft ob eine IP per Ping erreichbar ist. Ist dies der Fall, wird ein passender Eintrag in die lokale Hostdatei des Thin Clients geschrieben. Ist die IP nicht erreichbar, wird der Eintrag wieder entfernt.
6
7 = Skript einrichten =
8
9 Das Skript kann über **Werkzeuge** -> **Skripte** -> **Neue Verbindung** konfiguriert angelegt werden. Es müssen folgende Optionen gesetzt sein:
10
11 * Name: Frei wählbar
12 * Als root ausführen: Aktiviert
13 * (((
14 Skript:
15
16 (% class="box infomessage" %)
17 (((
18 "TARGET_IP" und "HOSTNAME" müssen noch entsprechend angepasst werden
19 )))
20
21 {{{# --- KONFIGURATION ---
22 TARGET_IP="192.168.222.254" # Ersetze dies mit der gewünschten IP
23 HOSTNAME="tcms.rangee.com" # Ersetze dies mit dem gewünschten Hostnamen
24 # ---------------------
25
26 HOST_ENTRY="$TARGET_IP $HOSTNAME"
27
28 echo "Überwachung gestartet für $HOST_ENTRY... " >> $log_file
29
30 while true; do
31 # Ping senden (1 Paket, 2 Sekunden Timeout)
32 if ping -c 1 -W 2 "$TARGET_IP" > /dev/null 2>&1; then
33 # IP ist erreichbar -> Eintrag hinzufügen, falls noch nicht vorhanden
34 if ! grep -Fxq "$HOST_ENTRY" /etc/hosts; then
35 # Sicherstellen, dass die Datei mit einer neuen Zeile endet, bevor wir anhängen
36 if [ -n "$(tail -c1 /etc/hosts)" ]; then
37 echo "" >> /etc/hosts
38 fi
39 echo "$HOST_ENTRY" >> /etc/hosts
40 echo "[$(date '+%T')] IP erreichbar: Eintrag hinzugefügt." >> $log_file
41 fi
42 else
43 # IP ist NICHT erreichbar -> Eintrag entfernen, falls vorhanden
44 if grep -Fxq "$HOST_ENTRY" /etc/hosts; then
45 # Löscht genau die Zeile mit dem Eintrag aus /etc/hosts
46 sed -i "\|_MARKER_|!{/\<${TARGET_IP}\>.*\<${HOSTNAME}\>/d}" /etc/hosts 2>/dev/null || sed -i "/$TARGET_IP $HOSTNAME/d" /etc/hosts
47 echo "[$(date '+%T')] IP NICHT erreichbar: Eintrag entfernt." >> $log_file
48 fi
49 fi
50
51 # 5 Sekunden warten
52 sleep 5
53 done}}}
54 )))
55 * Automatischer Start: Aktiviert
56 * Desktop-Verknüpfung erstellen: Deaktiviert
57 * Verknüpfung im Startmenü erstellen: Deaktiviert
58 * Zeige Benachrichtigung beim Start: Deaktiviert
59
60 Hierdurch startet das Skript beim Gerätestart vollkommen unsichtbar und kümmert sich im Hintergrund um die Namensauflösung.