GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment configurer le serveur proxy Shadowsocks-libev sur Ubuntu

Ce tutoriel va vous montrer comment configurer le serveur proxy Shadowsocks sur Ubuntu. Shadowsocks est un proxy Socks5 léger, rapide et sécurisé pour contourner la censure sur Internet. Nous apprendrons comment configurer le côté serveur et comment configurer le client de bureau sur Ubuntu. Il existe de nombreuses implémentations de Shadowsocks, ce tutoriel vous montre comment utiliser Shadowsocks-libev, car

  • C'est écrit en C, très rapide même sur des machines bas de gamme.
  • Il est bien entretenu.
  • Il s'agit de l'implémentation la plus riche en fonctionnalités. L'ouverture rapide TCP, le multi-utilisateur, l'API de gestion, le mode de redirection, le mode tunnel, le relais UDP, les chiffrements AEAD et les plug-ins sont tous pris en charge.

Prérequis

Pour terminer ce tutoriel, vous aurez besoin de :

  • Un VPS (Serveur Privé Virtuel). Je recommande Vultr. Ils offrent un VPS haute performance de 512 Mo de mémoire pour seulement 2,5 $ par mois, ce qui est parfait pour votre serveur proxy privé.
  • Installez ensuite Ubuntu sur votre VPS.

Étape 1 :Installer le serveur Shadowsocks-libev sur Ubuntu

SSH dans votre serveur Ubuntu distant. Shadowsocks-libev est inclus dans le référentiel Ubuntu depuis 17.04, vous pouvez donc l'installer avec :

sudo apt update

sudo apt install shadowsocks-libev

Les utilisateurs d'Ubuntu 16.04 peuvent l'installer à partir de PPA en exécutant les commandes suivantes. software-properties-common est nécessaire si vous souhaitez installer un logiciel à partir de PPA. Il peut être manquant sur votre serveur Ubuntu.

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

La bibliothèque de cryptographie sodium (libsodium) sera installée avec shadowsocks-libev. C'est une exigence si vous souhaitez utiliser la méthode de cryptage sécurisée et rapide ChaCha20-Poly1305. Une fois installé, modifiez le fichier de configuration.

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

Le contenu par défaut du fichier est le suivant.

{
    "server":["::1", "127.0.0.1"],
    "mode":"tcp_and_udp",
    "server_port":8388,
    "local_port":1080,
    "password":"ACRrobo9ymXb",
    "timeout":60,
    "method":"chacha20-ietf-poly1305"
}

Nous devons changer 127.0.0.1 à 0.0.0.0 , ainsi le serveur Shadowsocks-libev écoutera sur l'adresse IP publique. Ensuite, modifiez server_port à d'autres numéros de port comme 8888. Le mot de passe a été généré de manière aléatoire, vous pouvez donc le laisser tel quel.

Enregistrez et fermez le fichier. Redémarrez ensuite le service shadowsocks-libev pour que les modifications prennent effet.

sudo systemctl restart shadowsocks-libev.service

Activer le démarrage automatique au démarrage.

sudo systemctl enable shadowsocks-libev.service

Vérifiez son état. Assurez-vous qu'il est en cours d'exécution.

systemctl status shadowsocks-libev.service

Si vous voyez l'erreur suivante.

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.

Vous pouvez corriger cette erreur en installant rng-tools .

sudo apt-get install rng-tools

Puis lancez

sudo rngd -r /dev/urandom

Vous pouvez maintenant démarrer le service Shadowsocks-libev.

Étape 2 :Configurer le pare-feu

Si vous utilisez le pare-feu iptables sur votre serveur, vous devez autoriser le trafic vers le port TCP et UDP sur lequel Shadowsocks écoute. Par exemple, si le port 8888 est utilisé par Shadowsocks, exécutez la commande suivante :

sudo iptables -I INPUT -p tcp --dport 8888 -j ACCEPT

sudo iptables -I INPUT -p udp --dport 8888 -j ACCEPT

Si vous utilisez un pare-feu UFW, exécutez les commandes suivantes :

