Como usar o Proxyscrape Proxies com o Docker

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

Certos casos de uso exigem que você proxy tráfego em programas que não suportam nativamente proxies. 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 o proxies para contêineres do Docker usando o contêiner do Docker xjasonlyu/tun2socks.
O tun2socks é uma ferramenta de tunelamento de rede leve e portátil que permite rotear o tráfego por meio de um servidor proxy . Ele é escrito em Go e está disponível como um executável autônomo ou como um contêiner do Docker.
Neste guia, vou me concentrar em como usá-lo com o Docker, para que você possa conectar qualquer outro contêiner do Docker a ele e fazê-lo usar o proxies.

Primeiro, precisamos criar um contêiner inicial do Docker 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, já que o contêiner tun2socks não lida com o DNS por padrão e só faz o proxy por conta própria.
  • PROXY é onde você define o Proxy que deseja usar, que pode ser http/https e socks4/5. Há uma lista detalhada aqui:
  • -v '/dev/net/tun:/dev/net/tun' Monta o dispositivo de rede virtual da máquina host (/dev/net/tun) no contêiner, permitindo que o tun2socks manipule o tráfego de rede.
  • --cap-add=NET_ADMIN Concede ao contêiner os recursos de administração de rede necessários 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á funcionando corretamente, você pode usar um contêiner de teste que criei para retornar dados de localização do IPinfo.

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

Como você pode ver, agora podemos proxy praticamente qualquer coisa por meio do proxies, mesmo quando não há suporte nativo.
É claro que você pode usar o proxies rotativo ao criar o contêiner inicial, mas também pode criar vários contêineres 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 você pode usar o proxies em conjunto com praticamente qualquer contêiner do Docker, mesmo aqueles sem suporte integrado ao proxy . Isso pode aprimorar os recursos dos seus aplicativos em contêineres, permitindo a execução de tarefas que poderiam ser difíceis ou impossíveis sem esse nível de controle de rede.

Obrigado pela leitura e espero que você tenha aprendido alguma coisa!

Este artigo foi escrito por Benji, um usuário de ProxyScrape .