Dateisynchronisierung — P2P Mac ↔ Windows Ordner mit Syncthing
Echtzeit-Ordnersynchronisierung zwischen zwei Rechnern ohne Cloud. Dotfiles / Notizen / Projekte überall identisch halten.
Wer Mac und Windows gleichzeitig nutzt, fragt sich irgendwann: „Diese Datei, die ich heute erstellt habe — wie bekomme ich sie auf den anderen Rechner?" USB, Dropbox, iCloud, OneDrive, Git, SCP — jede Methode hat klare Schwächen. Cloud hat Größenlimits und Datenschutzbedenken; Git ist ungeeignet für Binärdateien und Zwischenergebnisse; SCP bietet keine Automatisierung.
Syncthing löst das: P2P + Open Source + kostenlos. Zwei Rechner synchronisieren direkt ohne zentralen Server. Fällt auf LAN zurück, wenn das Internet nicht erreichbar ist. Diese Anleitung deckt die Einrichtung unter Mac + Windows 11 und praktische Sync-Muster ab.
TL;DR
- Syncthing auf beiden installieren — brew auf Mac, winget auf Windows
- Geräte-IDs austauschen — einmalige Registrierung
- Ordner freigeben — eine Seite bietet an, die andere akzeptiert
.stignorezum Ausschließen von Abhängigkeiten / Geheimnissen — niemals node_modules oder .env synchronisieren
Voraussetzungen
- Mac: macOS 12+ (Homebrew installiert) — Mac-Ersteinrichtung
- Windows: Windows 10/11 (winget verfügbar) — Windows-Ersteinrichtung
- Am schnellsten, wenn beide im selben LAN sind (funktioniert auch über das Internet)
- Beide Rechner müssen eingeschaltet sein (ein schlafender Rechner synchronisiert beim Aufwachen)
1. Warum Syncthing — Alternativen im Vergleich
| Tool | Modell | Größenlimit | Datenspeicherort | Kosten | Fazit |
|---|---|---|---|---|---|
| Syncthing (Wahl) | P2P, OSS | Nur Festplatte | Eigene Rechner | Kostenlos | M0–M2 empfohlen |
| iCloud Drive | Cloud | 5GB kostenlos / 200GB+ kostenpflichtig | Apple | $/Monat | Mac-first, Win-Client eingeschränkt |
| OneDrive | Cloud | 5GB kostenlos / 100GB+ kostenpflichtig | MS | $/Monat | Win-freundlich, Mac funktioniert |
| Dropbox | Cloud | 2GB kostenlos / 2TB kostenpflichtig | Dropbox | $/Monat | Winziges Free-Tier |
| Resilio Sync | P2P, geschlossen | Unbegrenzt | Eigene Rechner | $/Monat (Pro) | Kostenpflichtiges Superset |
| Git | Versionskontrolle | Repo-Limits | GitHub etc. | Kostenlos | Schlecht für große Binärdateien/Zwischenergebnisse |
| rsync (manuell) | Sync | Unbegrenzt | Eigene Rechner | Kostenlos | Keine Automatisierung |
Syncthing-Stärken: Keine Größenlimits, Daten nur auf eigener Festplatte (Datenschutz), kostenlos, gleichwertige Clients auf beiden OSes.
Schwächen: Beide Rechner müssen gleichzeitig laufen (nicht als Backup geeignet), Konflikte werden manuell gelöst, GUI ist schlicht (browserbasiert).
2. Installation
Mac
brew install --cask syncthing
# Oder als Hintergrunddienst (automatischer Start bei Anmeldung)
brew services start syncthingGUI: http://127.0.0.1:8384 — Admin-UI im Browser.
Windows 11
# winget (kein Admin erforderlich)
winget install -e --id Syncthing.SyncthingOder Syncthing Windows Setup Installer (mit Tray-Symbol + automatischer Start).
Nach der Installation → Rechtsklick auf das Tray-Symbol → „Open", um die GUI zu starten (http://127.0.0.1:8384).
Mac öffnet die GUI automatisch; Windows öffnet sie über das Tray. Beide verwenden dieselbe Web-UI.
3. Erstmalige Kopplung — Zwei Rechner verbinden
3.1 Geräte-IDs abrufen
In der Syncthing-UI jedes Rechners:
- Oben rechts Actions → Show ID
- Den langen String kopieren (
XXXXXXX-XXXXXXX-...)
3.2 Windows auf dem Mac hinzufügen
- Mac Syncthing-UI → Add Remote Device (unten rechts)
- Device ID: Windows-ID einfügen
- Device Name:
Win11-Desktop(eigene Wahl) - Speichern
3.3 Auf Windows akzeptieren
Kurz darauf zeigt Windows eine Benachrichtigung: Device <Mac ID> wants to connect → Add Device → Name MacBook-Pro → Speichern.
Beide UIs zeigen sich nun gegenseitig als Connected (grün).
Im selben LAN verbindet in 5s. Über das Internet 1–2 min (nach Discovery + Relay).
4. Erster freigegebener Ordner
4.1 Mac → Windows Richtung
Mac-UI:
- Add Folder
- Folder Label:
notes(eigene Wahl) - Folder ID:
notes-mac-win(eindeutig, muss auf beiden übereinstimmen) - Folder Path:
/Users/{ich}/Documents/notes - Sharing-Tab →
Win11-Desktopankreuzen - Speichern
4.2 Auf Windows akzeptieren + Pfad wählen
Windows-UI-Benachrichtigung: „MacBook-Pro wants to share folder 'notes-mac-win'" → Add
- Folder Path:
C:\Users\{ich}\Documents\notes(gleiche Struktur wie Mac hilft) - Speichern
4.3 Ergebnis
Warten, bis beide Ordner Up to Date (grün) anzeigen. Der erste Durchlauf kopiert alles initial über, daher dauert er proportional zur Gesamtgröße. Danach werden Änderungen schnell übertragen (normalerweise innerhalb von 5 s).
5. .stignore — Was NICHT synchronisiert werden soll
Der häufigste Fehler ist das Synchronisieren von node_modules / .git / .env. Abhängigkeiten sollten pro Rechner neu installiert werden; Git-Ordner können beim Sync korrumpieren; .env ist vertraulich. Alle ausschließen.
5.1 Vorlage herunterladen
Für Entwicklungsordner:
.stignore# Mac/Linux
curl -fsSL https://devalice.jaceclub.com/assets/multi-os/file-sync/stignore-dev.txt -o /path/to/folder/.stignore
shasum -a 256 /path/to/folder/.stignore
# Expected: f003177e7026492848825e42c4b4845d1c68f787b923ce44854cb47e9c859827# Windows PowerShell
Invoke-WebRequest -Uri https://devalice.jaceclub.com/assets/multi-os/file-sync/stignore-dev.txt -OutFile C:\path\to\folder\.stignore
Get-FileHash C:\path\to\folder\.stignore -Algorithm SHA2565.2 Anwenden
.stignorein den Sync-Ordner-Stamm legen- Syncthing-UI → dieser Ordner → Edit → Ignore Patterns-Tab → Use .stignore aktivieren
- Rescan auslösen → ausgeschlossene Dateien werden sofort ignoriert
5.3 Kritische Ausschlüsse
| Muster | Warum |
|---|---|
node_modules, .venv, target | Abhängigkeiten — pro Rechner erstellt |
.git | Beschädigungsrisiko + Git dafür verwenden |
dist, build, .next | Build-Ausgaben — reproduzierbar |
.env, .env.local, *.pem, id_* | Geheimnisse — niemals synchronisieren |
.DS_Store, Thumbs.db | OS-Metadaten |
*.log, tmp | Logs / temporär |
6. Praktische Muster
6.1 Dotfiles-Sync
Nicht das gesamte Home-Verzeichnis synchronisieren (Sicherheitsrisiko durch Geheimnisse). In einem ~/dotfiles/-Ordner bündeln und per Symlink einbinden.
~/dotfiles/
├── .gitconfig
├── .zshrc
├── .vimrc
└── .tmux.conf# Mac/Linux
ln -s ~/dotfiles/.zshrc ~/.zshrc
ln -s ~/dotfiles/.gitconfig ~/.gitconfig# Windows — PowerShell-Profil liegt woanders
ln -s C:\Users\me\dotfiles\Microsoft.PowerShell_profile.ps1 $PROFILE~/dotfiles/ über Syncthing freigeben. OS-spezifische Verzweigung über Unterordner (dotfiles/common, dotfiles/mac, dotfiles/windows).
6.2 Notizen-Sync
Den Obsidian- / Logseq-Vault-Ordner freigeben. Weniger Konflikte als bei iCloud / OneDrive (Syncthing-Konflikte pro Datei, nicht pro Zeile — dennoch bei gleichzeitiger Bearbeitung Vorsicht).
6.3 Projekt-Quellcode-Sync (mit Vorbehalt)
Regel: Git bevorzugen, wenn möglich. Syncthing nur für Beiläufiges, das lokalen Sync benötigt (Entwürfe, umgebungsspezifische Konfigurationen, Experimentnotizen) verwenden.
Wenn der Quellordner synchronisiert werden muss, immer .git in .stignore aufnehmen. Ein Sync mitten in Git-internen Schreibvorgängen riskiert Reflog- / Index-Korruption.
6.4 Send Only / Receive Only
Ordnertypen (Ordner → Edit → Folder Type):
- Send & Receive (Standard) — bidirektional
- Send Only — dieser Rechner ist Master. Änderungen der anderen Seite werden ignoriert und abgelehnt
- Receive Only — nur empfangen. Lokale Änderungen werden nicht übertragen
Backup-empfangende Rechner auf
Receive Onlysetzen, verhindert versehentliche bidirektionale Überschreibungen. Für echte Backups jedoch dedizierte Tools verwenden (restic, Time Machine).
7. Konfliktbehandlung
Wenn beide Seiten dieselbe Datei gleichzeitig bearbeiten, legt Syncthing automatisch eine Konfliktdatei an:
foo.md(zuletzt verwendete Version)foo.sync-conflict-20260512-153012-DEVICE.md(die andere Version)
Vorgehensweise
- Beide öffnen und vergleichen (VS Code „Compare with Active" oder
diff foo.md foo.sync-conflict-*.md) - Inhalt in
foo.mdzusammenführen - Die
sync-conflict-Datei löschen
Häufige Konflikte deuten auf gleichzeitige Bearbeitung im selben Ordner hin. Für Notizen rechnergetrennte Unterordner verwenden (
notes/mac/,notes/win/), um dies zu vermeiden.
8. Sicherheit
Geräteauthentifizierung
- Geräte-ID ist ein öffentlicher Schlüssel-Hash (TLS). Keine Imitation möglich
- Neue Geräteanfragen erfordern explizite Genehmigung auf beiden Seiten
Datenübertragung
- Gesamter Datenverkehr TLS 1.2+
- Direkt im LAN; über öffentlichen Relay im Internet — Relay leitet nur Ciphertext weiter
Empfohlene Einstellungen
UI → Settings → GUI Authentication:
- GUI Username + GUI Password setzen (besonders für Laptops in externen Netzwerken)
- Ohne dies kann jeder im selben LAN auf
http://your-ip:8384zugreifen
UI → Settings → Connections:
- Listen Address: Standard
- NAT Traversal ✅ (automatisches Hole-Punching)
.stignore für Geheimnisse
- Immer
.env,*.pem,id_*,.aws/credentialsausschließen - Die
stignore-dev.txtdieser Anleitung tut dies bereits
Überprüfung
Auf beiden Rechnern prüfen:
notes/test.mdauf Mac erstellen → erscheint auf Windows innerhalb von 10snotes/test.mdauf Windows bearbeiten → spiegelt sich auf Mac innerhalb von 10snotes/test.mdauf Mac löschen → verschwindet auf Windows innerhalb von 10s- Auf beiden gleichzeitig bearbeiten →
sync-conflict-...-Datei erscheint (gem. §7 behandeln) node_modules/.envusw. auf einer Seite erstellt → erreicht die andere nicht
Fehlerbehebung
Zwei Rechner können sich nicht sehen
- Gleiches LAN? (über Internet bis zu 5 Minuten warten)
- Firewall erlaubt Syncthing-Port 22000
- Mac: Systemeinstellungen → Netzwerk → Firewall aus, oder Syncthing erlauben
- Windows: PowerShell
Get-NetFirewallApplicationFilter | ? { $_.Program -match 'syncthing' }
Sync ist langsam
- Große Ordner (Zehntausende Dateien) — erster Scan dauert lange. Ordner → Edit → Rescan Interval erhöhen
- Über Internet durch Relay → langsam. Gleiches LAN bevorzugen
- Festplatten-I/O-Engpass — SSD empfohlen
„Out of sync" bleibt bestehen
- Ordner → Override Changes (in Send & Receive) — diesen Rechner als Master erzwingen
- Oder Revert Local Changes (Receive-Modus)
- Beides kann Daten verlieren; vorher sichern
.stignore hat keine Wirkung
- Use .stignore in Ordner → Edit → Ignore Patterns bestätigen
.stignoreliegt am Ordner-Stamm (kein Unterordner)- Rescan auslösen (Ordner → ⋮ → Rescan)
Windows-Tray-Symbol fehlt
winget installstartet möglicherweise nicht automatisch- Der Syncthing Windows Setup Installer fügt Tray + Auto-Start hinzu
- Oder
syncthing.exe --no-console --no-browserbei der Anmeldung über Aufgabenplanung ausführen
Geheimnis versehentlich synchronisiert
- Datei sofort auf beiden Rechnern löschen
- Syncthing kann in den Papierkorb verschieben (Ordner → Dateiversionierung)
- Das Geheimnis selbst rotieren (API-Schlüssel usw.) — davon ausgehen, dass der andere Rechner es berührt hat
- Muster zu
.stignorehinzufügen, um Wiederholung zu verhindern
Referenzen
- Mac-Ersteinrichtung / Windows-Ersteinrichtung — Homebrew/winget Voraussetzungen
- Mac ↔ Windows Eingabefreigabe — Schwesteranleitung
- Syncthing offizielle Dokumentation — Ordnertypen, Versionierung, API
.stignore-Syntax
Changelog
- 2026-05-12: Erster Entwurf. Alternativen + Einrichtung (Mac+Win) + fünf Muster + Konfliktbehandlung + sechs Fehlerbehebungsfälle +
.stignore-Vorlagen-Asset