-
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):
-
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:
-
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:
-
[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
-
[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”)
-
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):
-
-- AdGuard Home installieren (
curl ... install.sh).
-- 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.
-- Zertifikate in AdGuard Home (
adguard.crt, adguard.key) unter Einstellungen → Verschlüsselungseinstellungen konfigurieren.
-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:
-
-- Gehen Sie zu Einstellungen → DNS-Einstellungen.
-- Im Abschnitt “Upstream-DNS-Server” die folgende Zeile hinzufügen (zusätzlich zu öffentlichen DNS-Servern):
-
[/speedport.ip/]192.168.50.1
-
-- 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.
-[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).
-
-
-
-