Das Tor-Projekt beschreibt Snowflake wie folgt: “Snowflake ist eine austauschbare Übertragungsart, die im Tor Browser verfügbar ist, um die Internetzensur zu umgehen. Wie eine Tor-Brücke kann ein Benutzer auf das offene Internet zugreifen, wenn selbst reguläre Tor-Verbindungen zensiert werden.”.

Gerade in Zeiten von Kriegspropaganda und Zensur ist es wichtig, Menschen eine sicheren Zugang zu freien Informationen im Internet zu bieten. Neben der Möglichkeit, einen Snowflake Proxy als Add-On im Firefox oder Chrome Browser zu installieren und laufen zu lassen, gibt es vom Tor-Projekt ein Docker Image, welches sich leicht auf einem Synology NAS installieren lässt.

Voraussetzung für die Installation ist ein Synology NAS, welches Docker unterstützt. Falls der Docker-Dienst noch nicht installiert ist, könnt ihr das einfach über den Synology Paketmanager nachholen und im Anschluss den Docker-Dienst starten.

Nun geht es an die Installation des Snowflake-Proxy per Docker Image, was ich mit ein paar Screenshots beschreiben werde. Zuerst wird im Synology DSM “Docker” geöffnet. Dort klickt ihr auf “Registrierung” und sucht in der Docker Hub Registry nach “snowflake” und wählt den Snowflake Proxy von “thetorproject” aus und klickt auf “Download”.

Bei der Auswahl der Version nehmt ihr den Tag “latest”. Das Image wird nun auf euer Synology NAS heruntergeladen.

Nun wählt ihr über das linke Menü “Image” aus, markiert das neue Snowflake Image und startet dieses.

Die “Allgemeinen Einstellungen” lassen wir so, wie sie sind und klicken auf “Erweiterte Einstellungen”.

Auf dem ersten Reiter wählen wir die Punkte “Automatischen Neustart aktivieren” (damit der Proxy nach einem Neustart der Synology ebenfalls wieder startet) und “Verknüpfung auf dem Desktop erstellen” (für einen schnellen Zugriff auf die Logs) aus.

Auf dem Reiter “Netzwerk” wird “Dasselbe Netzwerk wie Docker Host verwenden” angehakt. Wer möchte, kann vorher in den Docker Netzwerkeinstellungen eine Network Bridge einrichten und diese dann auswählen. Somit könnte man den Netzwerkverkehr besser analysieren und trennen. Für die Funktion macht es jedoch keinen Unterschied und ich habe das für dieses Beispiel nicht gemacht.

In der Zusammenfassung wählen wir “Diesen Container nach Abschluss des Assistenten ausführen” aus und klicken auf “Übernehmen”. Der Container wird jetzt gestartet.

Wenn wir jetzt über das Menü “Container” auswählen, müsste mindestens der gestartet Snowflake Proxy Container zu sehen sein. Diesen wählen wir aus und klicken auf “Details”.

Auf der Überblick-Seite findet ihr ein paar Informationen zum Container wie z.B. die Laufzeit sowie die Prozessor- und Speicherauslastung. Diese halten sich nach meinen bisherigen Erfahrungen in sehr niedrigen Bereichen.

Auf den Tabs “Protokoll” und “Terminal” seht ihr nun die Ausgaben des Snowflake Proxys, wie die Anmeldungen an Relays, den Datendurchsatz und mehr.

Herzlichen Glückwunsch! Euer Tor Snowflake Proxy läuft und ihr verbindet nun zensierte Internet-Benutzer:innen mit dem Tor-Netzwerk, damit sie darüber auf das normale, ungefilterte Internet zugreifen können.

Tor Snowflake Proxy Schema „Snowflake schematic" von Cooper Quintin, via Wikimedia Commons - CC BY 4.0

“Aber ich habe Bedenken, dass ich mit dem Einrichten des Snowflake Proxy etwas Verbotenes mache.”

Die Nutzung des Tor-Netzwerks ist in Rechtsstaaten, so auch in Deutschland, nicht verboten. Sobald ein Benutzer aus einer zensierten Region eine Webseite aufruft, ist für den Betreiber nur die IP des Tor Exit-Knoten sichtbar (nicht zu verwechseln mit unserem Snowflake Proxy!).

“Ich habe Angst, dass der Netzwerkverkehr über meinen Proxy zu groß wird.”

Der Netzwerkverkehr ist zum jetzigen Stand marginal. Über den Synology Ressourcen Monitor -> Netzwerk lässt sich das gut beobachten.

“Muss ich irgendwelche eingehenden Ports in meinem Router oder der Firewall öffnen?”

Nein :) Genauso wie es bei der Nutzung der Firefox oder Chrom Addons nicht erforderlich ist.

Auf die Idee, den Snowflake Proxy auf der Synology zu installieren, kam ich über einen Beitrag von Mike Kuketz. Auch ein paar Informationen habe ich von seinem Beitrag übernommen. Ihr findet bei ihm weitergehende Informationen zu dem Thema sowie eine Anleitung, den Proxy auf einem Raspberry PI zu installieren. Überhaupt lohnt es sich immer, seinem Blog folgen: Kuketz IT-Security - IT-Sicherheit, Datenschutz, Hacking

Weitere Informationen in mehreren Sprachen findet ihr außerdem auf den Seiten von Digitalcourage e.V..


Kommentare aus meinem alten Blog

Die folgenden Kommentare wurden am 16. September 2026 aus meinem alten Joomla-Blog übernommen.

ralle · Montag, 26. September 2022

Danke für den Artikel. Gleich umgesetzt.


Stefan · Samstag, 01. Oktober 2022

Danke für die Anleitung! Bei mir (DSM 7.1) blieben allerdings das Protokoll und das Terminal leer, so dass ich dem Startbefehl “-verbose” hinzugefügt habe. Damit bekomme ich die Ausgaben wie auf Deinen Bildern.

Maik · Samstag, 01. Oktober 2022

@Stefan Kannst Du mir kurz erklären, wo ich den Befehl hinzufügen muss, damit ich das Protokoll sehen kann? Vielen Dank

Jan · Samstag, 01. Oktober 2022

Das ist interessant. Ich hatte letzte Woche bereits eine Anfrage, weil Terminal und Protokoll leer blieben bzw. nur stündlich die Zusammenfassung gelogged wurde. Seltsamerweise klappt es bei mir auch unter DSM 7.1 mit dem aktuellen Docker Image ohne -verbose - ich bekomme das “Problem” nicht nachgestellt.

Auf jeden Fall danke für den Hinweis!

jbecher@arcor.de · Freitag, 18. November 2022

Wie / Wo kann man den “-verbose” zu dem Start hinzufügen? Ich kenne jetzt nur den “Start” button, und seh keine Möglichkeit , es zu verändern…Grüße Juergen

Jan · Sonntag, 20. November 2022

Hallo! Siehe hierzu den Kommentar von Cy: (weiter unten in den Kommentaren)


Cy · Samstag, 01. Oktober 2022

@Maik Ich habe es so gemacht:

  • Container Einstellungen exportiert
  • json Datei mit den Einstellungen geöffnet und die Zeile “cmd” : “”, zu “cmd” : “-verbose”, geändert. War bei mir die dritte Zeile
  • Container gelöscht
  • Bearbeitete Einstellungsdatei importiert

Sordi · Sonntag, 02. Oktober 2022

Danke für die Anleitung. Weiss jemand hier, was die Log-Einträge genau bedeuten und ob es eine Art “Analytics” Script dazu gibt? Habe nichts dazu finden können…


Franky D · Donnerstag, 13. Oktober 2022

Mit der DSM7 hatte ich Schwierigkeiten, das mit dem cmd: -verbose anzugeben. Allerdings gibt es für die Noobs (so wie mich) auch die Möglichkeit unter: Erweiterte Einstellungen: Tab “Ausführungsbefehl” Die Möglichkeit einen Befehlt einzugeben (cmd) Zuerst steht da (als Text) Entrypoint /bin/(proxy) Darunter dann Befehl und ein Textfeld. Da trägt man dann “-verbose” ein.

