usando il tuo telefono Android come server proxy


10

Volevo utilizzare il mio telefono Android come server proxy, il che significa che volevo essere in grado di utilizzare l'IP sul telefono come proxy, quindi tutte le richieste e le risposte vengono ricevute sul telefono e inoltrate al richiedente originale. Come faccio a fare questo?

Risposte:


6

Server Ultimate è un'app avanzata per trasformare il tuo telefono in un server. Dallo stesso sviluppatore, Proxy Server offre un approccio più semplice ed esclusivamente "basato su proxy server". Come indicato nella sua descrizione:

Esegui il tuo server proxy sul tuo dispositivo! L'app può gestire protocolli HTTP e HTTPS e richieste GET / POST. Puoi anche impostare l'app per inoltrare tutte le connessioni a un host e una porta predefiniti in modo da poter utilizzare anche altri protocolli tramite il socket!

Più tardi aggiungono

Per altri server e funzionalità dai un'occhiata alla nostra app Server Ultimate

Per ulteriori informazioni su Servers Ultimate, consulta questo articolo su LifeHacker , questo articolo su XDA e il thread XDA delle app .


Sto provando a configurarlo in modo da collegarmi al server proxy utilizzando l'IP WiFi e tutte le connessioni in uscita utilizzerebbero la connessione dati. È possibile?
Arya,

Ehi @Arya, hai scoperto come farlo?
nick carraway

@Arya, controlla la mia risposta usando adb
nick carraway il

5

Se sei solo interessato a configurare un proxy sul tuo Wifi, puoi farlo con Server Ultimate abbastanza facilmente, ma non so perché qualcuno vorrebbe davvero farlo. Un'opzione molto più utile è quella di utilizzare i dati mobili, ma come ha detto @Kevin avrai un sacco di mal di testa, soprattutto a livello di ISP (Verizon, AT&T, ecc.). È probabile che non riuscirai a farli cambiare la loro politica NAT per te.

È difficile utilizzare i dati mobili come proxy perché tutte le connessioni in entrata sono bloccate. Ma se hai un laptop collegato al wifi e il tuo telefono è collegato al laptop tramite adb, un'opzione è quella di eseguire un comando come questo:

adb forward tcp:6400 tcp:8080

Questo comando inoltra tutte le connessioni TCP inviate alla porta 6400 dell'host (laptop) alla porta 8080 del telefono. Quindi, imposta un server proxy sulla tua app Server Ultimate in esecuzione sulla porta 8080. Non è richiesto il root!

Ora, qualsiasi richiesta al tuo laptop tramite la porta 6400 verrà inoltrata ai tuoi dati mobili! Prova questo aprendo firefox, andando su impostazioni, Reti e usando 127.0.0.1 e la porta 6400 come proxy. Puoi aprire il tuo router per accedere al wifi pubblico usando questa porta, anche se ti consiglio di impostare una sorta di politica di sicurezza.

Ci sono tonnellate di tutorial per abilitare le opzioni degli sviluppatori e adb sul tuo laptop, è facile.


Questo potrebbe effettivamente funzionare :) Lo proverò oggi
Arya il

Funziona! eccezionale!
Arya,

Ciò creerebbe un server SOCKS giusto? se uno volesse un server proxy HTTP, allora dovrebbe usare qualcosa come Polipo per convertire SOCKS in 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, Sei d'accordo sul fatto che la configurazione di un proxy su 4G (anziché su WiFi) non è possibile con Servers Ultimate? (Chiedo perché potrei impostare un proxy su 4G e vorrei sapere se è possibile)
hartmut,

Super. Grazie.
Kiran,

1

Ho avuto qualche problema a far funzionare il server proxy di Server Ultimate, e il mio primo pensiero è che è perché il mio telefono non è rootato. Tuttavia, il problema qui non è necessariamente a livello di sistema operativo, a seconda del caso d'uso.

Se stai tentando di utilizzare la connessione dati mobile come proxy, potresti avere dei problemi, poiché la maggior parte dei provider di dati mobili bloccherà tutte le porte che normalmente potresti utilizzare per configurare un proxy. La soluzione migliore è contattare il fornitore di dati mobili e vedere se hanno porte aperte oltre il valore di 1024 (Android blocca le porte al di sotto di questo numero per motivi di sicurezza).

In alternativa, puoi:

  • Utilizzare un server proxy su Wifi, ma assicurarsi che la porta proxy sia aperta nel router
  • Eseguire il root del telefono in modo da poter configurare il port forwarding per utilizzare la connessione dati mobile
  • Eseguire il root del telefono in modo da poter utilizzare i valori di porta al di sotto di 1024 che sono normalmente aperti.

Per rendertene conto, prova a eseguire un server proxy Ultimate Server su Wifi con la porta aperta. Avrai qualcosa che funzioni, ma se il tuo obiettivo è utilizzare i dati mobili, per ora non sei fortunato.


0

Se il tuo telefono è rootato (o almeno il bootloader è sbloccato), puoi eseguire tinyproxy (proxy HTTP / HTTPS) come initservizio. Funziona con Wi-Fi e dati mobili, in quest'ultimo caso devi assicurarti che il tuo telefono sia accessibile da internet. Vedi Come connettersi ad Android tramite SSH su IP pubblico 3G / 4G?

  • Crea una directory su /datao /system:
    ~# mkdir -p /data/local/tinyproxy/tmp
    
  • Crea file di configurazione:

    # /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>
    

    Per ulteriori opzioni di configurazione consultare la documentazione .

  • Costruisci tinyproxydalla fonte o potresti provare questo . Spostare binario su /data/local/tinyproxy/e impostare le autorizzazioni. Utilizzare AID_NOBODYo qualsiasi altro UID non utilizzato per il servizio:
    ~# cd /data/local/tinyproxy/
    ~# chown -R 9999.9999 .
    ~# chmod 0755 . tmp tinyproxy
    ~# chmod 0644 tinyproxy.conf
    
  • Aggiungi le seguenti righe /init.rco qualsiasi altro .rcfile:

    # /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 si utilizza un'app firewall, assicurarsi di sbloccare la porta in arrivo 8080. Riavvia il dispositivo. tinyproxyil server dovrebbe essere in esecuzione con i privilegi minimi. Connettiti localmente o da remoto.


PS:

Se il telefono non è rootato o si desidera eseguire ulteriormente il sandbox del server proxy, è possibile applicare una patch ai criteri SELinux con le seguenti regole. Usa lo supolicystrumento Magisk o 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
  • Controllare dmesgper avcsmentite di definire tutte le regole più richiesti.
  • Sostituire seclabel u:r:magisk:s0in servizio con seclabel u:r:tinyproxy:s0.
  • Imposta il contesto SELinux:
    ~# chcon -R u:object_r:tinyproxy:s0 /data/local/tinyproxy
    

Ora il servizio funzionerà anche senza Magisk.


RELAZIONATO:

Il proxy SOCKS può essere eseguito con SSH, vedere:

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.