Como utilizar Proxyscrape Proxies com o Docker

Guias, Como fazer, Jul-07-20245 minutos de leitura

Certos casos de uso exigem que você faça proxy do tráfego em programas que não suportam proxies nativamente. O blog anterior discutiu como isso é possível no Windows, mas também há muitos casos de uso para proxies no Linux ou até mesmo em contêineres Docker para maior flexibilidade.

Nesta postagem do blog, discutiremos como usar proxies para contêineres Docker usando o contêiner Docker xjasonlyu/tun2socks.
tun2socks é uma ferramenta de tunelamento de rede leve e portátil que permite rotear o tráfego através de um servidor proxy. Ele é escrito em Go e está disponível como um executável autônomo ou como um contêiner Docker.
Neste guia, vou me concentrar em como usá-lo com o Docker, para que você possa conectar qualquer outro contêiner Docker a ele e fazê-lo usar proxies.

Primeiro, precisamos de criar um contentor Docker inicial que fará o proxy.

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 é necessário para que o DNS funcione corretamente, uma vez que o contentor tun2socks não lida com o DNS por defeito e só faz o proxy ele próprio.
  • PROXY é onde define o Proxy que pretende utilizar, que pode ser http/https e socks4/5. Existe uma lista detalhada aqui:
  • -v '/dev/net/tun:/dev/net/tun' Monta o dispositivo de rede virtual da máquina anfitriã (/dev/net/tun) no contentor, permitindo que o tun2socks manipule o tráfego de rede.
  • --cap-add=NET_ADMIN Concede ao contentor as capacidades de administração de rede necessárias para estabelecer o túnel proxy, dando-lhe acesso à pilha de rede.

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.

Para testar se tudo está a funcionar corretamente, pode utilizar um contentor de teste que criei para devolver dados de localização IPinfo.

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

Como pode ver, agora somos capazes de fazer proxy de praticamente tudo através de proxies, mesmo quando não é suportado nativamente.
Claro que pode usar proxies rotativos quando cria o contentor inicial, mas também pode fazer múltiplos contentores tun2socks, todos com sessões sticky se isso também for necessário.

Essa abordagem de proxy no Docker abre um mundo de possibilidades. Agora é possível usar proxies em conjunto com praticamente qualquer contêiner do Docker, mesmo aqueles sem suporte a proxy integrado. Isto pode melhorar as capacidades das suas aplicações em contentores, permitindo-lhe executar tarefas que poderiam ter sido difíceis ou impossíveis sem este nível de controlo de rede.

Obrigado por lerem e espero que tenham aprendido alguma coisa!

Este artigo foi escrito por Benji, um utilizador de ProxyScrape .