Wiki source code of RangeeOS - Namensauflösung bei Netzwerkverfügbarkeit (Host Datei editieren)
Last modified by Tobias Wintrich on 2026/09/24 10:06
Hide last authors
| author | version | line-number | content |
|---|---|---|---|
| |
2.1 | 1 | Bei einem Kunden trat das Problem auf, dass der TCMS bei aktiver OpenVPN-Verbindung über eine andere IP-Adresse angesprochen werden musste als ohne aktive VPN-Verbindung. |
| |
1.1 | 2 | |
| |
2.1 | 3 | Generell wäre die Standardlösung hierfür die Einrichtung eines Split-DNS, sodass der Hostname des TCMS extern anders aufgelöst wird als über einen internen DNS-Server. Dieser DNS-Server müsste dann lediglich auch in der VPN-Verbindung genutzt werden. Dies war im vorliegenden Fall jedoch nicht umsetzbar. |
| |
1.1 | 4 | |
| |
2.1 | 5 | Als alternative Lösung wurde ein Skript installiert, welches in regelmäßigen Abständen prüft, ob eine IP-Adresse per Ping erreichbar ist. Ist dies der Fall, wird ein passender Eintrag in die lokale Hosts-Datei des Thin Clients geschrieben. Ist die IP-Adresse nicht erreichbar, wird der Eintrag wieder entfernt. |
| |
1.1 | 6 | |
| 7 | = Skript einrichten = | ||
| 8 | |||
| |
2.1 | 9 | Das Skript kann über **Werkzeuge** -> **Skripte** -> **Neue Verbindung** angelegt und konfiguriert werden. Folgende Optionen müssen gesetzt sein: |
| |
1.1 | 10 | |
| |
2.1 | 11 | * **Name:** Frei wählbar |
| 12 | * **Als root ausführen:** Aktiviert | ||
| |
1.1 | 13 | * ((( |
| |
2.1 | 14 | **Skript:** |
| |
1.1 | 15 | |
| 16 | (% class="box infomessage" %) | ||
| 17 | ((( | ||
| |
2.1 | 18 | "TARGET_IP" und "HOSTNAME" müssen noch entsprechend angepasst werden. |
| |
1.1 | 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 | ))) | ||
| |
2.1 | 55 | * **Automatischer Start:** Aktiviert |
| 56 | * **Desktop-Verknüpfung erstellen:** Deaktiviert | ||
| 57 | * **Verknüpfung im Startmenü erstellen:** Deaktiviert | ||
| 58 | * **Zeige Benachrichtigung beim Start:** Deaktiviert | ||
| |
1.1 | 59 | |
| |
2.1 | 60 | Hierdurch startet das Skript beim Gerätestart vollkommen unsichtbar und übernimmt im Hintergrund automatisch die Namensauflösung. |