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.

Neste exemplo, estou usando o Proxyscrape residencial proxies, mas você também pode usar o proxies premium ou qualquer outro proxies .
Agora que criamos o contêiner que faz o proxy, podemos usar qualquer contêiner que quisermos para usar a rede desse contêiner, bastando adicionar o sinalizador --network=container:tun2socks.

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 .