Redirección de puertos en Android 2.3.6 wifi-tether usando la aplicación Port Forwarder

Tengo problemas con las conexiones de reenvío de puertos desde fuera de mi red cuando me conecto con mi teléfono. Tengo una mala comprensión de los enrutadores y las redes en general, así que tengan paciencia conmigo.

Mi dispositivo Android es el que está conectado directamente a Internet. Para habilitar el acceso a mi computadora desde el mundo exterior a través del dispositivo Android, actualmente estoy usando la aplicación gratuita llamada Port Forwarder y mi teléfono está rooteado, por lo que tengo la autorización que necesito. El puerto en el que manejo las conexiones en el servidor es el 80. Accediendo a la dirección IP del servidor (dentro de la red) <local_ip.addr.ess.here>:80puedo acceder a él, así que funciona.

El problema es que cuando trato de acceder desde fuera de la red, la aplicación me dice que configure la fuente en 80 y el destino sea lo que sea (su ejemplo es 8080); por supuesto, lo configuré en 80 ya que eso es lo que escucha el servidor. Entonces trato de acceder al servidor desde afuera usando <phone.public_ip.adr.ess>:80pero no funciona.

Como habrá notado, no tengo ni idea de lo que estoy haciendo y ha sido difícil encontrar guías, incluso para enrutadores estándar. ¿Alguien ha utilizado con éxito esta aplicación y tal vez podría ayudarme? Probablemente omití información importante debido a la ignorancia, si es así, avíseme y actualizaré la pregunta.

¿De qué "dirección pública" estamos hablando aquí? Si es la dirección WiFi asignada por su enrutador (generalmente algo como 192.168.*.*, pero a veces también 172.*.*.*o 10.*.*.*, vea Wikipedia ), solo es visible dentro de su red local y no se puede acceder directamente desde el "mundo exterior". La configuración de reenvío de puertos en su enrutador es necesaria aquí, y se analiza mejor en ServerFault .
No, es la dirección de google "cuál es mi ip" (si no la has usado, el propio google proporciona una dirección IP que debería ser confiable). Y no entiendes la pregunta, en el título dice "wifi-tethering". Lo que significa que no es un enrutador normal, mi dispositivo Android ES mi enrutador, lo que hace que este sea el sitio relevante. ¿Has leído toda la pregunta? Estoy mencionando aplicaciones, teléfonos y otras cosas relevantes que pareces haberte perdido por completo.
Incluso lo he leído varias veces, pero debo admitir que estaba un poco confundido. No indicó explícitamente qué dispositivo actúa como "servidor" en ese contexto, por lo que asumí la dirección habitual (la palabra "anclaje" por sí sola no especifica quién es el servidor y quién es el cliente, lo siento). Gracias por la aclaración: esto hace que mi comentario sobre ServerFault sea obsoleto, por supuesto. // Su reenvío de puerto de 80 a 80 me parece correcto. Sugeriría consultar los registros de Android (por ejemplo adb logcat, ) al intentar acceder desde el exterior, para ver si al menos llega a su dispositivo y tal vez registra algunas pistas.
No te preocupes, aclararé un poco la pregunta. Buscaré cómo ver el registro.
¡Gracias! Acabo de editar un poco más, por lo que ahora debería estar perfectamente claro (con suerte, al menos nadie debería volver a caer en la misma trampa que yo). Siéntase libre de ajustar si no le gusta mi edición. // Un pensamiento es que su proveedor podría no permitir eso. Para verificar, configure algún servidor (como un servidor FTP simple) en su dispositivo Android e intente si se puede acceder desde el "mundo exterior". Si eso tampoco funciona, es tu proveedor el que bloquea ese tráfico. Si funciona, todavía podemos investigar más a fondo.
Llamé a mi proveedor y me dijeron que lo permiten. Solo se bloquearon algunos "puertos de virus conocidos", sea lo que sea que eso signifique. Así que el problema debería estar en el propio teléfono.
Entonces, ¿ha intentado con algún software de servidor en el teléfono, como sugerí en mi comentario anterior? Tal vez sea solo un problema con la aplicación Port Forwarder que estás usando. Y como se dijo, también adb logcatpodría dar algunas pistas.

Respuestas (2)

No estoy seguro de qué versión está ejecutando, este es mi consejo. La causa por la que probablemente esté bloqueado se debe al firewall de Android y a la sólida política de Se-Linux.

Como tiene acceso completo a la raíz, puede obtener un shell con ADB y verificarlo. Escriba su -y lo llevará a la raíz. Estoy usando TerminalEmulator, pero puede usar uno nativo, si se envía con el sistema operativo.

Si te entendí bien, tu teléfono actúa como un enrutador en modo anclaje. Entonces esto es necesario para reenviar paquetes:echo 1 > /proc/sys/net/ipv4/ip_forward

A ver si eso ayuda. Lo más probable es que necesite jugar con iptables, permitir el puerto 80,443 en el puerto de anclaje. Esta no es una respuesta completa, pero es demasiado larga para publicarla como comentario.

La respuesta es que su proveedor bloquea el puerto 80; sin embargo, si cambia al puerto 443, no pueden bloquearlo porque el puerto 443 debe tener la comunicación bidireccional desbloqueada para que https envíe y reciba respuestas. Por lo tanto, cambiar de http a https:// probablemente debería resolver su problema.