Dieses Tutorial zeigt Ihnen, wie Sie den Shadowsocks-Proxy-Server unter Ubuntu einrichten. Shadowsocks ist ein leichter, schneller und sicherer Socks5-Proxy zur Umgehung der Internetzensur. Wir werden lernen, wie man die Serverseite einrichtet und wie man den Desktop-Client unter Ubuntu konfiguriert. Es gibt viele Implementierungen von Shadowsocks, dieses Tutorial zeigt Ihnen, wie Sie Shadowsocks-libev verwenden, weil
- Es ist in C geschrieben, sehr schnell sogar auf Low-End-Rechnern.
- Es ist gut gepflegt.
- Es ist die funktionsreichste Implementierung. TCP Fast Open, Multiuser, Management API, Umleitungsmodus, Tunnelmodus, UDP-Relay, AEAD-Chiffren und Plugins werden alle unterstützt.
Voraussetzungen
Um dieses Tutorial abzuschließen, benötigen Sie:
- Ein VPS (Virtual Private Server). Ich empfehle Vultr. Sie bieten einen Hochleistungs-VPS mit 512 MB Speicher für nur 2,5 $ pro Monat, was perfekt für Ihren privaten Proxy-Server ist.
- Installieren Sie dann Ubuntu auf Ihrem VPS.
Schritt 1:Shadowsocks-libev-Server auf Ubuntu installieren
SSH in Ihren entfernten Ubuntu-Server. Shadowsocks-libev
ist seit 17.04 im Ubuntu-Repository enthalten, sodass Sie es installieren können mit:
sudo apt update sudo apt install shadowsocks-libev
Benutzer von Ubuntu 16.04 können es von PPA aus installieren, indem sie die folgenden Befehle ausführen. software-properties-common
wird benötigt, wenn Sie Software von PPA installieren möchten. Möglicherweise fehlt es auf Ihrem Ubuntu-Server.
sudo apt install software-properties-common -y sudo add-apt-repository ppa:max-c-lv/shadowsocks-libev -y sudo apt update sudo apt install shadowsocks-libev
Die Natrium-Kryptobibliothek (libsodium) wird zusammen mit shadowsocks-libev installiert. Es ist eine Voraussetzung, wenn Sie das sichere und schnelle Verschlüsselungsverfahren ChaCha20-Poly1305 verwenden möchten. Bearbeiten Sie nach der Installation die Konfigurationsdatei.
sudo nano /etc/shadowsocks-libev/config.json
Der Standardinhalt der Datei ist wie folgt.
{ "server":["::1", "127.0.0.1"], "mode":"tcp_and_udp", "server_port":8388, "local_port":1080, "password":"ACRrobo9ymXb", "timeout":60, "method":"chacha20-ietf-poly1305" }
Wir müssen 127.0.0.1
ändern zu 0.0.0.0
, sodass der Shadowsocks-libev-Server die öffentliche IP-Adresse abhört. Ändern Sie dann server_port
zu anderen Portnummern wie 8888. Das Passwort wurde zufällig generiert, Sie können es also so lassen, wie es ist.
Speichern und schließen Sie die Datei. Starten Sie dann den Dienst shadowsocks-libev neu, damit die Änderungen wirksam werden.
sudo systemctl restart shadowsocks-libev.service
Autostart beim Booten aktivieren.
sudo systemctl enable shadowsocks-libev.service
Überprüfen Sie seinen Status. Stellen Sie sicher, dass es ausgeführt wird.
systemctl status shadowsocks-libev.service
Wenn Sie den folgenden Fehler sehen.
This system doesn't provide enough entropy to quickly generate high-quality random numbers. The service will not start until enough entropy has been collected.
Sie können diesen Fehler beheben, indem Sie rng-tools
installieren .
sudo apt-get install rng-tools
Dann ausführen
sudo rngd -r /dev/urandom
Jetzt können Sie den Dienst Shadowsocks-libev starten.
Schritt 2:Firewall konfigurieren
Wenn Sie die iptables-Firewall auf Ihrem Server verwenden, müssen Sie den Datenverkehr zum TCP- und UDP-Port zulassen, auf dem Shadowsocks lauscht. Wenn beispielsweise Port 8888 von Shadowsocks verwendet wird, führen Sie den folgenden Befehl aus:
sudo iptables -I INPUT -p tcp --dport 8888 -j ACCEPT sudo iptables -I INPUT -p udp --dport 8888 -j ACCEPT
Wenn Sie eine UFW-Firewall verwenden, führen Sie die folgenden Befehle aus:
sudo ufw allow 8888
Wenn Sie AWS oder Google Cloud verwenden, müssen Sie die Firewall im webbasierten Control Panel konfigurieren.
Schritt 3:Shadowsocks-libev-Client installieren und konfigurieren
Ubuntu-Desktop
Die shadowsocks-libev
Paket enthält sowohl die Server-Software als auch die Client-Software. Führen Sie auf dem Desktop Ubuntu 20.04, 18.04 die folgenden Befehle aus, um Shadowsocks-libev zu installieren.
sudo apt update sudo apt install shadowsocks-libev
Führen Sie auf dem Ubuntu 16.04-Desktop die folgenden Befehle aus, um Shadowsocks-libev zu installieren.
sudo add-apt-repository ppa:max-c-lv/shadowsocks-libev -y sudo apt update sudo apt install shadowsocks-libev
Shadowsocks-libev (der Server) wird nach der Installation automatisch gestartet. Sie müssen den Shadowsocks-Server auf dem Ubuntu-Desktop stoppen.
sudo systemctl stop shadowsocks-libev
Deaktivieren Sie außerdem den automatischen Start beim Booten.
sudo systemctl disable shadowsocks-libev
Die Shadowsocks-Client-Binärdatei heißt ss-local
. Dafür gibt es eine systemd-Service-Unit-Vorlage: /lib/systemd/system/[email protected]
. Bevor wir den Client starten, müssen wir die clientseitige Konfigurationsdatei erstellen. Wir können die Shadowsocks-libev-Serverkonfiguration in die Client-Konfigurationsdatei kopieren.
sudo cp /etc/shadowsocks-libev/config.json /etc/shadowsocks-libev/location-of-your-server.json
Sie können location-of-your-server
ersetzen mit etwas wie SFO, LAX. Bearbeiten Sie dann die Client-Konfigurationsdatei.
sudo nano /etc/shadowsocks-libev/location-of-your-server.json
Ändern Sie die Serveradresse in die öffentliche IP-Adresse Ihres Servers und fügen Sie die folgende Zeile hinzu, um dem Client mitzuteilen, dass er auf 127.0.0.1 lauschen soll.
"local_address":"127.0.0.1",
Die Client-Konfigurationsdatei sieht also so aus:
{ "server":"your-server-ip-address", "mode":"tcp_and_udp", "server_port":8888, "local_address":"127.0.0.1", "local_port":1080, "password":"ACRrobo9ymXb", "timeout":60, "method":"chacha20-ietf-poly1305" }
Speichern und schließen Sie die Datei. Dann können wir den Client starten mit:
sudo systemctl start [email protected]location-of-your-server.service
Und aktivieren Sie den automatischen Start beim Booten.
sudo systemctl enable [email protected]location-of-your-server.service
Überprüfen Sie seinen Status. Stellen Sie sicher, dass es ausgeführt wird.
systemctl status [email protected]location-of-your-server.service
Jetzt lauscht der ss-local-Prozess auf 127.0.0.1:1080 auf Ihrem Ubuntu-Desktop und ist mit Ihrem Shadowsocks-Server verbunden.
Windows-Desktop
Windows-Benutzer können diesen Shadowsocks-Client herunterladen. Nach der Installation können Sie einen neuen Server in der Client-Software hinzufügen. Geben Sie die IP-Adresse, den Port und das Kennwort des Servers an. Klicken Sie auf Apply
Schaltfläche
Wenn Sie mehrere Proxy-Server haben, können Sie auf Add
klicken Schaltfläche, um weitere Proxy-Server hinzuzufügen. Beachten Sie, dass Sie jeweils nur einen Proxy-Server verwenden.
Schritt 4:Konfigurieren Sie den Webbrowser für die Verwendung des Socks-Proxys
Damit Ihr Programm einen Socks-Proxy verwendet, muss das Programm Socks-Proxy unterstützen. Programme wie Firefox, Google Chrome und Dropbox ermöglichen Benutzern die Verwendung von Proxys. Ich zeige Ihnen, wie Sie Firefox und Google Chrome konfigurieren.
Firefox
Gehen Sie in Firefox zu Bearbeiten> Einstellungen> Allgemeines (oder Werkzeuge -> Optionen -> Allgemein ). Scrollen Sie dann ganz nach unten und klicken Sie auf Einstellungen im Netzwerk-Proxy . In den Verbindungseinstellungen Wählen Sie im Fenster Manuelle Proxy-Konfiguration aus . Wählen Sie dann SOCKS v5 aus weil Shadowsocks ein Socks5-Proxy ist. Geben Sie 127.0.0.1
ein im Feld SOCKS-Host und 1080
im Hafengebiet. Stellen Sie sicher, dass Proxy-DNS bei Verwendung von SOCKS v5 verwendet wird aktiviert. Klicken Sie auf OK um diese Änderungen anzuwenden.
Google Chrome
Während Sie den Proxy für Google Chrome und den Chromium-Browser über die Befehlszeile konfigurieren können, empfehle ich, die Proxy SwitchyOmega-Erweiterung zu installieren, um Proxys zu verwalten.
Sobald die Erweiterung in Google Chrome installiert ist, konfigurieren Sie einen Proxy-Server wie folgt:
- Wählen Sie
SOCKS5
Protokoll. - Legen Sie
127.0.0.1
fest als Serveradresse. - Stellen Sie
1080
ein als Portnummer.
Übernehmen Sie die Änderungen. Klicken Sie dann auf das Erweiterungssymbol in der oberen rechten Ecke und dann auf Proxy SwithyOmega
.
Standardmäßig verwendet SwitchyOmega die Proxy-Einstellungen des Betriebssystems. Wir müssen es von system proxy
ändern zu proxy
.
Jetzt sollte Ihr Proxy funktionieren.
Schritt 5:DNS-Lecktest
Gehen Sie zu dnsleaktest.com. Sie sehen die IP-Adresse Ihres Shadowsocks-Servers, was darauf hinweist, dass Ihr Proxy funktioniert.
Klicken Sie auf den Standardtest. Stellen Sie sicher, dass Ihr lokaler ISP nicht in den Testergebnissen enthalten ist.
Proxy in der Befehlszeile
Damit Ihre Kommandozeilenprogramme den Proxy verwenden können, können Sie tsocks
installieren .
sudo apt install tsocks
Bearbeiten Sie dann die Konfigurationsdatei.
sudo nano /etc/tsocks.conf
Suchen Sie die folgende Zeile:
server = 192.168.0.1
Ändern Sie es in
server = 127.0.0.1
Speichern und schließen Sie die Datei. Jetzt können Sie Ihrem Befehlszeilenprogramm erlauben, den Shadowsocks-Proxy wie folgt zu verwenden:
sudo tsocks apt update
Es gibt auch ein ähnliches Programm namens Proxychains.
TCP Fast Open aktivieren
Sie können Shadowsocks beschleunigen, indem Sie TCP Fast Open aktivieren. TCP ist ein verbindungsorientiertes Protokoll, d.h. Daten können erst nach einem Verbindungsaufbau ausgetauscht werden, was über den Drei-Wege-Handshake erfolgt. Mit anderen Worten, Daten können traditionell erst ausgetauscht werden, nachdem der Drei-Wege-Handshake abgeschlossen ist. TCP Fast Open (TFO) ist ein Mechanismus, mit dem Daten ausgetauscht werden können, bevor der Drei-Wege-Handshake abgeschlossen ist, wodurch bis zu 1 Round-Trip-Time (RTT) eingespart wird.
Die TCP-Fast-Open-Unterstützung ist seit Version 3.7 mit dem Linux-Kernel zusammengeführt und seit Version 3.13 standardmäßig aktiviert. Sie können Ihre Kernel-Version überprüfen, indem Sie Folgendes ausführen:
uname -r
Um die TCP-Fast-Open-Konfiguration auf Ihrem Ubuntu-Server zu überprüfen, führen Sie
auscat /proc/sys/net/ipv4/tcp_fastopen
Es kann 4 Werte zurückgeben.
- 0 bedeutet deaktiviert.
- 1 bedeutet, dass es für ausgehende Verbindungen (als Client) aktiviert ist.
- 2 bedeutet, dass es für eingehende Verbindungen aktiviert ist (als Server).
- 3 bedeutet, dass es sowohl für ausgehende als auch für eingehende Verbindungen aktiviert ist.
Alle meine Ubuntu VPS (Virtual Private Server) haben 1
zurückgegeben nachdem Sie den obigen Befehl ausgeführt haben. Wir möchten, dass tcp_fastopen auf unserem Server auf 3 gesetzt ist. Um dies zu erreichen, können wir die sysctl-Konfigurationsdatei bearbeiten.
sudo nano /etc/sysctl.conf
Fügen Sie dann die folgende Zeile am Ende der Datei ein.
net.ipv4.tcp_fastopen=3
Laden Sie die Sysctl-Einstellungen neu, damit die Änderung wirksam wird.
sudo sysctl -p
Dann müssen Sie auch TCP Fast Open in der Shadowsocks-Konfigurationsdatei aktivieren.
sudo nano /etc/shadowsocks-libev/config.json
Fügen Sie die folgende Zeile hinzu.
"fast_open": true
Ihre Shadowsocks-Serverkonfigurationsdatei sieht also folgendermaßen aus:
{ "server":"your-server-ip-address", "server_port":8388, "local_port":1080, "password":"focobguph", "timeout":60, "method":"chacha20-ietf-poly1305", "fast_open": true }
Beachten Sie, dass die letzte Konfigurationszeile kein Komma enthält. Speichern und schließen Sie die Datei. Starten Sie dann den Shadowsocks-Server neu.
sudo systemctl restart shadowsocks-libev
Überprüfen Sie, ob es läuft. (Ein Fehler in der Konfigurationsdatei kann den Neustart verhindern.)
systemctl status shadowsocks-libev
Sie müssen auch die Konfigurationsdatei des Shadowsocks-Clients bearbeiten und neu starten, um TCP Fast Open auf dem Ubuntu-Desktop zu aktivieren.
TCP-BBR aktivieren
TCP BBR ist ein TCP-Überlastungskontrollalgorithmus, der die Verbindungsgeschwindigkeit drastisch verbessern kann. Sehen Sie sich das folgende Tutorial an.
- Wie man die Ubuntu-Netzwerkleistung einfach steigert, indem man TCP BBR aktiviert
Weitere Informationen zur Verwendung auf Shadowsocks finden Sie im Handbuch.
man shadowsocks-libev
Fehlerbehebung
Hin und wieder funktioniert mein Shadowsocks-libev-Proxy nicht mehr und folgender Fehler wird serverseitig angezeigt, wenn ich den Status mit systemctl
überprüfe .
ERROR: server recv: Connection reset by peer
Auf der Client-Seite der von systemctl
zurückgegebene Fehler ist:
ERROR: remote_recv_cb_recv: Connection reset by peer
Ich weiß nicht, warum es passiert, aber ich starte shadowsocks-libev
neu Dienst auf dem Server kann dieses Problem beheben.
sudo systemctl restart shadowsocks-libev
Ich möchte den Dienst nicht jedes Mal manuell neu starten, also füge ich einen Cron-Job hinzu, der das regelmäßig für mich erledigt.
sudo crontab -e
Fügen Sie die folgende Zeile am Ende der Datei ein.
0 */3 * * * /bin/systemctl restart shadowsocks-libev
Dadurch wird der Dienst alle 3 Stunden neu gestartet. Das heißt, der Neustart erfolgt um 00:00 Uhr, 03:00 Uhr, 06:00 Uhr, 09:00 Uhr usw. Beachten Sie, dass die Zeit von cron bestimmt wird. Es wird nicht durch Berechnung bestimmt, wie lange der Dienst läuft.
Wenn Sie den folgenden Fehler im Shadowsocks-libev-Protokoll sehen.
ERROR: unable to resolve www.youtube.com
Dies bedeutet, dass der Shadowsocks-libev-Server DNS nicht erfolgreich auflösen kann. Es ist hilfreich, einen DNS-Server in /etc/shadowsocks-libev/config.json
anzugeben Datei. Fügen Sie einfach die folgende Zeile in die Datei ein und starten Sie den shadowsocks-libev-Dienst neu.
"name_server":"1.1.1.1",
Wenn Sie Ihren eigenen DNS-Resolver auf dem Shadowsocks-Server ausführen, können Sie 127.0.0.1 als Nameserver angeben.
"name_server":"127.0.0.1",
Denken Sie daran, dass in der JSON-Datei die letzte Zeile nicht mit einem Komma endet.
Das ist es! Ich hoffe, dieses Tutorial hat Ihnen geholfen, den Shadowsocks-libev-Proxy unter Ubuntu zu installieren. Wenn Sie diesen Beitrag nützlich fanden, abonnieren Sie wie immer unseren kostenlosen Newsletter, um weitere Tipps und Tricks zu erhalten 🙂