usando seu telefone Android como um servidor proxy


10

Eu queria usar meu telefone Android como um servidor proxy, o que significa que queria poder usar o IP no telefone como proxy, para que todas as solicitações e respostas sejam recebidas no telefone e encaminhadas ao solicitante original. Como eu faço isso?

Respostas:


6

Servidores Ultimate é um aplicativo avançado para transformar seu telefone em um servidor. Pelo mesmo desenvolvedor, o Proxy Server oferece uma abordagem mais básica e unicamente "Proxy Server based". Conforme declarado em sua descrição:

Execute seu próprio servidor proxy no seu dispositivo! O aplicativo pode lidar com protocolos HTTP e HTTPS e solicitações GET / POST. Você pode até configurar o aplicativo para encaminhar todas as conexões a um host e porta padrão, para que você possa usar outros protocolos também através do soquete!

Mais tarde, eles adicionam

Para mais servidores e recursos, dê uma olhada no nosso aplicativo Servers Ultimate

Para obter mais informações sobre o Servers Ultimate, consulte este artigo no LifeHacker , este artigo no XDA e os aplicativos do próprio segmento XDA .


I "m tentando configurá-lo de uma forma que eu ligar para o servidor proxy usando o IP Wi-Fi, e todas as conexões de saída seria usar a conexão de dados não é possível.?
— Arya

Hey @Arya, você descobriu como fazer isso?
— Nick Carraway

@Arya, veja a minha resposta usando adb
— nick Carraway

5

Se você está apenas interessado em configurar um proxy em seu Wifi, pode fazer isso com o Servers Ultimate com bastante facilidade, mas não sei por que alguém realmente gostaria de fazer isso. Uma opção muito mais útil é usar dados móveis, mas como o @Kevin disse, você sofrerá muitas dores de cabeça, principalmente no nível do ISP (Verizon, AT&T, etc.). Provavelmente, você não fará com que eles alterem a política de NAT para você.

É difícil usar seus dados móveis como proxy porque todas as conexões de entrada estão bloqueadas. Mas, se você possui um laptop conectado ao wifi e seu telefone conectado ao laptop via adb, uma opção é executar um comando como este:

adb forward tcp:6400 tcp:8080

Este comando encaminha todas as conexões TCP enviadas à porta 6400 do seu host (laptop) para a porta 8080 do seu telefone. Em seguida, configure um servidor proxy no seu Servers Ultimate App em execução na porta 8080. Nenhuma raiz é necessária!

Agora, todas as solicitações do seu laptop pela porta 6400 serão encaminhadas para os seus dados móveis! Teste isso abrindo o firefox, acessando Configurações, Redes e usando 127.0.0.1 e porta 6400 como proxy. Você pode abrir seu roteador para acessar através de wifi público usando essa porta, embora eu recomende a configuração de algum tipo de política de segurança.

Existem vários tutoriais para habilitar opções de desenvolvedor e adb no seu laptop, é fácil.


Isso poderia realmente funcionar :) Vou tentar hoje #
— 267 Arya

Funciona! impressionante!
— Arya

Isso criaria um servidor SOCKS, certo? se alguém quisesse um servidor proxy HTTP, teria que usar algo como Polipo para converter SOCKS em proxy HTTP?
— Arya

If you're just interested in setting a proxy up over your Wifi, you can do that with Servers Ultimate quite easily, but I don't know why anyone would really want to do that. A much more useful option is to use mobile data, Você concorda que a configuração de um proxy por 4G (em vez de por WiFi) não é possível com o Servers Ultimate? (Eu pergunto, porque eu poderia configurar um proxy através de 4G e gostaria de saber se é possível)
— hartmut

Super. Obrigado.
— Kiran

1

Eu tive alguns problemas para fazer o servidor proxy do Servers Ultimate funcionar, e meu primeiro pensamento é que é porque meu telefone não está enraizado. No entanto, o problema aqui não é necessariamente no nível do SO, dependendo do seu caso de uso.

Se você estiver tentando usar sua conexão de dados móveis como proxy, poderá ter alguns problemas, porque a maioria dos provedores de dados móveis bloqueará as portas que você normalmente usaria para configurar um proxy. Sua melhor aposta é entrar em contato com o provedor de dados móveis e verificar se eles têm portas abertas além do valor de 1024 (o Android bloqueia as portas abaixo desse número por motivos de segurança).

