Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Providers (https://www.clubdelphi.com/foros/forumdisplay.php?f=10)
-   -   DataSnap bajo FireWall (https://www.clubdelphi.com/foros/showthread.php?t=84357)

jhonny 10-10-2013 00:26:29

DataSnap bajo FireWall
 
Buenas tardes compañeros, mi duda es la siguiente...

Resulta que tengo un DataSnap Server escuchando por un puerto HTTP con un par de funciones muy sencillas que solo verifican el estado de unos registros en una BD y devuelven algunos datos... eso funciona bien en algunos clientes, pero en algunos otros casos me arroja error 10060 el cual indica que no ha sido posible la conexión con el servidor.

He notado que en esos casos donde no funciona, siempre hay algún tipo de Firewall, ya sea virtual como el MCafee o en otros casos simplemente es porque tienen Routers entregados por la empresa ISP con el NAT activo.

Muchas de las personas que tratan de usar el servicio no conocen nada sobre aspectos técnicos y si leyeran lo que aquí les expongo, creerían que estoy hablando en otro idioma.

Ellos tienen su conexión a Internet activa y eso lo puedo comprobar ya que el TeamViewer con el que me conecto para verificar el asunto, funciona muy bien, si entro por el navegador y apunto a la dirección IP de donde tengo el servicio me responde correctamente, pero desde el programa no.

La pregunta es... ¿Como hace el TeamViewer o el navegador de Internet para funcionar correctamente pasando por encima de esas seguridades?, ¿Que se debe hacer para lograr esa situación?

Bueno, de antemano les agradezco su tiempo y colaboración prestada.

WkaymQ48 10-10-2013 08:59:30

Cuando ejecutas el Teamviewer, tanto tu como tu cliente, os conectáis al servidor de Teamviewer (que si tiene los puertos abiertos :) ) y el es el encargado de poner de acuerdo a ambos en el siguiente paso.

El siguiente paso es usar este "truco" para engañar al NAT de los dos router:
http://en.wikipedia.org/wiki/UDP_hole_punching

No es un método muy ortodoxo pero funciona :)

Pero para el caso de un servicio web lo mejor sigue siendo abrir los puertos del router como "dios manda"

jhonny 10-10-2013 16:28:14

Cita:

Empezado por WkaymQ48 (Mensaje 468103)
Cuando ejecutas el Teamviewer, tanto tu como tu cliente, os conectáis al servidor de Teamviewer (que si tiene los puertos abiertos :) ) y el es el encargado de poner de acuerdo a ambos en el siguiente paso.

El siguiente paso es usar este "truco" para engañar al NAT de los dos router:
http://en.wikipedia.org/wiki/UDP_hole_punching

No es un método muy ortodoxo pero funciona :)

Pero para el caso de un servicio web lo mejor sigue siendo abrir los puertos del router como "dios manda"

Muchas gracias por tu respuesta :).

Bueno, es que eso es lo raro, se supone que el servicio sale y entra por HTTP, por lo que estaría saliendo por el mismo puerto con el que navegan y el que la mayoría tienen abierto. De hecho esos clientes donde no funciona, tienen abierto ese puerto, ya que me deja entrar por el navegador al servicio y este responde correctamente.

WkaymQ48 10-10-2013 19:45:27

Creo que no te estoy entendiendo, lo normal es no tener el puerto 80 (http) abierto, es mas, la inmensa mayoría de personas lo tienen cerrado. Que tu puedas navegar por el puerto 80 hacia "fuera" no quiere decir que desde "internet" puedan acceder al puerto 80 y entrar en tu red local, son cosas completamente diferentes. :confused:

jhonny 10-10-2013 19:54:08

Cita:

Empezado por WkaymQ48 (Mensaje 468146)
Creo que no te estoy entendiendo, lo normal es no tener el puerto 80 (http) abierto, es mas, la inmensa mayoría de personas lo tienen cerrado. Que tu puedas navegar por el puerto 80 hacia "fuera" no quiere decir que desde "internet" puedan acceder al puerto 80 y entrar en tu red local, son cosas completamente diferentes. :confused:

Bueno, sí, tienes razón, no estoy siendo claro, pero me refiero a lo que dices, osea... ellos pueden navegar normalmente, mi servidor es el que tiene abierto el puerto y de hecho la mayoría de usuarios pueden acceder al servicio. Excepto esos que comento... arrojando el error "10060 Connection timed out error".

WkaymQ48 11-10-2013 01:37:50

Discúlpame, te había entendido mal. :( al hablar del NAT me despistaste.

Ahora veo que el que tiene el servicio eres tu y los otros se conectan a el, y algunos no son capaces de hacerlo. ¿Has comprobado si navegan a través de un proxy?

jhonny 11-10-2013 16:54:28

Cita:

Empezado por WkaymQ48 (Mensaje 468170)
Discúlpame, te había entendido mal. :( al hablar del NAT me despistaste.

Ahora veo que el que tiene el servicio eres tu y los otros se conectan a el, y algunos no son capaces de hacerlo. ¿Has comprobado si navegan a través de un proxy?

Sí, para los que tiene Proxy no hay problema, pues se les creó una ventana donde escriben esos datos y ya, pero hay usuarios que incluso no están bajo una red con proxy, es más... ni siquiera están en una red local si no que están conectados directamente al MODEM del ISP y aún así les sucede.

jhonny 11-10-2013 19:33:13

Ahhh se me olvidaba aclararte, lo del NAT lo mencioné, porque en uno de esos usuarios, entramos a su router, inhabilitamos el NAT y ¡Wala!, ahí se conectó a nuestro server sin ningún problema. Pero pues no se imagina uno a cada usuario inhabilitando su NAT, además no es como dices tu... "Ortodoxo".


La franja horaria es GMT +2. Ahora son las 19:15:54.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi