Come utilizzare i proxy di Proxyscrape con Docker

Guide, Come fare, Jul-07-20245 minuti di lettura

Alcuni casi d'uso richiedono il proxy del traffico in programmi che non supportano nativamente i proxy. Nel blog precedente si è parlato di come questo sia possibile su Windows, ma ci sono anche molti casi d'uso per i proxy su Linux o persino sui container Docker per una maggiore flessibilità.

In questo post discuteremo di come usare i proxy per i contenitori Docker usando il contenitore Docker xjasonlyu/tun2socks.
tun2socks è uno strumento di tunneling di rete leggero e portatile che consente di instradare il traffico attraverso un server proxy. È scritto in Go ed è disponibile come eseguibile standalone o come contenitore Docker.
In questa guida, mi concentrerò su come usarlo con Docker, in modo da potervi collegare qualsiasi altro contenitore Docker e fargli usare i proxy.

Per prima cosa, dobbiamo creare un contenitore Docker iniziale che si occuperà del 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 è necessario per il corretto funzionamento del DNS, poiché il contenitore tun2socks non gestisce il DNS per impostazione predefinita e si occupa solo del proxying.
  • PROXY è il punto in cui si imposta il Proxy che si desidera utilizzare, che può essere http/https e socks4/5. Un elenco dettagliato è disponibile qui:
  • -v '/dev/net/tun:/dev/net/tun' Monta il dispositivo di rete virtuale della macchina host (/dev/net/tun) nel contenitore, permettendo a tun2socks di manipolare il traffico di rete.
  • --cap-add=NET_ADMIN Conferisce al contenitore le capacità di amministrazione della rete necessarie per stabilire il tunnel proxy, dandogli accesso allo stack di rete.

In this example, I am using Proxyscrape residential proxies, but you can also use premium proxies or any other proxies as well.
Now that we have created the container that does the proxying, we can use any container we want to use this container’s network by just adding the --network=container:tun2socks flag.

Per verificare che tutto funzioni correttamente, si può usare un contenitore di prova che ho costruito per restituire i dati di localizzazione di IPinfo.

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

Come si può vedere, ora siamo in grado di fare il proxy di qualsiasi cosa attraverso i proxy, anche quando non è supportata in modo nativo.
Naturalmente, si possono usare i proxy a rotazione quando si crea il contenitore iniziale, ma si possono anche creare più contenitori tun2socks, tutti con sessioni appiccicose, se è necessario.

Questo approccio al proxy in Docker apre un mondo di possibilità. È ora possibile utilizzare i proxy praticamente con qualsiasi contenitore Docker, anche quelli senza supporto proxy integrato. Questo può migliorare le capacità delle applicazioni containerizzate, consentendo di eseguire operazioni che sarebbero state difficili o impossibili senza questo livello di controllo della rete.

Grazie per aver letto e spero che abbiate imparato qualcosa!

Questo articolo è stato scritto da Benji, un utente di ProxyScrape .