Was mich maßlos verwirrt hat, war das ich dann nach dem Neustart in der Übersicht nur Einträge in Protokoll sah, aber im Terminal tat sich nichts.

Als ca. 3 bis 5 Minuten verstrichen waren, konnte ich auch Text im Terminal lesen. Also das ganze geht auch ohne Export Texteditor.

Generell noch vielen Dank an den Ersteller des Posts. Ohne Dich wäre ich nie darauf gekommen und hätte mich das auch nie getraut.

Danke ?

Kleine Frage an alle: Wenn man das im Browser als Embeded laufen lässt: https://snowflake.torproject.org/embed

Bekommt man so eine Motivierende Ausgabe, wievielen Leuten man schon geholfen hat. Gibt es so eine Darstellung oder Statistik auch für Doker/Snowflake auf der Synology? - Kann bei mir sehr gut ein, dass das nur einen Klick entfernt ist und ich finde den einfach nicht. ?

Cy · Donnerstag, 27. Oktober 2022

So eine Ansicht gibt es wohl nicht. In den Protokollen kann man nach “last” filtern, dann sieht man die Zusammenfassungen die jede Stunde erstellt werden. Dort ist dann angegeben wie viele Verbindungen es in der letzten Stunde waren und die Menge an Traffic.

Ich habe lange nach einer möglichkeit gesucht die CSV Log Datei, welche man sich dort exportieren kann, automatisch in ein Verzeichnis auf der Synology abzulegen, habe aber nichts gefunden.

Ich habe mir nun ein PHP Script geschrieben, welches über die Synology API die CSV herunterlädt, parst, eine HTML Datei mit einer Tabelle der täglichen Verbindungen und des Traffic erstellt und diese dann auf meinen Webspace hochlädt. Das Script lasse ich vom Synology Aufgabenplaner jede Stunde per wget aufrufen.

Darkwinder · Donnerstag, 27. Oktober 2022

Ich vermute es geht über SYNO.Docker.Container.Log, ich hänge nur an dem Error 114 (vermutlich fehlen Parameter), wie kann man mit der API die CSV auslesen?

Cy · Donnerstag, 27. Oktober 2022

So habe ich es gemacht (DSM 6.2): Zuerst einloggen über http://<SYNOIP>:5000/webapi/auth.cgi?api=SYNO.API.Auth&version=6&method=login&account=<USERNAME>&passwd=<PASSWORT>&format=sid

Da gibt es eine sid zurück, dann über die URL: http://<SYNOIP>:5000/webapi/entry.cgi?api=SYNO.Docker.Container.Log&method=export&version=1&format=“csv”&name=“thetorproject-snowflake-proxy1”&_sid=<SID_SCHRITT1>

Dann mache ich noch einen logout mit http://<SYNOIP>:5000/webapi/auth.cgi?api=SYNO.API.Auth&version=6&method=logout&_sid=<SID_SCHRITT1>

  1. und 3. Schritt gibt ein json string zurück, 2. direkt den CSV Inhalt. Die Aufrufe mache ich einfach mit 4 zeilen curl: curl_init, curl_setopt mit CURLOPT_RETURNTRANSFER true, curl_exec und curl_close.

Inhalt aus Schritt 2 speicher ich noch in einer Datei falls ich später mal ran will, die Datei gehe ich dann mit while und fgetcsv durch, schaue nach strings, paar explode und pregmatch usw. zum finden und auseinander nehmen der Zeilen mit “last”.

Darkwinder · Donnerstag, 27. Oktober 2022

Perfekt, mir hatten nur die richtigen Parameter für SYNO.Docker.Container.Log gefehlt, vielen Dank ! :-)


Andrea · Dienstag, 18. Oktober 2022

Vielen Dank für den tollen Beitrag.

