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 questo esempio, sto usando i proxy residenziali Proxyscrape , ma si possono usare anche i proxy premium o qualsiasi altro tipo di proxy.
Ora che abbiamo creato il contenitore che esegue il proxing, possiamo usare qualsiasi contenitore che vogliamo per usare la rete di questo contenitore, aggiungendo semplicemente il flag --network=container:tun2socks.

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 .