sudo ufw allow 8888

Si vous utilisez AWS ou Google Cloud, vous devez configurer le pare-feu sur le panneau de configuration Web.

Étape 3 :Installer et configurer le client Shadowsocks-libev

Bureau Ubuntu

Le shadowsocks-libev package contient à la fois le logiciel serveur et le logiciel client. Sur le bureau Ubuntu 20.04, 18.04, exécutez les commandes suivantes pour installer Shadowsocks-libev.

sudo apt update

sudo apt install shadowsocks-libev

Sur le bureau Ubuntu 16.04, exécutez les commandes suivantes pour installer Shadowsocks-libev.

sudo add-apt-repository ppa:max-c-lv/shadowsocks-libev -y

sudo apt update

sudo apt install shadowsocks-libev

Shadowsocks-libev (le serveur) démarrera automatiquement après avoir été installé. Vous devez arrêter le serveur Shadowsocks sur le bureau Ubuntu.

sudo systemctl stop shadowsocks-libev

Désactivez également le démarrage automatique au démarrage.

sudo systemctl disable shadowsocks-libev

Le binaire client Shadowsocks est nommé ss-local . Il existe un modèle d'unité de service systemd : /lib/systemd/system/[email protected] . Avant de démarrer le client, nous devons créer le fichier de configuration côté client. Nous pouvons copier la configuration du serveur Shadowsocks-libev dans le fichier de configuration du client.

sudo cp /etc/shadowsocks-libev/config.json /etc/shadowsocks-libev/location-of-your-server.json

Vous pouvez remplacer location-of-your-server avec quelque chose comme SFO, LAX. Modifiez ensuite le fichier de configuration du client.

sudo nano /etc/shadowsocks-libev/location-of-your-server.json

Remplacez l'adresse du serveur par l'adresse IP publique de votre serveur et ajoutez la ligne suivante pour dire au client d'écouter sur 127.0.0.1.

"local_address":"127.0.0.1",

Ainsi, le fichier de configuration du client ressemblera à ceci :

{
 "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"
}

Enregistrez et fermez le fichier. Ensuite, nous pouvons démarrer le client avec :

sudo systemctl start [email protected]location-of-your-server.service

Et activez le démarrage automatique au démarrage.

sudo systemctl enable [email protected]location-of-your-server.service

Vérifiez son état. Assurez-vous qu'il est en cours d'exécution.

systemctl status [email protected]location-of-your-server.service

Maintenant, le processus ss-local écoute sur 127.0.0.1:1080 sur votre bureau Ubuntu et il est connecté à votre serveur Shadowsocks.

Bureau Windows

Les utilisateurs Windows peuvent télécharger ce client Shadowsocks. Une fois installé, vous pouvez ajouter un nouveau serveur dans le logiciel client. Spécifiez l'adresse IP, le port et le mot de passe du serveur. Cliquez sur Apply bouton

Si vous avez plusieurs serveurs proxy, vous pouvez cliquer sur le bouton Add bouton pour ajouter plus de serveurs proxy. Notez que vous n'utilisez qu'un seul serveur proxy à la fois.

Étape 4 :Configurer le navigateur Web pour utiliser le proxy Socks

Pour que votre programme utilise un proxy chaussettes, le programme doit prendre en charge le proxy chaussettes. Des programmes comme Firefox, Google Chrome et Dropbox permettent aux utilisateurs d'utiliser un proxy. Je vais vous montrer comment configurer Firefox et Google Chrome.

Firefox

Dans Firefox, allez dans Modifier> Préférences> Général (ou Outils -> Options -> Général ). Ensuite, faites défiler vers le bas et cliquez sur Paramètres dans Proxy réseau . Dans les Paramètres de connexion fenêtre, sélectionnez configuration manuelle du proxy . Sélectionnez ensuite SOCKS v5 car Shadowsocks est un proxy Socks5. Saisissez 127.0.0.1 dans le champ Hôte SOCKS et 1080 dans le domaine portuaire. Assurez-vous que Proxy DNS lors de l'utilisation de SOCKS v5 est autorisé. Cliquez sur OK pour appliquer ces modifications.

