18 votos

usando tu teléfono Android como un servidor proxy

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

13voto

nick carraway Puntos 71

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

Es difícil utilizar tus datos móviles como proxy porque todas las conexiones entrantes están bloqueadas. Pero, si tienes un portátil conectado a wifi, y tu teléfono conectado a tu portátil vía 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 tu host (portátil) al puerto 8080 de tu teléfono. A continuación, configure un servidor proxy en su aplicación Servers Ultimate que se ejecuta en el puerto 8080. ¡No se requiere Root!

Ahora, cualquier petición a tu portátil a través del puerto 6400 será reenviada a tus datos móviles. Prueba esto abriendo Firefox, yendo a la configuración, Redes, y utilizando 127.0.0.1 y el puerto 6400 como proxy. Puedes abrir tu router para que acceda a través de wifi público usando este puerto, aunque te recomiendo que establezcas algún tipo de política de seguridad.

Hay montones de tutoriales para activar las opciones de desarrollador y adb en tu portátil, es fácil.

0 votos

Esto podría funcionar :) Lo probaré hoy mismo

0 votos

¡Funciona! ¡Impresionante!

0 votos

Esto crearía un servidor SOCKS ¿verdad? si uno quisiera un servidor proxy HTTP entonces tendría que usar algo como Polipo para convertir SOCKS en proxy HTTP?

7voto

SarpSTA Puntos 26

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

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

Más tarde añaden

Para más servidores y características eche un vistazo a nuestra aplicación Servidores Ultimate

Para obtener información adicional sobre Servers Ultimate, compruebe este artículo sobre LifeHacker , este artículo sobre XDA y el propio hilo de XDA de las aplicaciones .

0 votos

Estoy tratando de configurar esto de una manera que me conecto al servidor proxy utilizando la IP WiFi, y todas las conexiones salientes utilizaría la conexión de datos. ¿Es esto posible?

0 votos

Oye @Arya, ¿has descubierto cómo hacerlo?

0 votos

@Arya, mira mi respuesta usando adb

2voto

Jack Wade Puntos 231

Si tu teléfono está rooteado (o al menos el bootloader está desbloqueado), puedes ejecutar tinyproxy (proxy HTTP/HTTPS) como init servicio. Funciona tanto con Wi-Fi como con Datos Móviles, en este último caso tienes que asegurarte de que tu teléfono es accesible desde Internet. Ver ¿Cómo conectarse a Android a través de SSH sobre IP pública 3G/4G?

  • Crear un directorio en /data o /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, véase documentación .

  • Construir tinyproxy de la fuente o puede intentar este . Mover binario a /data/local/tinyproxy/ y establecer los permisos. Utilice AID_NOBODY o cualquier otro UID no utilizado para el servicio:

    ~# cd /data/local/tinyproxy/
    ~# chown -R 9999.9999 .
    ~# chmod 0755 . tmp tinyproxy
    ~# chmod 0644 tinyproxy.conf
  • Añade las siguientes líneas a /init.rc o cualquier otro .rc archivo:

    # /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 utiliza alguna aplicación de firewall, asegúrese de desbloquear el puerto entrante 8080 . Reinicia el dispositivo. tinyproxy el servidor debe ejecutarse con los mínimos privilegios. Conéctese localmente o remotamente.


PS:

Si el teléfono no está rooteado o quieres hacer un sandbox del servidor proxy, puedes parchear la política de SELinux con las siguientes reglas. Usar Magisk supolicy herramienta 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
  • Consulte dmesg para avc negaciones para definir más normas requeridas.
  • Sustituir seclabel u:r:magisk:s0 en servicio con seclabel u:r:tinyproxy:s0 .
  • Establecer el contexto de SELinux:

    ~# chcon -R u:object_r:tinyproxy:s0 /data/local/tinyproxy

Ahora el servicio funcionará también sin Magisk.


RELACIONADO:

El proxy SOCKS se puede ejecutar con SSH, ver:

0 votos

Gran tutorial. pero no puedo conseguir la parte chroot para trabajar en 2 teléfonos diferentes. cada vez que falla con: chroot: exec /tinyproxy: No such file or directory - sin chroot, tinyproxy funciona bien (aunque tengo que crear /tmp para ello)

1voto

Kevin Puntos 11

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

Si intentas utilizar tu conexión de datos móviles como proxy, es posible que tengas algunos problemas, porque la mayoría de los proveedores de datos móviles bloquearán los puertos que normalmente podrías utilizar para configurar un proxy. Lo mejor es ponerse en contacto con el proveedor de datos móviles y ver si tienen algún puerto abierto más allá del valor 1024 (Android bloquea los puertos por debajo de este número por razones de seguridad).

También puedes hacerlo:

  • Utilice un servidor proxy en Wifi, pero asegúrese de que el puerto proxy está abierto en su router
  • Rootea tu teléfono para que puedas configurar el reenvío de puertos para usar tu conexión de datos móviles
  • Rootea tu teléfono para poder utilizar valores de puerto por debajo de 1024 que suelen estar abiertos.

Para darse cuenta de que este es el caso, intente ejecutar un servidor proxy Servers Ultimate en Wifi con su puerto abierto. Tendrás algo que funcione, pero si tu objetivo es usar datos móviles, por ahora no tienes suerte.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X