187 lines
6.9 KiB
Markdown
187 lines
6.9 KiB
Markdown
---
|
|
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`). |