Website-Suche

So richten Sie den Shadowsocks-libev-Proxyserver unter Ubuntu 22.04/20.04 ein


Dieses Tutorial zeigt Ihnen, wie Sie den Shadowsocks-Proxyserver unter Ubuntu einrichten. Shadowsocks ist ein leichter, schneller und sicherer Socks5-Proxy zur Umgehung der Internetzensur. Wir erfahren, wie Sie die Serverseite einrichten und den Desktop-Client unter Ubuntu konfigurieren. Es gibt viele Implementierungen von Shadowsocks. Dieses Tutorial zeigt Ihnen, wie Sie Shadowsocks-libev verwenden, weil

  • Es ist in C geschrieben und selbst auf Low-End-Rechnern sehr schnell.
  • Es ist gut gepflegt.
  • Es ist die funktionsreichste Implementierung. Unterstützt werden TCP Fast Open, Multiuser, Verwaltungs-API, Umleitungsmodus, Tunnelmodus, UDP-Relay, AEAD-Verschlüsselungen und Plugins.

Voraussetzungen

Um diesem Tutorial folgen zu können, benötigen Sie einen VPS (Virtual Private Server), der frei auf blockierte Websites zugreifen kann (außerhalb Ihres Landes oder Internet-Filtersystems). Ich empfehle Kamatera VPS, das Folgendes bietet:

  • 30 Tage kostenlose Testversion.
  • Ab 4 $/Monat (1 GB RAM)
  • Leistungsstarker KVM-basierter VPS
  • 9 Rechenzentren auf der ganzen Welt, darunter in den USA, Kanada, Großbritannien, Deutschland, den Niederlanden, Hongkong und Israel.

Folgen Sie dem unten verlinkten Tutorial, um Ihren Linux-VPS-Server bei Kamatera zu erstellen.

  • So erstellen Sie einen Linux-VPS-Server auf Kamatera

Sobald Sie einen VPS mit Ubuntu haben, befolgen Sie die nachstehenden Anweisungen.

Schritt 1: Installieren Sie den Shadowsocks-libev-Server unter Ubuntu 22.04/20.4

Stellen Sie eine SSH-Verbindung zu Ihrem Remote-Ubuntu-Server her. Shadowsocks-libev ist im Ubuntu-Repository enthalten, sodass Sie es installieren können mit:

sudo apt update

sudo apt install shadowsocks-libev

Die Natrium-Kryptobibliothek (libsodium) wird zusammen mit Shadowsocks-Libev installiert. Dies ist eine Voraussetzung, wenn Sie die sichere und schnelle Verschlüsselungsmethode 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 in 0.0.0.0 ändern, damit der Shadowsocks-libev-Server die öffentliche IP-Adresse überwacht. Ändern Sie dann server_port in andere 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

Aktivieren Sie den automatischen Start beim Booten.

sudo systemctl enable shadowsocks-libev.service

Überprüfen Sie den Status. Stellen Sie sicher, dass es läuft.

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 renne

sudo rngd -r /dev/urandom

Jetzt können Sie den Shadowsocks-libev-Dienst starten.

Schritt 2: Firewall konfigurieren

Wenn Sie die iptables-Firewall auf Ihrem Server verwenden, müssen Sie Datenverkehr zum TCP- und UDP-Port zulassen, den Shadowsocks überwacht. 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: Installieren und konfigurieren Sie den Shadowsocks-libev-Client

Ubuntu-Desktop

