paint-brush
Como criar um proxy residencial pessoal para contornar as restrições geográficaspor@abhilashchowdhary
13,033 leituras
13,033 leituras

Como criar um proxy residencial pessoal para contornar as restrições geográficas

por Abhilash Chowdhary5m2023/01/28
Read on Terminal Reader

Muito longo; Para ler

Os proxies residenciais têm muitos aplicativos úteis, como web scraping, pesquisa online, ignorando restrições geográficas e navegação anônima. Mas eles podem ser caros, com alguns cobrando mais de US$ 100 por mês para acessar mais de 10 GB de dados. Descobri uma solução criando meu próprio proxy residencial em minha área de trabalho doméstica nos EUA usando VPN P2P.
featured image - Como criar um proxy residencial pessoal para contornar as restrições geográficas
Abhilash Chowdhary HackerNoon profile picture

Problema

Os proxies residenciais têm muitos aplicativos úteis, como web scraping, pesquisa online, ignorando restrições geográficas e navegação anônima. Mas eles podem ser caros, com alguns cobrando mais de US$ 100 por mês para acessar mais de 10 GB de dados.


No ano passado, quando viajei para a Índia e outras partes do Sudeste Asiático, queria uma maneira confiável que me permitisse acessar o conteúdo de vários serviços de assinatura, como Netflix e Amazon Prime, sem restrições geográficas. eu queria fazer isso enquanto


  1. Não ter que pagar mais de US$ 100 por mês pelo serviço de proxy VPN/residencial. Além disso, a Netflix ocasionalmente me bloqueava ao usar VPN.
  2. Não pagar um valor adicional por um IP estático para minha conexão doméstica com a Internet nos EUA.

Solução

Descobri uma solução criando meu próprio proxy residencial em minha área de trabalho doméstica nos EUA.


Ao configurar uma VPN ponto a ponto (P2P) e conectar meu laptop e desktop a ela, consegui rotear o tráfego do meu laptop na Índia para meu desktop nos EUA, que então encaminhou essas solicitações para www/public internet antes de retornar a resposta da minha rede doméstica.


Tudo isso sem ter que passar pelo incômodo de definir a configuração de encaminhamento de conexão no meu roteador doméstico.


O que é uma VPN P2P

Peer-to-peer (P2P) é um modelo de arquitetura para VPNs usado para criar um ambiente compartilhado seguro para os usuários. Uma VPN baseada em P2P difere do modelo hub-and-spoke padrão por não rotear todo o tráfego por meio de um servidor central, evitando o congestionamento. Isso melhora a segurança e permite um dimensionamento mais eficiente adicionando nós sem sobrecarregar a rede. Além disso, as conexões em uma VPN P2P utilizam o caminho mais rápido, reduzindo os atrasos.


Existem várias soluções VPN P2P de código aberto, freemium e pagas disponíveis. Tinc é uma das populares VPN de código aberto.


Como fica a configuração da rede?

A pilha de rede consiste nos seguintes componentes:


  1. Área de trabalho em casa (EUA)

  2. Meu laptop (fora dos EUA)

  3. Daemon VPN P2P em execução em ambas as máquinas por meio da mesma conta

  4. Servidor proxy Http em execução na área de trabalho


O diagrama abaixo descreve o fluxo de informações para recuperar uma página da Web pública do meu laptop fora dos EUA.

Fluxo de informações quando uma página da Web pública é recuperada do laptop fora dos EUA. 1. é a solicitação inicial e 4. é a resposta final


Eu queria uma VPN P2P que fosse fácil de configurar e requer configuração quase zero. Acabei usando o tailscale. As etapas abaixo são geralmente genéricas para qualquer VPN, mas você pode achar isso mais adequado se estiver usando o tailscale.

Etapas realizadas para configurar esta rede

  1. Configurando o cliente vpn no desktop e laptop :

    1. Baixe e instale o cliente VPN no desktop e laptop.

    2. Se estiver usando uma VPN de configuração zero, registre sua conta com vpn e faça login em ambas as máquinas com a mesma conta


  2. Configurando um servidor proxy HTTP de encaminhamento na área de trabalho :

    Você pode usar qualquer servidor proxy de código aberto. Usei https://github.com/abhinavsingh/proxy.py porque era fácil de configurar. Eu o executei em um contêiner docker. A imagem do docker para este proxy está disponível no docker hub. Para executá-lo em um contêiner docker, você pode executar este comando

     docker run -it -p 8899:8899 --rm abhinavsingh/proxy.py:latest


    No comando acima, o servidor proxy está escutando na porta 8899. Isso será útil quando especificarmos a url do servidor proxy nos aplicativos dentro do laptop


  3. Identifique o endereço IP do desktop na rede VPN : Depois de instalar e entrar em sua conta VPN, vamos descobrir o endereço IP do desktop que será usado pelo laptop para encaminhar suas solicitações http.


    Para isso, você pode listar os endereços IP de todas as interfaces de rede na área de trabalho. Em seguida, identifique o endereço IP de uma interface cujo nome comece com o nome do seu cliente VPN, no meu caso, começa com “tailscale”.


    Eu usei o comando ip no terminal da minha máquina linux para identificar o endereço ip

     $ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever …. 4: tailscale0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1280 qdisc fq_codel state UNKNOWN group default qlen 500 link/none inet 100.113.xxx.xx/32 scope global tailscale0 valid_lft forever preferred_lft forever …

    Aqui consegui encontrar o endereço IP da área de trabalho dentro da minha rede tailscale local na interface de rede tailscale0 : 100.113.xxx.xx


  4. Usando o endereço do servidor proxy no laptop para acessar a web pública:

    Agora que sabemos o endereço IP do desktop (vamos chamá-lo de $ip_desktop ) e o número da porta do servidor proxy http no desktop (vamos chamá-lo de $proxy_port ), podemos encaminhar todo o tráfego de rede do laptop por meio do endereço proxy http://$ip_desktop:$proxy_port .


    Por exemplo, você pode enviar uma solicitação curl para example.com do laptop via desktop como

     curl --proxy "http://$ip_desktop:$proxy_port" "https://example.com"


Usando o servidor proxy

As instruções acima demonstram como criar um servidor proxy residencial gratuito enquanto viaja usando um computador extra em casa. Agora você pode usar este endereço de proxy em seu laptop pessoal de qualquer uma das seguintes maneiras:


  1. Dentro do código do seu aplicativo dentro das bibliotecas do cliente http de sua estrutura/linguagem da web (solicitações em python, busca em javascript etc.)
  2. Para todas as solicitações da web do seu laptop. Dessa forma, você pode encaminhar qualquer tipo de solicitação http por meio do servidor proxy do desktop. No ubuntu, você pode fazer isso seguindo estas etapas https://help.ubuntu.com/stable/ubuntu-help/net-proxy.html.en
  3. Apenas no seu navegador. Embora o Chrome e o Firefox não forneçam uma maneira nativa de definir configurações de proxy http exclusivas para eles, você pode fazer isso por meio de extensões como https://github.com/foxyproxy/firefox-extension


Eu escolhi 2. e encaminhei todas as solicitações http do meu laptop para o desktop. Usei essa configuração por mais de dois meses sem nenhum tempo de inatividade perceptível.


Conclusão

Neste artigo, examinamos como configurar um proxy residencial pessoal usando


  1. VPN P2P
  2. Dois ou mais computadores pessoais


Dependendo da escolha da VPN, toda a configuração pode ser feita sem nenhum custo adicional, desde que você já possua vários computadores. Usando este proxy residencial, você pode acessar a Internet anonimamente, sem nenhuma restrição geográfica devido à sua localização física atual.