Como alternativa, você pode:

  • Use um servidor proxy no Wifi, mas verifique se a porta do proxy está aberta no seu roteador
  • Faça root no seu telefone para que você possa configurar o encaminhamento de porta para usar sua conexão de dados móveis
  • Faça root no telefone para poder usar valores de porta abaixo de 1024, que normalmente estão abertos.

Para perceber que é esse o caso, tente executar um servidor proxy Servers Ultimate no Wifi com a porta aberta. Você terá algo que funciona, mas se seu objetivo é usar dados móveis, você está sem sorte por enquanto.


0

Se o telefone estiver enraizado (ou pelo menos o carregador de inicialização estiver desbloqueado), você poderá executar o tinyproxy (proxy HTTP / HTTPS) como initserviço. Ele funciona com dados móveis e Wi-Fi; nesse último caso, você precisa garantir que seu telefone esteja acessível pela Internet. Consulte Como se conectar ao Android por SSH sobre IP público 3G / 4G?

  • Crie um diretório em /dataou /system:
    ~# mkdir -p /data/local/tinyproxy/tmp
    
  • Crie um arquivo de configuração:

    # /data/local/tinyproxy/tinyproxy.conf
    
    Port 8080
    Timeout 600
    LogFile "/tinyproxy.log"
    LogLevel Connect
    MaxClients 100
    MinSpareServers 5
    MaxSpareServers 20
    StartServers 5
    MaxRequestsPerChild 0
    ViaProxyName "tinyproxy"
    #BasicAuth <username> <password>
    

    Para mais opções de configuração, consulte a documentação .

  • Crie a tinyproxypartir da fonte ou tente esta . Mova o binário para /data/local/tinyproxy/e defina as permissões. Use AID_NOBODYou qualquer outro UID não utilizado para serviço:
    ~# cd /data/local/tinyproxy/
    ~# chown -R 9999.9999 .
    ~# chmod 0755 . tmp tinyproxy
    ~# chmod 0644 tinyproxy.conf
    
  • Adicione as seguintes linhas a /init.rcou a qualquer outro .rcarquivo:

    # /system/etc/init/tinyproxy.rc
    
    service tinyproxy /system/bin/chroot /data/local/tinyproxy /tinyproxy -d -c /tinyproxy.conf
        seclabel u:r:magisk:s0
        user 9999
        group 9999
        disabled
        capabilities NET_RAW NET_BIND_SERVICE SYS_CHROOT
    
    on property:sys.boot_completed=1
        start tinyproxy
    

Se estiver usando qualquer aplicativo de firewall, certifique-se de desbloquear a porta de entrada 8080. Reinicie o dispositivo. tinyproxyservidor deve estar executando com menos privilégios. Conecte-se local ou remotamente.


PS:

Se o telefone não estiver enraizado ou se você quiser colocar mais uma caixa de areia no servidor proxy, poderá corrigir a política do SELinux com as seguintes regras. Use a supolicyferramenta Magisk ou sepolicy-inject:

create tinyproxy
allow init tinyproxy process transition
allow init tinyproxy process { rlimitinh siginh noatsecure }
allow tinyproxy tinyproxy process { getsched fork }
allow tinyproxy toolbox_exec file { entrypoint read getattr execute }
allow tinyproxy tinyproxy dir { search write add_name remove_name }
allow tinyproxy tinyproxy lnk_file read
allow tinyproxy labeledfs filesystem associate
allow tinyproxy tinyproxy file { read open getattr create write append unlink execute execute_no_trans }
allow tinyproxy tinyproxy capability { sys_chroot net_raw }
allow tinyproxy tinyproxy unix_dgram_socket { create connect write }
allow tinyproxy tinyproxy tcp_socket { create connect accept read bind getattr write shutdown setopt listen }
allow tinyproxy port tcp_socket { name_connect name_bind }
allow tinyproxy node tcp_socket node_bind
allow tinyproxy tinyproxy udp_socket { create connect read getattr write bind }
allow tinyproxy node udp_socket node_bind
allow tinyproxy system_data_file file lock
allow tinyproxy tinyproxy file lock
  • Verifique se dmesghá avcnegações para definir mais regras necessárias.
  • Substitua seclabel u:r:magisk:s0em serviço por seclabel u:r:tinyproxy:s0.
  • Defina o contexto do SELinux:
    ~# chcon -R u:object_r:tinyproxy:s0 /data/local/tinyproxy
    

Agora o serviço também será executado sem Magisk.


RELACIONADOS:

O proxy SOCKS pode ser executado com SSH, consulte:

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.