Comment utiliser Proxyscrape proxys avec Docker

Guides, Comment faire, Jul-07-20245 minutes de lecture

Certains cas d'utilisation vous obligent à proxyer le trafic dans des programmes qui ne supportent pas nativement proxys. Le blog précédent expliquait comment cela était possible sous Windows, mais il existe également de nombreux cas d'utilisation pour proxys sous Linux ou même dans des conteneurs Docker pour plus de flexibilité.

Dans ce billet de blog, nous allons voir comment utiliser proxys pour les conteneurs Docker en utilisant le conteneur Docker xjasonlyu/tun2socks.
tun2socks est un outil de tunneling réseau léger et portable qui vous permet d'acheminer le trafic par le biais d'un serveur proxy. Il est écrit en Go et est disponible en tant qu'exécutable autonome ou en tant que conteneur Docker.
Dans ce guide, je me concentrerai sur la façon de l'utiliser avec Docker, de sorte que vous puissiez ensuite connecter n'importe quel autre conteneur Docker à celui-ci et lui faire utiliser proxys.

Tout d'abord, nous devons créer un conteneur Docker initial qui effectuera le proxying.

docker run -d --name tun2socks \
-e EXTRA_COMMANDS='echo "nameserver 1.1.1.1" > /etc/resolv.conf;ip rule add iif lo ipproto udp dport 53 lookup main;' \
-e PROXY=http://<user>:<pass>@rp.proxyscrape.com:6060 \
-v '/dev/net/tun:/dev/net/tun' --cap-add=NET_ADMIN \
xjasonlyu/tun2socks
  • EXTRA_COMMANDS est nécessaire pour que le DNS fonctionne correctement car le conteneur tun2socks ne gère pas le DNS par défaut et ne fait que le proxys lui-même.
  • PROXY est l'endroit où vous définissez le Proxy que vous voulez utiliser, cela peut être http/https et socks4/5. Une liste détaillée existe ici :
  • -v '/dev/net/tun:/dev/net/tun' Monte le périphérique réseau virtuel de la machine hôte (/dev/net/tun) dans le conteneur, ce qui permet à tun2socks de manipuler le trafic réseau.
  • --cap-add=NET_ADMIN Donne au conteneur les capacités d'administration réseau nécessaires pour établir le tunnel proxy en lui donnant accès à la pile réseau.

Dans cet exemple, j'utilise Proxyscrape residential proxys, mais vous pouvez également utiliser premium proxys ou tout autre proxys .
Maintenant que nous avons créé le conteneur qui fait le proxy, nous pouvons utiliser n'importe quel conteneur pour utiliser le réseau de ce conteneur en ajoutant simplement le drapeau --network=container:tun2socks.

Pour vérifier que tout fonctionne correctement, vous pouvez utiliser un conteneur de test que j'ai construit pour renvoyer les données de localisation IPinfo.

docker run --rm --network=container:tun2socks hibenji/checkip

Comme vous pouvez le voir, nous sommes maintenant capables de proxyer à peu près n'importe quoi à travers proxys, même quand ce n'est pas supporté nativement.
Bien sûr, vous pouvez utiliser proxys en rotation lors de la création du conteneur initial, mais vous pouvez également créer plusieurs conteneurs tun2socks, ayant tous des sessions collantes si cela est nécessaire également.

Cette approche du proxy dans Docker ouvre un monde de possibilités. Vous pouvez désormais utiliser proxys avec pratiquement tous les conteneurs Docker, même ceux qui n'ont pas de support proxy intégré. Cela peut améliorer les capacités de vos applications conteneurisées, en vous permettant d'effectuer des tâches qui auraient été difficiles ou impossibles sans ce niveau de contrôle du réseau.

Merci d'avoir lu, et j'espère que vous avez appris quelque chose !

Cet article a été rédigé par Benji, un utilisateur de ProxyScrape .