Comment router les outils CLI Linux via les proxys SOCKS5 de ProxyScrape
Faites passer curl, wget, git, proxychains et Python par les points de terminaison HTTP et SOCKS5 de ProxyScrape sous Linux, avec une gestion sécurisée des identifiants et une configuration SOCKS5h sans fuite DNS.
Aperçu
Sous Linux, la plupart des outils ne lisent pas un unique paramètre proxy global — chaque programme consulte son propre fichier de configuration ou les variables d'environnement http_proxy, https_proxy et all_proxy. ProxyScrape prend en charge HTTP et SOCKS5, et ce guide montre comment diriger les outils en ligne de commande courants vers votre point de terminaison.
Préférez SOCKS5 avec le schéma socks5h lorsque vous voulez que les résolutions DNS se fassent au niveau du proxy plutôt que localement. Cela évite les fuites DNS et prévient les échecs lorsqu'une cible utilise des noms que votre résolveur local ne peut pas voir.
Étapes
-
Récupérez le point de terminaison. Dans le tableau de bord ProxyScrape, notez l'hôte, le port HTTP, le port SOCKS5, ainsi que votre nom d'utilisateur et votre mot de passe.
-
Exportez les identifiants pour votre session shell. Évitez de saisir les mots de passe directement dans les commandes, où ils finissent dans l'historique du shell :
read -rsp "ProxyScrape username: " PS_USER && echo read -rsp "ProxyScrape password: " PS_PASS && echo export PS_HOST="your-host" export PS_HTTP_PORT="your-http-port" export PS_SOCKS_PORT="your-socks5-port" -
Testez le proxy HTTP avec curl.
curl -x "http://$PS_USER:$PS_PASS@$PS_HOST:$PS_HTTP_PORT" https://ipinfo.io/ip -
Testez SOCKS5.
--socks5-hostnamerésout le DNS via le proxy. L'authentification par nom d'utilisateur/mot de passe SOCKS5 nécessite curl 7.51.0 ou une version plus récente :curl --socks5-hostname "$PS_HOST:$PS_SOCKS_PORT" -U "$PS_USER:$PS_PASS" https://ipinfo.io/ip -
Définissez les variables d'environnement pour les outils qui les respectent.
export http_proxy="http://$PS_USER:$PS_PASS@$PS_HOST:$PS_HTTP_PORT" export https_proxy="$http_proxy" export no_proxy="localhost,127.0.0.1,.local"Pour SOCKS5, utilisez
export all_proxy="socks5h://$PS_USER:$PS_PASS@$PS_HOST:$PS_SOCKS_PORT". Tous les programmes ne prennent pas en chargeall_proxy; vérifiez aveccurl -vou la documentation de l'outil concerné. -
Configurez wget. wget ne prend pas en charge les proxys SOCKS, utilisez donc le port HTTP dans
~/.wgetrc:use_proxy = yes http_proxy = http://USER:PASS@HOST:PORT https_proxy = http://USER:PASS@HOST:PORTRestreignez ensuite l'accès avec
chmod 600 ~/.wgetrc. -
Routez des binaires arbitraires avec proxychains-ng. Installez
proxychains-nget ajoutez votre point de terminaison àproxychains.conf:socks5 HOST PORT USER PASSproxychains-ng accepte des champs nom d'utilisateur et mot de passe facultatifs après le port ; si votre version les rejette, consultez la documentation de votre distribution pour cette version. Ensuite, préfixez n'importe quelle commande :
proxychains4 curl https://ipinfo.io/ip -
Utilisez-le depuis Python.
import os, requests url = f"http://{os.environ['PS_USER']}:{os.environ['PS_PASS']}@{os.environ['PS_HOST']}:{os.environ['PS_HTTP_PORT']}" proxies = {"http": url, "https": url} print(requests.get("https://ipinfo.io/ip", proxies=proxies, timeout=15).text)Installez
requests[socks]si vous préférez le port SOCKS5. -
Gardez les secrets hors des fichiers en clair. Préférez les variables d'environnement ou
~/.netrcavecchmod 600, et rappelez-vous que les identifiants transmis directement sur une ligne de commande peuvent être visibles par d'autres utilisateurs viaps aux.