ESP32 CAM - Acceso externo

Tenes suerte @anon90500195 por donde vivis, porque en el interior te aseguro que esa práctica se mantiene.

No, si aca estoy seguro que sigue todo igual, con decirte que mi proveedor no me permite conocer y cambiar la password de administrador de mi router...
O sea, no puedo tocar nada de la configuración.
Es lo que hay...

Hay algo que no me queda claro. Según entiendo, el esp esta conectado al router, que le asigna una dirección interna. Lo que no entiendo, es desde que red estas intentando conectarte ¿Desde internet por medio de los datos del celular? Porque de ser así yo apuntaría mas a la conexión de datos del celular.

Si me conecto desde mi red interna accediendo a la IP externa no veo nada. Veo que se conecta porque en el trace del ESP32 veo la conexión desde mi router, o sea que le llega la petición, pero en mi navegador se ve todo negro.

Sin embargo, si desconecto la wifi del móvil(celular) voy directamente con los datos del móvil y funciona. Desde el laptop para poderlo ver tengo que conectarme al punto de acceso que publico desde el móvil con sus datos para poderlo ver.

Por supuesto lo veo internamente si ataco a la IP local del ESP32.

Es todo un misterio para mi. Solo lo podría desvelar algún técnico del proveedor de internet que sepa, pero claro, hablar con ellos es complicado porque te suelen poner con alguien que se sabe de memoria los cuatro parámetros básicos para ayudar a la mayoría y su solución para todo es que reinicies los valores de fábrica, por lo que todas las configuraciones de ip estática, nombres de dispositivos, proveedor de DNS estática y NAT/PAT hay que volver a definirlos.

Es como hablar con el Pato Donald.

O sigo sin entender o no tiene sentido ¿Porque desde la red interna quieres llamar a tu IP publica?
Prueba con un proxi, gratuito, acceder a tu IP publica.

No, no es eso.

Quiero verlo desde una App móvil o desde la página Web que publica el ESP32 que tengo de frontal.

Si defino desde al App móvil como dirección de ataque la externa, no me funcionará dentro de casa y si defino la interna, no me funcionará desde fuera. Quiero atacar siempre a la externa para no tener que programar en la App o la web distinta dirección de ataque según esté conectado a mi router o no. Además no tengo claro como se haría.... esto no es un java o C estándar.

Además, para hacer pruebas es mucho más cómodo desde el laptop sin tener que cambiar la conexión por culpa de esta anomalía.

Por otra parte, como informático, soy muy terco y trato siempre de no dejar interrogantes sin entender (no siempre lo consigo). Entenderlo también me permitirá saber con que opciones cuento para otros proyectos.

Cuando tenga cámaras vendrá la hora del audio, los sensores de humedad para el riego, la capacidad de programar el riego, las notificaciones al móvil y al correo, incluir certificados para la seguridad del acceso, los controles infrarrojos para la música, la tele, etc ... en fin, esto no terminará nunca. Domotizar una vivienda haciéndolo con tus manitas es apasionante, pero complejo.

¡¡¡¡¡ME FALTAN HORAS!!!!!

Jajajajaja.

Hombre, esta perfecto, asi es como funciona. Todo lo que consultas desde afuera de tu red Local pasa por el router y se direcciona a la IP del ESP32-CAM
Ya has dicho que funciona el celular y la notebook usando los datos del celular.

Entonces? cual es el problema. No funciona internamente?

Si me conecto desde mi red interna accediendo a la IP externa no veo nada.

Esto no lo comprendo y somos varios ya.

A ver si entendí ¿Quieres poner una única dirección IP y que siempre te direccione al ESP independientemente si estas conectado a la red interna o no? Eso generalmente se logra con un servidor de DNS en la red privada, que solo intercepta las direcciones que quieres desviar y las otras las toma de un servidor publico. Algunos routers tienen servidores internos de DNS, como OpenWRT que posee un servidor dnsmasq.

Entiendo que quiere acceder usando siempre la IP pública.

Localmente no tiene problemas, vía red celular accede sin problemas con la IP pública, su problema es que no logra desde su red ingresar con la IP pública.

Y como desde su red local va a entrar por la IP pública? No lo entiendo.
En la apk (hecho con el celular) que pone para encontrar al ESP32-CAM? un DDNS o la ip pública que supongo será fija?

Yo creo que lo que quiere hacer no se puede pero, como no es lo mío, me limité a decir lo que interpreté que quiere lograr.

[Edito]
Si entiendo bien, la cosa es algo así:
El cliente (en este caso la laptop) envía una petición a la IP pública, la recibe el router y la "forwardea" al ESP peeero lógicamente no cambia la IP originante (que es una IP local), el ESP manda la respuesta y el router, que "ve" que la IP originante es local, la envía directamente a la laptop (el cliente) y ahí "se pudre todo" porque el cliente espera la respuesta desde la IP pública, entonces descarta la que le envió el router localmente y se queda esperando (la respuesta) hasta que se cumple el timeout y pasa lo que le está pasando a @jguajardo

Perdón, claramente me explico fatal......

Os lo pongo en modo gráfico a ver si así lo consigo.
Si no, sólo se me ocurre hacer una call con algún alma caritativa dispuesta a aguantar mi peñazo.



Soy experto en arquitectura de aplicaciones, pero en redes soy un poco más torpe.

La dirección 84.84.84.84 es falsa y el nombre domotica.ddns.net también, es por no publicar el acceso a mi red.

Muchas gracias por la ayuda ...... y la paciencia.
Javier.

Y por que funciona para una conexión http normal, sin streaming? No debería ocurrir lo mismo?

Esta claro ¿Intestaste bajar todo al mínimo? Bajar la resolución, trabajar con escalas de grises , disminuir los frame rates.

Otra cosa que podrías intentar, es usar la herramienta traceroute y ver donde se "atasca"

Sí, pero creo que debería llegar o no, independientemente de la resolución.

No tengo ni idea, aclaré que no era lo mío.
Solo busqué casos similares al tuyo para tratar de entender y encontré éste , de donde extraje lo que comenté.

Saludos

Para mi hay otro puerto involucrado y lo que dice PeterKanTropus es lo que debes hacer. Busca una herramienta o si tu router lo permite hazlo. Falta algo, claramente!!

jguajardo tengo el mismo problema que tu. No logro ver el streaming en la web. Lograste solucionarlo??

Solos logro verlo si en la web hago un iframe a la IP local del ESP32 CAM, y accedo a la web desde casa. Pero claro al ser ip local si accedo desde un movil o red externa no funciona.

Tengo la NAT y como a ti te pasa mismo puerto con ip local del ESP32 CAM funciona, abriendo el puerto en el NAT no.

En mi caso en la ESP32 CAM tengo varios servidores o endpoint que cada uno responde a un puerto diferente, me temo que en mi caso es por no configurar en el NAT el puerto local 80 y el puerto externo XXXX y tener el mismo en puerto local y externo.

Pero segun veo tu configuracion de NAT en el router de Orange (por cierto mismo que el mio) tienes puesto puerto 80 como interno y tampoco te funciona.

En mi casi tengo varios servidores en el mismo ESP32 CAM puesto que uno lo uso para validacion de usuario y contraseña, puerto 80 interno, y el resto para el streaming y que no choque con el anterior y otros para el status y control del ESP32 CAM

Bueno ya me dices o si quieres que charlemos por privado.

Un saludos