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?

adit
fonte

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 .

SarpSTA
fonte
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.

nick carraway
fonte
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.

Kevin
fonte
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 dmesgavcnegaçõ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:

Irfan Latif
fonte