Das Paket shadowsocks-libev enthält sowohl die Serversoftware als auch die Clientsoftware. Führen Sie auf dem Ubuntu 22.04- und 20.04-Desktop die folgenden Befehle aus, um Shadowsocks-libev zu installieren.

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 Vorlage für die systemd-Diensteinheit: /lib/systemd/system/[email . 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/client01.json

Bearbeiten Sie dann die Client-Konfigurationsdatei.

sudo nano /etc/shadowsocks-libev/client01.json

Ändern Sie die Serveradresse in die öffentliche IP-Adresse Ihres Servers und fügen Sie die folgende Zeile hinzu, um den Client anzuweisen, 127.0.0.1 abzuhören.

"local_address":"127.0.0.1",

Die Client-Konfigurationsdatei sieht also folgendermaßen 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 

Und aktivieren Sie den automatischen Start beim Booten.

sudo systemctl enable [email 

Überprüfen Sie den Status. Stellen Sie sicher, dass es läuft.

systemctl status [email 

Jetzt überwacht der ss-local-Prozess 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. Laden Sie die ZIP-Datei herunter und extrahieren Sie sie. Doppelklicken Sie dann auf die ausführbare Datei „shadowsocks“. Wenn das Windows Defender-Programm die Ausführung von Shadowsocks verhindert, klicken Sie auf Weitere Informationen und wählen Sie Trotzdem ausführen.

Als nächstes müssen Sie einen neuen Server in der Client-Software hinzufügen.

  • Geben Sie die Server-IP-Adresse, den Server-Port (8888) und das Passwort an.
  • Sie können auch den Timeout-Wert ändern (er sollte weniger als 20 Sekunden betragen).
  • Behalten Sie die anderen Einstellungen als Standard bei.

Klicken Sie auf die Schaltfläche Übernehmen

Wenn Sie über mehrere Proxyserver verfügen, können Sie auf die Schaltfläche Hinzufügen klicken, um weitere Proxyserver hinzuzufügen. Beachten Sie, dass Sie jeweils nur einen Proxyserver 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.

Feuerfuchs

  1. Gehen Sie in Firefox zu Bearbeiten > Einstellungen> Allgemein (oder Extras -> Einstellungen). > -> Allgemein).
  2. Scrollen Sie dann nach unten und klicken Sie in den Netzwerkeinstellungen auf die Schaltfläche Einstellungen.
  3. Wählen Sie im Fenster Verbindungseinstellungen die Option manuelle Proxy-Konfiguration aus.
  4. Wählen Sie dann SOCKS v5 aus, da Shadowsocks ein Socks5-Proxy ist.
  5. Geben Sie 127.0.0.1 in das Feld SOCKS-Host und 1080 in das Feld Port ein.
  6. Sie können Proxy-DNS bei Verwendung von SOCKS v5 oder DNS über HTTPS aktivieren. Beide sind gut.
  7. Klicken Sie auf OK, um diese Änderungen zu übernehmen.

Google Chrome

Während Sie den Proxy für Google Chrome und den Chromium-Browser über die Befehlszeile konfigurieren können, empfehle ich die Installation der Proxy SwitchyOmega-Erweiterung, um Proxys zu verwalten.

Sobald die Erweiterung in Google Chrome installiert ist, konfigurieren Sie einen Proxyserver wie folgt:

  • Wählen Sie das Protokoll SOCKS5.
  • Legen Sie 127.0.0.1 als Serveradresse fest.
  • Legen Sie 1080 als Portnummer fest.

Übernehmen Sie die Änderungen. Klicken Sie dann auf das Erweiterungssymbol in der oberen rechten Ecke und dann auf Proxy SwithyOmega.

Standardmäßig verwendet SwithyOmega die Proxy-Einstellungen des Betriebssystems. Wir müssen es von system Proxy in proxy ändern.

Jetzt sollte Ihr Proxy funktionieren.

Schritt 5: DNS-Lecktest

Gehen Sie zu dnsleaktest.com. Sie sehen die IP-Adresse Ihres Shadowsocks-Servers, die anzeigt, 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 Befehlszeilenprogramme 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.

Aktivieren Sie TCP Fast Open

Sie können Shadowsocks beschleunigen, indem Sie TCP Fast Open aktivieren. TCP ist ein verbindungsorientiertes Protokoll, was bedeutet, dass Daten erst ausgetauscht werden können, nachdem eine Verbindung hergestellt wurde, was über den Drei-Wege-Handshake erfolgt. Mit anderen Worten: Traditionell können Daten erst ausgetauscht werden, nachdem der Drei-Wege-Handshake abgeschlossen ist. TCP Fast Open (TFO) ist ein Mechanismus, der den Datenaustausch ermöglicht, 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 in den Linux-Kernel integriert 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 Folgendes aus:

cat /proc/sys/net/ipv4/tcp_fastopen

Es können 4 Werte zurückgegeben werden.

  • 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 wird. 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 außerdem die Konfigurationsdatei des Shadowsocks-Clients bearbeiten und neu starten, um das schnelle Öffnen von TCP auf dem Ubuntu-Desktop zu ermöglichen.

Aktivieren Sie TCP BBR

TCP BBR ist ein TCP-Überlastungskontrollalgorithmus, der die Verbindungsgeschwindigkeit drastisch verbessern kann. Schauen Sie sich das folgende Tutorial an.

  • So steigern Sie ganz einfach die Netzwerkleistung von Ubuntu durch die Aktivierung von TCP BBR

Weitere Informationen zur Verwendung von Shadowsocks finden Sie im Handbuch.

man shadowsocks-libev

Fehlerbehebung

Hin und wieder funktioniert mein Shadowsocks-libev-Proxy nicht mehr und der folgende Fehler wird auf der Serverseite angezeigt, wenn ich den Status mit systemctl überprüfe.

ERROR: server recv: Connection reset by peer

Auf der Clientseite lautet der von systemctl zurückgegebene Fehler:

ERROR: remote_recv_cb_recv: Connection reset by peer

Ich weiß nicht, warum das passiert, aber ein Neustart des shadowsocks-libev-Dienstes auf dem Server kann dieses Problem beheben.

sudo systemctl restart shadowsocks-libev

Ich möchte den Dienst nicht jedes Mal manuell neu starten, daher füge ich einen Cron-Job hinzu, der dies 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 12 Uhr, 3 Uhr, 6 Uhr, 9 Uhr usw. Beachten Sie, dass die Zeit von Cron bestimmt wird. Es wird nicht durch die Berechnung ermittelt, wie lange der Dienst bereits ausgeführt wurde.

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 der Datei /etc/shadowsocks-libev/config.json anzugeben. Fügen Sie einfach die folgende Zeile in die Datei ein und starten Sie den Dienst „shadowsocks-libev“ neu.

"name_server":"1.1.1.1",

Wenn auf dem Shadowsocks-Server ein eigener DNS-Resolver läuft, 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.

Zusammenfassung

Das ist es! Ich hoffe, dieses Tutorial hat Ihnen bei der Installation des Shadowsocks-libev-Proxys unter Ubuntu geholfen. Wie immer gilt: Wenn Sie diesen Beitrag nützlich fanden, dann abonnieren Sie unseren kostenlosen Newsletter, um weitere Tipps und Tricks zu erhalten 🙂

Shadowsocks ist ein Forward-Proxy. Möchten Sie wissen, was ein Forward-Proxy ist? Bitte lesen Sie den folgenden Artikel:

  • Unterschiede zwischen Forward-Proxy und Reverse-Proxy

Verwandte Artikel