Snowflake-Standalone-ProxyIhr wollt wissen, wir man einen Standalone-Snowflake-Proxy so konfiguriert, dass er sein volles Potenzial entfalten kann?
Folgendes hat ein Datenpunk getan, damit das hinter einer Fritzbox funktioniert:##
Snowflake-Proxy hinter einer Fritzbox betreibenDamit der Snowflake-Proxy gut funktioniert, sollte er aus dem Internet via UDP erreichbar sein. Nur dann wird er einige Sekunden nach dem Start "NAT type: unrestricted" ausgeben.###
Vorbereitung####
Im TerminalKopiere folgende Befehlszeile in ein Terminalfenster und drück Enter:<code>$ cat /proc/sys/net/ipv4/ip_local_port_range <br>32768 60999<br></code>
Kopiere die erste (linke) Zahl aus der Ausgabe – in unserem Beispiel ist das 32768.####
Im Web-Interface der FritzboxIm Web-Interface der Fritzbox gibt es einen Abschnitt **Heimnetz** und darin dem Punkt **Netzwerk**.
Darin werden alle vernetzten Geräte aufgelistet. Wähle das Gerät aus, auf dem der Snowflake-Proxy laufen soll. Dort erstellst du für dieses Gerät eine Netzwerkfreigabe. Das Ergebnis sollte etwa so aussehen wie im Screenshot.
Bei **Port an Gerät** und **Port extern gewünscht** tragen wir die oben kopierte Zahl (z.B. 32768) ein. Hinter **bis Port** würden wir gern die zweite oben ermittelte Zahl (im Beispiel 60999) eintragen, aber Fritzboxen erlauben nur Port-Bereiche von bis zu 256. Also addieren wir 255 zum untersten Port (z.B. 32768 + 255 = 33023) und tragen das Ergebnis ein.
Wenn das geklappt hat, sollte im Abschnitt **Internet** der Unterpunkt **Freigaben** ein neuer Eintrag erscheinen.####
Im TerminalWenn auf dem Gerät, auf dem der Snowflake-Proxy laufen soll, eine Firewall läuft, sollte auch diese eingehende UDP-Verbindungen erlauben. Für den in der Fritzbox freigegebenen Port-Bereich lässt sich das wie mit ufw wie folgt einstellen:<code>$ sudo ufw allow 32768:33023/udp<br></code>
Das Ergebnis sollte ungefähr wie folgt aussehen:<code>$ sudo ufw status<br>Status: active<br><br>To Action From<br>-- ------ ----<br>22/tcp ALLOW Anywhere <br>32768:33023/udp ALLOW Anywhere <br>22/tcp (v6) ALLOW Anywhere (v6) <br>32768:33023/udp (v6) ALLOW Anywhere (v6)<br></code>
Jetzt können wir die eigentliche Snowflake-Proxy-Software herunterladen – z.B. die Variante für Docker:<code>$ mkdir tor-snowflake<br>$ cd tor-snowflake<br>$ wget -O docker-compose.yml https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/raw/main/docker-compose.yml?ref_type=heads<br></code>
In der soeben heruntergeladenen Datei müssen wir mit einem Texteditor bearbeiten, z.B. so:<code>$ nano docker-compose.yml<br></code>
Durch Enfernen des Rautezeichens vor command teilen wir der Anwendung mit, welche UDP-Ports freigegeben sind:<code>command: [ "-ephemeral-ports-range", "32768:33023" ]<br></code>###
Den Snowflake-Proxy starten####
unter Debian 12 und Derivaten<code>$ sudo apt install docker.io docker-compose<br>$ sudo docker-compose up -d<br>$ sudo docker logs -f snowflake-proxy<br></code>####
unter Debian 13 und Derivaten<code>$ sudo apt install docker.io docker-compose<br>$ sudo docker compose up -d<br>$ sudo docker logs -f snowflake-proxy<br></code>Dann warten, bis eine Zeile mit „NAT“ erscheint. Die Logfile-Anzeile kann man mit Strg-c beenden – der Proxy läuft weiter.