Google Chrome

Bien que vous puissiez configurer le proxy pour Google Chrome et le navigateur Chromium à partir de la ligne de commande, je vous recommande d'installer l'extension Proxy SwitchyOmega pour gérer les proxys.

Une fois l'extension installée dans Google Chrome, configurez un serveur proxy comme suit :

  • Choisir le SOCKS5 protocole.
  • Définir 127.0.0.1 comme adresse de serveur.
  • Définir 1080 comme numéro de port.

Appliquez les modifications. Cliquez ensuite sur l'icône des extensions dans le coin supérieur droit et cliquez sur Proxy SwithyOmega .

Par défaut, SwithyOmega utilise les paramètres proxy du système d'exploitation. Nous devons le changer de system proxy à proxy .

Votre proxy devrait maintenant fonctionner.

Étape 5 :Test de fuite DNS

Allez sur dnsleaktest.com. Vous verrez l'adresse IP de votre serveur Shadowsocks, ce qui indique que votre proxy fonctionne.

Cliquez sur le test standard. Assurez-vous que votre FAI local ne figure pas dans les résultats du test.

Proxy en ligne de commande

Pour laisser vos programmes en ligne de commande utiliser le proxy, vous pouvez installer tsocks .

sudo apt install tsocks

Modifiez ensuite le fichier de configuration.

sudo nano /etc/tsocks.conf

Recherchez la ligne suivante :

server = 192.168.0.1

Changez-le en

server = 127.0.0.1

Enregistrez et fermez le fichier. Vous pouvez maintenant autoriser votre programme en ligne de commande à utiliser le proxy Shadowsocks comme ceci :

sudo tsocks apt update

Il existe également un programme similaire appelé proxychains.

Activer l'ouverture rapide TCP

Vous pouvez accélérer Shadowsocks en activant l'ouverture rapide TCP. TCP est un protocole orienté connexion, ce qui signifie que les données ne peuvent être échangées qu'après l'établissement d'une connexion, ce qui se fait via la poignée de main à trois voies. En d'autres termes, traditionnellement, les données ne peuvent être échangées qu'une fois la poignée de main à trois voies terminée. L'ouverture rapide TCP (TFO) est un mécanisme qui permet d'échanger des données avant la fin de la négociation à trois voies, ce qui permet d'économiser jusqu'à 1 temps d'aller-retour (RTT).

La prise en charge de l'ouverture rapide TCP est fusionnée avec le noyau Linux depuis la version 3.7 et activée par défaut depuis la version 3.13. Vous pouvez vérifier la version de votre noyau en exécutant :

uname -r

Pour vérifier la configuration d'ouverture rapide TCP sur votre serveur Ubuntu, exécutez

cat /proc/sys/net/ipv4/tcp_fastopen

Il peut renvoyer 4 valeurs.

  • 0 signifie désactivé.
  • 1 signifie qu'il est activé pour la connexion sortante (en tant que client).
  • 2 signifie qu'il est activé pour les connexions entrantes (en tant que serveur).
  • 3 signifie qu'il est activé pour les connexions sortantes et entrantes.

Tous mes VPS Ubuntu (Virtual Private Server) ont renvoyé 1 après avoir exécuté la commande ci-dessus. Nous voulons que tcp_fastopen soit défini sur 3 sur notre serveur. Pour y parvenir, nous pouvons modifier le fichier de configuration sysctl.

sudo nano /etc/sysctl.conf

Collez ensuite la ligne suivante à la fin du fichier.

net.ipv4.tcp_fastopen=3

Rechargez les paramètres sysctl pour que la modification prenne effet.

sudo sysctl -p

Ensuite, vous devrez également activer l'ouverture rapide TCP dans le fichier de configuration de Shadowsocks.

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

Ajoutez la ligne suivante.

"fast_open": true

Ainsi, votre fichier de configuration du serveur Shadowsocks ressemblera à ceci :

