Estou definindo o proxy nas configurações de APN da minha rede móvel na imagem mostrada abaixo:

Funciona bem. Eu verifiquei via whatismyip. No entanto, quando eu habilito o hotspot no dispositivo e uso este hotspot em outro dispositivo e verifico o IP a partir dele, ele mostra o IP do meu provedor de serviço móvel original e não o IP do proxy.

Por que tal comportamento se o hotspot deve usar a rede móvel e o proxy está definido no APN para isso? Como posso fazer o proxy funcionar no dispositivo usando hotspot também?

Nota: Eu não quero definir o proxy na configuração avançada em outra opção de dispositivo wi-fi ao escolher este ponto de acesso. O aplicativo que estou tentando usar detecta proxy definido em wi-fi, portanto, esta é minha única opção.

Resposta

Sua pergunta é relacionado à compreensão do modelo OSI . Os proxies usam o protocolo http / https ou socks, presumo que você esteja falando sobre http que é um protocolo Application Layer (L7) no modelo OSI. Quando um aplicativo gera http mensagem, é entregue à camada inferior. No caso de https, a mensagem é criptografada por SSL / TLS que são protocolos L6. Em L4, a mensagem obtém um cabeçalho TCP e, em seguida, em L3 é convertida em um pacote IP. Este pacote passa pela filtragem de NAT e firewalls em L3 e, finalmente, por RRM / PDCP / RLC (se estiver usando dados móveis), MAC e roteamento de kernel em L2. Em L1, é transmitido por Wi-Fi como 802.11 quadros ou sinais CDMA / TDMA / FDMA por dados móveis.

O hotspot, por outro lado, é baseado principalmente em 2 ferramentas de espaço de usuário; hostapd – que cria ponto de acesso Wi-Fi no OSI L2 – e dnsmasq (até Android 9) – que funciona como servidor DHCP / DNS no OSI L7. Se o host conectado estiver usando o telefone como servidor DNS (conforme configurado pelo DHCP), o telefone recebe consultas DNS e as encaminha recursivamente como pacotes UDP / IP para o servidor DNS upstream na internet (qualquer que seja dnsmasq está configurado para usar). O resto do tráfego proveniente da rede de ponto de acesso é NAT e roteado em L3 / L2.

Portanto, você não vê nenhum dos (pacotes IP) o tráfego proveniente de hosts conectados passa pela http pilha no telefone Android, portanto, não é encaminhado para o servidor proxy. É responsabilidade de aplicativos como navegadores da Web fazer http(s) conexões com o servidor proxy, não diretas para um host remoto, como um servidor web. Não é possível criar um ponto de acesso que pode ser configurado para usar http proxy no OSI L7. As configurações de proxy (host / porta) que definimos para Wi-Fi ou APN ou globalmente são apenas encaminhado para aplicativos, cada aplicativo precisa criar uma conexão proxy por conta própria ou simplesmente ignorar as informações de proxy. Você precisa fornecer esses detalhes de proxy para aplicativos em cada host conectado por ponto de acesso. Consulte a pergunta no link abaixo para obter mais detalhes.

No entanto, é possível redirecionar à força todo o tráfego para um servidor proxy usando NAT / REDIRECT / TPROXY do kernel Linux / Android (em L3) e a tabela de roteamento (em L2). É assim que os proxifiers funcionam , mas existem limitações . Os clientes de e-mail usam protocolos IMAP / POP3 / SMTP (L6 / 7) que não funcionam com o método http GET, mas requerem http CONNECT proxies. O último pode encaminhar apenas o tráfego TCP, para UDP, pelo menos, o proxy SOCKS5 é necessário para operar em L5. DNS e principalmente jogos e aplicativos de chamada de voz geram tráfego UDP, portanto, não funcionarão com http proxies em tudo. ping utilitário – por exemplo – usa ICMP (em L3) que não pode “ser encapsulado em TCP ou UDP, então não funcionará com SOCKS5 também.

Portanto, “não é possível, no verdadeiro sentido, redirecionar todo o tráfego para um remoto (proxy ) servidor sem usar uma solução L2 / 3 como VPN. Para obter mais detalhes, consulte Como definir o proxy HTTPS Wi-Fi, não HTTP, por meio do shell adb?


Por que tal comportamento se o ponto de acesso deve usar a rede móvel e o proxy está definido no APN para isso?

O hotspot deve usar a rede móvel, os aplicativos devem usar o proxy. O proxy que você configurou no APN não é aplicado em todo o sistema.

Não quero definir o proxy na configuração avançada na opção WiFi de outro dispositivo ao escolher este ponto de acesso.

Infelizmente, este é o mais simples Dessa forma, outros métodos requerem enraizamento e / ou uso de aplicativos de terceiros (para criar VPN). Veja a pergunta vinculada acima sobre como aplicar o proxy de forma transparente.

Resposta

O motivo de você estar vendo os sintomas é porque quando você liga o ponto de acesso, pense nisso como ligar o telefone em um roteador. Portanto, nenhuma configuração de rede no ponto de acesso irá alterar o endereço IP individual dos dispositivos. Quando você se conecta ao seu hotspot, ele se conecta pelo IP do dispositivo e não quando é alterado nas configurações de rede, pois as configurações de rede alteradas são as últimas na hierarquia das coisas. Eu acredito que se você pesquisar no Google, existem aplicativos que irão falsificar o endereço IP de seus dispositivos essencialmente o mesmo conceito de um proxy, apenas indetectável. > mas, em última análise, a solicitação enviada por meio da minha conexão móvel deve passar por esse APN e deve seguir esse proxy certo? ocorre quando eu o uso no mesmo dispositivo, mesmo quando o ponto de acesso está ativado. Como você disse, é a última hierarquia das coisas, então depois que a conexão é feita via hotspot, ele deve passar por aquele proxy nas configurações de conexão móvel depois disso

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *