--- title: "Zusammenfassung der vorgenommenen Änderungen und Konfigurationen" date: "2026-09-08" --- # Zusammenfassung der vorgenommenen Änderungen und Konfigurationen Dieses Dokument fasst die wichtigsten Änderungen und Konfigurationen zusammen, die wir besprochen und durchgeführt haben. --- ## 1. Python Logging (sync.py und logging_config.py) Um die Log-Ausgabe des `sync.py`-Skripts zu verbessern, wurde eine modulare Logging-Konfiguration mit Log-Rotation erstellt und in eine separate Datei ausgelagert. ### `logging_config.py` erstellt **Zweck:** Enthält die Funktion `setup_logging()` zur Konfiguration eines Root-Loggers, der Logs in eine Datei (`sync_log.log`) schreibt, diese bei Erreichen einer Größe von 5 MB rotiert und 5 Backups behält. Optional kann auch ein Konsolen-Logger aktiviert werden. **Inhalt der Datei (`/home/jonnybravo/Projekte/python_tests/rclone/logging_config.py`):** ```python import logging from logging.handlers import RotatingFileHandler, TimedRotatingFileHandler import os def setup_logging(console_logging=False): """Konfiguriert das Root-Logging für die Anwendung mit Rotation. Diese Funktion richtet einen Root-Logger ein, der Log-Nachrichten in eine Datei schreibt, welche bei Erreichen einer bestimmten Größe rotiert wird. :param console_logging: Wenn True, werden Logs zusätzlich zur Datei auch auf der Konsole ausgegeben. Standardmäßig ist dies deaktiviert (False). """ # --- Allgemeine Einstellungen --- log_file = "sync_log.log" # Name der Log-Datei # Maximale Größe der Log-Datei in Bytes, bevor sie rotiert wird (hier 5 MB) max_log_size = 5 * 1024 * 1024 # Anzahl der rotierenden Backup-Dateien, die behalten werden sollen (hier 5) backup_count = 5 # --- Logger-Initialisierung --- logger = logging.getLogger() if logger.hasHandlers(): return # --- Logging-Level einstellen --- # Mögliche Levels: DEBUG, INFO, WARNING, ERROR, CRITICAL logger.setLevel(logging.INFO) # --- Formatter erstellen --- # Definiert das Layout der Log-Nachrichten. formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') # --- Handler erstellen und dem Logger hinzufügen --- # 1. RotatingFileHandler (immer aktiv) file_handler = RotatingFileHandler( log_file, maxBytes=max_log_size, backupCount=backup_count, encoding='utf-8' ) file_handler.setFormatter(formatter) logger.addHandler(file_handler) # 2. StreamHandler für Konsolen-Ausgabe (optional) if console_logging: console_handler = logging.StreamHandler() console_handler.setFormatter(formatter) logger.addHandler(console_handler) # --- Weitere Referenzen und alternative Handler --- # (Ausführliche Kommentare sind in der Datei enthalten, hier gekürzt) ``` ### `sync.py` angepasst **Zweck:** Importiert die `setup_logging`-Funktion und ruft sie ganz am Anfang des Skripts auf, um die Logging-Konfiguration zu initialisieren. **Relevanten Änderungen in `/home/jonnybravo/Projekte/python_tests/rclone/sync.py`:** ```python from logging_config import setup_logging # Logging so früh wie möglich einrichten setup_logging() # Optional: setup_logging(console_logging=True) für Konsolen-Logs from rclone_python import rclone as rc from rclone_python.utils import RcloneException import os import logging # ... (restlicher Code) ``` --- ## 2. DNS-Konfiguration auf dem Manjaro-System Um den AdGuard Home-Server `10.50.0.3` als primären DNS-Server für das gesamte System und alle Verbindungen zu nutzen, wurden folgende Schritte durchgeführt: ### Globale `systemd-resolved` Konfiguration **Zweck:** Setzt `10.50.0.3` als systemweiten DNS-Server für `systemd-resolved`. **Änderungen in `/etc/systemd/resolved.conf`:** ```ini [Resolve] DNS=10.50.0.3 # FallbackDNS= # Auskommentieren oder auf FallbackDNS= setzen, um Fallback zu verhindern ``` Nach der Bearbeitung: `sudo systemctl restart systemd-resolved` ### NetworkManager Überschreibung für alle Verbindungen **Zweck:** Weist NetworkManager an, bei allen Netzwerkverbindungen (bestehende und neue) den vom DHCP-Server angebotenen DNS zu ignorieren. Dadurch wird der globale DNS von `systemd-resolved` verwendet. **Neue Datei erstellt: `/etc/NetworkManager/conf.d/99-global-dns-override.conf`** ```ini [connection] # Diese Einstellung gilt für alle neuen und bestehenden Verbindungen. # Sie weist NetworkManager an, den DNS-Server vom DHCP zu ignorieren. ipv4.ignore-auto-dns=true ipv6.ignore-auto-dns=true ``` Nach der Erstellung: `sudo systemctl restart NetworkManager` ### Anpassung des spezifischen WLAN-Profils (SweetHome-5G) **Zweck:** Hinzufügen der DNS-Suchdomäne, damit lokale Hostnamen ohne vollen Domain-Namen aufgelöst werden können. **Befehle für die Kommandozeile (nmcli):** (Ersetzen Sie "Ihr Verbindungsname" durch den tatsächlichen Namen, z.B. "SweetHome-5G") ```bash nmcli connection modify "Ihr Verbindungsname" ipv4.dns-search "speedport.ip" # optional für IPv6: nmcli connection modify "Ihr Verbindungsname" ipv6.dns-search "speedport.ip" nmcli connection up "Ihr Verbindungsname" ``` --- ## 3. AdGuard Home Konfiguration ### Installation & SSL-Einrichtung **Zweck:** Installation von AdGuard Home auf einem Linux-Server und Absicherung der Weboberfläche mit einem selbstsignierten SSL-Zertifikat und eigener CA. **Schritte (ausführlich in vorherigen Antworten beschrieben):** 1. AdGuard Home installieren (`curl ... install.sh`). 2. Eigene CA (`MyCA.key`, `MyCA.pem`) und Server-Zertifikat (`adguard.key`, `adguard.crt`) mit `openssl` erstellen, inklusive SAN-Erweiterung für IP-Adresse/lokalen Hostnamen. 3. Zertifikate in AdGuard Home (`adguard.crt`, `adguard.key`) unter **Einstellungen → Verschlüsselungseinstellungen** konfigurieren. 4. `MyCA.pem` auf Client-Geräten als vertrauenswürdige Stammzertifizierungsstelle installieren. ### Bedingte Weiterleitung für lokale Namen **Zweck:** Ermöglicht AdGuard Home die Auflösung lokaler Hostnamen durch Weiterleitung an den Router. **Konfiguration in der AdGuard Home Weboberfläche:** 1. Gehen Sie zu **Einstellungen → DNS-Einstellungen**. 2. Im Abschnitt **"Upstream-DNS-Server"** die folgende Zeile hinzufügen (zusätzlich zu öffentlichen DNS-Servern): ``` [/speedport.ip/]192.168.50.1 ``` 3. Einstellungen speichern. --- ## 4. Problembehebung WireGuard DNS **Zweck:** Behebung des Konflikts, bei dem WireGuard die DNS-Einstellungen überschrieben und auf einen nicht existierenden Server (`10.50.0.3` ohne installierten DNS-Dienst) gezeigt hat. **Änderung in der WireGuard-Konfigurationsdatei:** * In `/etc/wireguard/wg0.conf` (im Abschnitt `[Interface]`) die Zeile `DNS = 10.50.0.3` auskommentieren oder auf einen anderen DNS-Server ändern. ```ini [Interface] # DNS = 10.50.0.3 ``` * WireGuard neu starten: `sudo systemctl restart wg-quick@wg0` (oder `sudo wg-quick down wg0 && sudo wg-quick up wg0`).