Was ist Shadowsocks?
Umgehe Blockaden mit Shadowsocks, das schwerer zu erkennen ist; SOCKS5 und AEAD, Unterschiede zu VPN, einfache Installation und Konfiguration von Clients und Servern.
Shadowsocks ist ein kostenloses Verschlüsselungsprotokoll für die Datenübertragung mit offenem Quellcode, das auf der SOCKS5-Technologie basiert.
Dieses Protokoll wurde in China entwickelt, um die Große Firewall Chinas zu umgehen, was ihm erfolgreich gelingt.
Wenn eine Webseite blockiert wird, bedeutet das, dass du keinen Zugriff auf ihre IP-Adresse hast. Wenn du also versuchst, eine gesperrte Seite zu öffnen, verbindest du dich zunächst mit dem Server deines Internetanbieters und dann mit der eigentlichen Webseite – jedoch ohne Erfolg. Nutzt du einen Proxy, verbindest du dich zuerst zum Internetanbieter-Server, dann zum Proxy-Server und erst anschließend erhältst du Zugriff auf die Webseite.
Shadowsocks basiert auf dem Proxy-Protokoll SOCKS5, das die Verbindung mit dem AEAD-Verschlüsselungsalgorithmus schützt, der ähnlich wie ein SSH-Tunnel funktioniert. AEAD gilt als einfache Verschlüsselungsmethode und ist somit weniger sicher.
Shadowsocks ähnelt einem virtuellen privaten Netzwerk (VPN), das allerdings eine komplexere Verschlüsselung verwendet und dadurch sicherer ist. Gleichzeitig ist die einfache Verschlüsselung von Shadowsocks schwerer zu erkennen, da sie wie eine normale HTTPS-Verbindung aussieht.
Vorteile von Shadowsocks
- Einfache Serverkonfiguration: Weiter unten zeige ich dir, dass die Standardkonfiguration nur 5 Zeilen umfasst und du dich nicht mit Zertifikaten herumschlagen musst. Es ist ja keine Banknetzwerk.
- Einfache Client-Einrichtung. Clients gibt es für nahezu alle Plattformen, ohne Übertreibung. Die Client-Konfiguration besteht ebenfalls nur aus 5 Zeilen.
- Der Client benötigt keine Administratorrechte. Außerdem lässt er sich per pip installieren, sodass jeder Programmierer auch von der Arbeit aus verbinden kann.
- Zugang lässt sich leicht auf Programmebene steuern. Im Browser kann man mit Add-ons wie FoxyProxy/OmegaSwitchy Zugriffe sogar auf einzelne Adressen nach komplexen Regeln steuern. Mit VPN ist das nur möglich, wenn man auf jedem Client lokale Proxys einrichtet.
- Im Gegensatz zu VPN, das meistens über virtuelle Netzwerkkarten arbeitet, verschwindet der Shadowsocks-Client bei Verbindungsabbruch nicht. Dein Traffic läuft also nicht ungeschützt weiter. Sollte die Anwendung abstürzen, greifen Programme nicht automatisch direkt zu, sofern du das nicht explizit einstellst. Bei VPNs braucht man meist einen Kill-Switch, der vor allem unter Windows oft unzuverlässig und problematisch ist.
- Im Vergleich zu SSH-Tunneln bietet Shadowsocks eine höhere Bandbreite und unterstützt Tausende Clients mit vielen Verbindungen pro Client. SSH-Tunnel kommen bei z.B. Torrents oft an ihre Grenzen und sind anfälliger für kleine Netzwerkstörungen – bei Shadowsocks ist das kein Thema.
- Weniger technische Verbindungsinfos werden übertragen, was der Akkulaufzeit mobiler Geräte zugutekommt.
- Es gibt exotische Server-Versionen als Bibliotheken für verschiedene Programmiersprachen, damit du deinen eigenen Server in Anwendungen integrieren kannst, um den Zugang für deine Clients zu verschlüsseln.
- Grafische Client-Konfiguration. Du kannst QR-Codes erstellen, mit denen sich mobile und Windows-Clients automatisch konfigurieren lassen. Einen Windows-Client einrichten, Code erzeugen und in einer Minute auf 20 Handys verteilen – super schnell! Den Code kannst du auch auf Webseiten oder als Ausdruck an die Wand hängen.
Nachteile von Shadowsocks
- Im Gegensatz zu OpenVPN wurde es nicht offiziell auditiert. Zwar haben viele Leute den Quellcode geprüft, da er offen und klein ist, doch einen offiziellen Audit gibt es nicht.
- Die Nutzer werden nicht getrennt. Man kann mehrere Ports mit verschiedenen Passwörtern abfragen (Quelle), aber pro Port gibt es nur ein Passwort. Theoretisch erlaubt das Passwort eines Nutzers nicht, die Verbindung eines anderen am selben Port abzuhören.
- Kein Reverse-Port-Forwarding. Alle Nutzer sitzen sozusagen hinter NAT. Wenn nötig, muss man auf SSH-Tunnel zurückgreifen.
- Der Android-Client zeigt zwei(!) nicht entfernbaren Benachrichtigungen an, die sehr störend sein können, wenn man sie nicht ausblendet.
- Einige hartnäckige Windows-Programme lassen sich trotz Einstellungen nicht über Shadowsocks verbinden. Leider schreiben manche Entwickler ihre Verbindungsroutine so, dass sie Proxy-Einstellungen ignorieren, etwa bei Lizenzprüfungen. Unten erkläre ich einen Trick, wie du solche Programme erkennen kannst.
- Die Latenz ist höher als bei OpenVPN. Nicht dramatisch, man kann problemlos spielen, aber es gibt einen Unterschied.
- Kein Traffic-Komprimierungsalgorithmus. Im HTTPS-Zeitalter ist das meist egal, aber bei unkomprimierten Textdateien oder echten Ubuntu-Images macht das schon was aus.
- Die Dokumentation ist von Chinesen in chinesischem Englisch verfasst und enthält viele fehlende Stellen und Widersprüche.
Unterschiede zwischen Shadowsocks und VPN
Der Hauptunterschied ist, dass VPN ein vollständig verschlüsseltes Netzwerk bereitstellt, während Shadowsocks nur die Daten zwischen dir und dem Proxy-Server verschlüsselt und keine vollständige Anonymität im Internet bietet.
Shadowsocks nutzt TCP und HTTPS, die nicht das gleiche Sicherheitsniveau wie VPN bieten, dafür aber dabei helfen, Sperren mit besserer Verbindungsgeschwindigkeit zu umgehen.