This commit is contained in:
jonnybravo
2026-09-08 11:02:29 +02:00
commit 3ad8c9b5a6
66 changed files with 6169 additions and 0 deletions
+187
View File
@@ -0,0 +1,187 @@
---
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`).