Tengo problemas con las conexiones de reenvío de puertos desde fuera de mi red cuando la conecto con mi teléfono. Entiendo mal los enrutadores y las redes en general, así que tengan paciencia conmigo.
Mi dispositivo Android es el que está conectado directamente a Internet. Para permitir 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, así que tengo la autorización que necesito. El puerto en el que manejo las conexiones en el servidor es 80. Accediendo a la dirección IP del servidor (dentro de la red) <local_ip.addr.ess.here>:80
puedo acceder a él, para que funcione.
El problema es que cuando intento acceder desde fuera de la red, la aplicación me dice que configure el origen en 80 y el destino, sea cual sea (su ejemplo es 8080); por supuesto, lo configuré en 80 ya que eso es lo que el servidor está escuchando. Así que trato de acceder al servidor desde afuera usando <phone.public_ip.adr.ess>:80
pero no funciona.
Como habrás notado, no tengo idea de lo que estoy haciendo y encontrar guías ha sido difícil, incluso para los 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.
fuente
192.168.*.*
, pero a veces también172.*.*.*
o10.*.*.*
, vea Wikipedia ), solo es visible dentro de su red local y no se puede acceder directamente desde el "mundo exterior". Aquí se necesitan configuraciones de reenvío de puertos en su enrutador , y se tratan mejor en ServerFault .adb logcat
) al intentar acceder desde el exterior, para ver si al menos llega a su dispositivo y tal vez registra algunas sugerencias.Respuestas:
No estoy seguro de qué versión está ejecutando, aquí está mi consejo. La causa por la que probablemente esté bloqueado es el firewall de Android y la sólida política de Se-Linux.
Como tiene acceso completo a la raíz, puede obtener un shell con ADB y verificarlo. Escribe
su -
y te llevará a la raíz. Estoy usando TerminalEmulator, pero puede usar uno nativo, si se envía con el sistema operativo.Si te he entendido correctamente, tu teléfono actúa como enrutador en modo de 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, permita el puerto 80,443 en el puerto de anclaje. Esta no es una respuesta completa, pero es demasiado larga para publicarla como comentario.
fuente
La respuesta es que su proveedor bloquea el puerto 80, sin embargo, si cambia al puerto 443, no puede 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.
fuente