{
 "server":"your-server-ip-address",
 "server_port":8388,
 "local_port":1080,
 "password":"focobguph",
 "timeout":60,
 "method":"chacha20-ietf-poly1305",
 "fast_open": true
}

Notez que la dernière ligne de configuration n'a pas de virgule. Enregistrez et fermez le fichier. Redémarrez ensuite le serveur Shadowsocks.

sudo systemctl restart shadowsocks-libev

Vérifiez s'il est en cours d'exécution. (Une erreur dans le fichier de configuration peut l'empêcher de redémarrer.)

systemctl status shadowsocks-libev

Vous devez également modifier le fichier de configuration du client Shadowsocks et le redémarrer pour activer l'ouverture rapide TCP sur le bureau Ubuntu.

Activer TCP BBR

TCP BBR est un algorithme de contrôle de congestion TCP qui peut considérablement améliorer la vitesse de connexion. Consultez le didacticiel suivant.

  • Comment augmenter facilement les performances du réseau Ubuntu en activant TCP BBR

Pour plus d'utilisation sur Shadowsocks, consultez le manuel.

man shadowsocks-libev

Dépannage

De temps en temps, mon proxy Shadowsocks-libev cesse de fonctionner et l'erreur suivante s'affiche côté serveur lorsque je vérifie l'état avec systemctl .

ERROR: server recv: Connection reset by peer

Côté client, l'erreur renvoyée par systemctl est :

ERROR: remote_recv_cb_recv: Connection reset by peer

Je ne sais pas pourquoi cela se produit, mais redémarrer le shadowsocks-libev service sur le serveur peut résoudre ce problème.

sudo systemctl restart shadowsocks-libev

Je ne veux pas redémarrer manuellement le service à chaque fois, j'ajoute donc une tâche cron pour le faire pour moi périodiquement.

sudo crontab -e

Mettez la ligne suivante à la fin du fichier.

0 */3 * * * /bin/systemctl restart shadowsocks-libev

Cela redémarrera le service toutes les 3 heures. C'est-à-dire que le redémarrage a lieu à 00h00, 3h00, 6h00, 9h00 et ainsi de suite. Notez que le temps est déterminé par cron. Il n'est pas déterminé en calculant la durée d'exécution du service.

Si vous voyez l'erreur suivante dans le journal Shadowsocks-libev.

ERROR: unable to resolve www.youtube.com

Cela signifie que le serveur Shadowsocks-libev ne peut pas résoudre correctement le DNS. Il est utile de spécifier un serveur DNS dans le /etc/shadowsocks-libev/config.json dossier. Ajoutez simplement la ligne suivante dans le fichier et redémarrez le service shadowsocks-libev.

"name_server":"1.1.1.1",

Si vous avez votre propre résolveur DNS exécuté sur le serveur Shadowsocks, vous pouvez spécifier 127.0.0.1 comme serveur de noms.

"name_server":"127.0.0.1",

N'oubliez pas que dans le fichier JSON, la dernière ligne ne se termine pas par une virgule.

C'est ça! J'espère que ce tutoriel vous a aidé à installer le proxy Shadowsocks-libev sur Ubuntu. Comme toujours, si vous avez trouvé cet article utile, abonnez-vous à notre newsletter gratuite pour obtenir plus de trucs et astuces 🙂


Ubuntu
  1. Comment configurer un serveur Ubuntu/Debian LAMP

  2. Comment configurer Nginx en tant que proxy inverse sur Ubuntu 20.04

  3. Comment configurer WireGuard sur Ubuntu 22.04

  4. Comment installer Ansible sur Ubuntu Server 21.04

  5. Comment configurer un serveur TeamSpeak sur Ubuntu 16.04

Comment configurer le serveur d'impression CUPS sur Ubuntu 20.04

Comment installer le serveur SSH sur Ubuntu 22.04

Comment installer Webmin sur les serveurs Ubuntu 18.04 et Ubuntu 16.04

Comment configurer un serveur Apt-cacher ?

Comment installer le serveur proxy Squid sur Ubuntu 18.04

Comment installer le serveur Minecraft sur Ubuntu 20.04