Hiermit konnte ich tor spezifische Parameter definieren: Zum Beispiel, dass das NAS nicht stündlich aufwacht und loggt: a) Nur wenn man den Container erstellt, kann man im GUI unter “Erweiterte Einstellungen” / “Ausführungsbefehl” “Befehl” die parameter definieren, z.B.: -summary-interval 24h b) wie schon oben beschrieben, durch exportieren und importieren: “cmd” : “-summary-interval 24h”,

Die möglichen Parameter sind hier definiert: https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/blob/main/proxy/main.go


AndyB · Donnerstag, 27. Oktober 2022

Hallo zusammen, ich benutze eine Diskstation im lokalen Betrieb ohne Quickconnect. Wie sicher ist das Ganze bezogen auf meine persönlichen Daten auf der Diskstation? Gebe ich damit irgendwelche Zugriffe auf die Synology frei? Muss ich den externen Zugriff über Quickconnect aktivieren?

Jan · Donnerstag, 27. Oktober 2022

Moin! Nein, Du brauchst dafür weder Quickconnect zu aktivieren, noch irgendwelche Portforwardings in der Firewall oder im Router einzurichten. Auch sonst benötigt Snowflake keinerlei Freigabe auf Dein NAS, da halt kein Storage benötigt wird und auch nichts lokal geschrieben wird.

AndyB · Donnerstag, 27. Oktober 2022

Danke für die schnelle Antwort. Hast du ne Idee, wie stark die Rechenleistung beeinträchtigt wird? Wir greifen hier mit 4 Usern auf ne Ds420+ zu, hauptsächliche Fotobackup und Office.

Jan · Donnerstag, 27. Oktober 2022

Ich habe in Sachen Performance im täglichen Gebrauch keine Unterschiede feststellen können (DS720+). Nur minimale Prozessorauslastung. Und auch der Netzwerktraffic hält sich stark in Grenzen.

AndyB · Donnerstag, 27. Oktober 2022

Ach, und braucht die Fritzbox noch Extraeinstellungen?

Jan · Donnerstag, 27. Oktober 2022

Nein, es muss nichts freigeschaltet oder aktiviert werden.

AndyB · Donnerstag, 27. Oktober 2022

Hört sich gut an. Dann probiere ich das mal. Bei Problemen weiß ich, wo ich schnelle Hilfe finde. Besten Dank


Maximilian · Sonntag, 20. November 2022

Hallo Zusammen,

erstmal danke für die Anleitung. Leider bekomme ich das Docker-Image nicht zum laufen. Ich sehe weder ein Protokol noch etwas auf dem Terminal. Jemand eine Idee mit welchen Kommandos ich im Terminal abfragen kann was das Problem ist? Status etc. Vielen Dank.

Jan · Sonntag, 20. November 2022

Hallo Maximilian, bei mir lief es direkt mit dem Logging. Ansonsten hat “Cy” hier beschrieben, wie Du das aktivierst: (weiter unten in den Kommentaren)


Martin Rh. · Samstag, 11. Februar 2023

Danke für die tolle Anleitung. Hab alles unter DSM 6 wie in der Anleitung gemacht. Bei mir startet der Container, aber im Protokoll erscheint nach wenigen Sekunden: restricted NAS Was muss ich tun?

Jan · Sonntag, 12. Februar 2023

Die Meldung ist normal, es müssten trotzdem Verbindungen zustande kommen. Mehr siehst Du im Log, wenn Du Snowflake mit “-verbose” startest…Infos dazu weiter oben in den Kommentaren.

Sofern Du die UDP-Ports 32768 bis 60999 auf Deinem Internet-Router zu Deinem NAS öffnest, ändert sich die Meldung auf “Unrestricted NAT” und Du bekommst mehr Anfragen. Das ist jedoch kein Muss.

Martin Rh. · Montag, 13. Februar 2023

Danke. Es funktioniert. Habe noch ca. 500 UDP-Ports freigeschaltet. Jetzt habe ich ca. 10-20 Snowflakes pro Stunde.


Martin Rh. · Samstag, 11. Februar 2023

Sorry, ich meinet eben die Meldung: NAT Type : restricted