usando su teléfono Android como servidor proxy

10

Quería usar mi teléfono Android como servidor proxy, lo que significa que quería poder usar la IP en el teléfono como proxy, por lo que todas las solicitudes y respuestas se reciben en el teléfono y se reenvían al solicitante original. ¿Cómo hago esto?

adit
fuente

Respuestas:

6

Servers Ultimate es una aplicación avanzada para convertir su teléfono en un servidor. Por el mismo desarrollador, Proxy Server ofrece un enfoque más básico y únicamente "basado en Proxy Server". Como se indica en su descripción:

¡Ejecute su propio servidor proxy en su dispositivo! La aplicación puede manejar protocolos HTTP y HTTPS y solicitudes GET / POST. ¡Incluso puede configurar la aplicación para reenviar todas las conexiones a un host y puerto predeterminados para que pueda usar otros protocolos también a través del socket!

Luego agregan

Para obtener más servidores y funciones, eche un vistazo a nuestra aplicación Servidores Ultimate

Para obtener información adicional sobre Servers Ultimate, consulte este artículo sobre LifeHacker , este artículo sobre XDA y las aplicaciones propias de XDA .

SarpSTA
fuente
Estoy tratando de configurar esto de una manera que me conecte al servidor proxy usando el WiFi IP, y todas las conexiones salientes usarían la conexión de datos. ¿Es esto posible?
Arya
Hola @Arya, ¿descubriste cómo hacer eso?
nick carraway
@Arya, mira mi respuesta usando adb
nick carraway
5

Si solo está interesado en configurar un proxy a través de su Wifi, puede hacerlo con Servers Ultimate con bastante facilidad, pero no sé por qué alguien realmente querría hacerlo. Una opción mucho más útil es usar datos móviles, pero como dijo @Kevin, va a tener muchos dolores de cabeza, a saber, a nivel de ISP (Verizon, AT&T, etc.). Es probable que no consigas que cambien su política NAT por ti.

Es difícil usar sus datos móviles como proxy porque todas las conexiones entrantes están bloqueadas. Pero, si tiene una computadora portátil conectada a wifi y su teléfono está conectado a su computadora portátil a través de adb, una opción es ejecutar un comando como este:

adb forward tcp:6400 tcp:8080

Este comando reenvía todas las conexiones TCP enviadas al puerto 6400 de su host (computadora portátil) al puerto 8080 de su teléfono. A continuación, configure un servidor proxy en la aplicación Servers Ultimate que se ejecute en el puerto 8080. ¡No se requiere root!

Ahora, cualquier solicitud a su computadora portátil a través del puerto 6400 se enviará a sus datos móviles. Pruebe esto abriendo firefox, yendo a configuración, Redes y usando 127.0.0.1 y el puerto 6400 como proxy. Puede abrir su enrutador para acceder a través de wifi público utilizando este puerto, aunque le recomiendo configurar algún tipo de política de seguridad.

Hay toneladas de tutoriales para habilitar opciones de desarrollador y adb en su computadora portátil, es fácil.

nick carraway
fuente
Esto podría funcionar :) Lo intentaré hoy
Arya
¡Funciona! ¡increíble!
Arya
Esto crearía un servidor SOCKS ¿verdad? Si uno quisiera un servidor proxy HTTP, ¿tendría que usar algo como Polipo para convertir SOCKS a 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, ¿Acepta que la configuración de un proxy a través de 4G (en lugar de a través de WiFi) no es posible con Servers Ultimate? (Pregunto porque podría configurar un proxy sobre 4G y me gustaría saber si es posible)
hartmut
Súper. Gracias.
Kiran
1

Tuve algunos problemas para que el servidor proxy de Servers Ultimate funcionara, y mi primer pensamiento es que mi teléfono no está rooteado. Sin embargo, el problema aquí no es necesariamente a nivel del sistema operativo, dependiendo de su caso de uso.

Si está tratando de usar su conexión de datos móviles como proxy, es posible que tenga algunos problemas, ya que la mayoría de los proveedores de datos móviles bloquearán los puertos que normalmente podría usar para configurar un proxy. Su mejor opción es ponerse en contacto con el proveedor de datos móviles y ver si tienen puertos abiertos que superen el valor de 1024 (Android bloquea puertos por debajo de este número por razones de seguridad).

Alternativamente, puedes:

  • Use un servidor proxy en Wifi, pero asegúrese de que el puerto proxy esté abierto en su enrutador
  • Rootee su teléfono para que pueda configurar el reenvío de puertos para usar su conexión de datos móviles
  • Rootee su teléfono para que pueda usar valores de puerto por debajo de 1024 que generalmente están abiertos.

Para darse cuenta de que este es el caso, intente ejecutar un servidor proxy Servers Ultimate en Wifi con su puerto abierto. Tendrá algo que funciona, pero si su objetivo es utilizar datos móviles, no tiene suerte por el momento.

Kevin
fuente
0

Si su teléfono está rooteado (o al menos el gestor de arranque está desbloqueado), puede ejecutar tinyproxy (proxy HTTP / HTTPS) como initservicio. Funciona tanto con Wi-Fi como con datos móviles, en este último caso debe asegurarse de que su teléfono sea accesible desde internet. Vea ¿Cómo conectarse a Android a través de SSH sobre IP pública 3G / 4G?

  • Cree un directorio en /datao /system:
    ~# mkdir -p /data/local/tinyproxy/tmp
    
  • Crear archivo de configuración:

    # /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 más opciones de configuración, consulte la documentación .

  • Construir tinyproxydesde la fuente o puede probar este . Mover binario a /data/local/tinyproxy/y establecer permisos. Uso AID_NOBODYo cualquier otro UID no utilizado para el servicio:
    ~# cd /data/local/tinyproxy/
    ~# chown -R 9999.9999 .
    ~# chmod 0755 . tmp tinyproxy
    ~# chmod 0644 tinyproxy.conf
    
  • Agregue las siguientes líneas a /init.rccualquier otro .rcarchivo:

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

Si usa alguna aplicación de firewall, asegúrese de desbloquear el puerto entrante 8080. Reiniciar dispositivo. tinyproxyEl servidor debe ejecutarse con los menos privilegios. Conéctese local o remotamente.


PD:

Si el teléfono no está rooteado o si desea proteger aún más el servidor proxy, puede parchear la política de SELinux con las siguientes reglas. Use la supolicyherramienta 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
  • Compruebe dmesgpara avcnegaciones para definir las reglas más requeridos.
  • Reemplazar seclabel u:r:magisk:s0en servicio con seclabel u:r:tinyproxy:s0.
  • Establecer contexto SELinux:
    ~# chcon -R u:object_r:tinyproxy:s0 /data/local/tinyproxy
    

Ahora el servicio también se ejecutará sin Magisk.


RELACIONADO:

El proxy SOCKS se puede ejecutar con SSH, consulte:

Irfan Latif
fuente