GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So richten Sie den Shadowsocks-libev-Proxyserver unter Ubuntu ein

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

aus
cat /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 🙂


Ubuntu
  1. So richten Sie einen Ubuntu/Debian LAMP-Server ein

  2. So richten Sie Nginx als Reverse Proxy unter Ubuntu 20.04 ein

  3. So richten Sie WireGuard unter Ubuntu 22.04 ein

  4. So installieren Sie Ansible auf Ubuntu Server 21.04

  5. So richten Sie einen TeamSpeak-Server unter Ubuntu 16.04 ein

So richten Sie den CUPS-Druckserver unter Ubuntu 20.04 ein

So installieren Sie den SSH-Server unter Ubuntu 22.04

So installieren Sie Webmin auf Ubuntu 18.04 und Ubuntu 16.04 Server

Wie richte ich einen Apt-Cacher-Server ein?

So installieren Sie den Squid-Proxyserver unter Ubuntu 18.04

So installieren Sie Minecraft Server auf Ubuntu 20.04