Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Problema en conexión remota (https://www.clubdelphi.com/foros/showthread.php?t=92369)

botones67 10-10-2017 22:43:37

Problema en conexión remota
 
Hola amigos solicito vuestra ayuda si es posible. ¡¡ ALGO SE ME ESCAPA !!:mad:
Estoy intentando conectar a una DB remota con firedac y arroja este error tan documentado pero no soy capaz de solucionar. Connection rejected by remote interface.
Estos son los pasos que he revisado pero ALGO SE ESCAPA…..
1.- He abierto el Router en NAT añadiendo la ip 192.168.xx.xx y el puerto 3050. OK^\||/
2.- He creado un dinamic tipo (no ip ) servicio para vincular las peticiones desde el exterior , es decir a la IP pública . OK^\||/
3.- He comprobado que el host es accesible con ping . OK^\||/
4.- He comprobado el firewall de Windows 7 añadiendo una regla nueva para permitir el
Tráfico por el 3050.^\||/
5.-He añadido a la carpeta del ejecutable la Librería cliente FBCLIENT.dll
He probado acceder dentro de la red local y conecta sin problema todo parece que esta correcto pero…. ¡¡ ALGO SE ME ESCAPA !!.:mad:

Alguien podría ayudarme.

Gracias a todos.

Casimiro Notevi 10-10-2017 23:06:48

Puede ser tantas cosas: ¿Antivirus? ¿Servidor está funcionando? ¿Cómo haces la conexión?

botones67 10-10-2017 23:43:46

Hola casimiro, gracias por contestar.

Antivirus lo he desactivado , el servidor corriendo sin problema por lo menos de manera local y la conexión la realizo con el componente fdconnetion de firedac relleno todos los datos de la conexión.
Código SQL [-]
driver ID=FB
  database=c:\xxxxxx\DB.fdb
  User_name = SYSDBA
  password = masterkey
  protocolo =TCPIP
  server = mi host  que haciendo ping responde correctamente.
^\||/
y en el evento Onactivate del form añado
Código SQL [-]
cone.Params.Values['VendorLib'] := 'fbclient.dll';
   cone.Connected:=true;
   tabla.Active:=true;
¡¡¡ Algo se escapa por ahí !!!

Gracias nuevamente.

Casimiro Notevi 11-10-2017 00:13:38

Prueba a poner la ruta completa a la base de datos:
100.100.100.100:c:\datos\db.fdb

Que haga ping a esa IP no quiere decir que esté funcionando firebird.
Verifica también los permisos para acceder a la base de datos.

botones67 11-10-2017 06:42:14

Hombre ya Casimiro; quiero decir que haciendo ping al host responde.
Otra cosa es el servidor que como te digo esta funcionando
Lo de los permisos ? nunca puse restriciones solo con el usuario y pass he conectado, siempre lo hice así en ltras ocasiones , es mas tengo esta configuración en otras máquinas remotas y nunca se rechazo la conexión solo es en este equipo dado.
He intentado poner xx.xx.xx.xx:c:\xxxxxxxx\DB.fdb y Host\c:×××××\DB.fdb y error tambien
No se. ..También verifique que el 3050 esta en escucha y ^\||/¿ que otras cosas mas para intetar aislar el problema?
Gracias.👍

Neftali [Germán.Estévez] 11-10-2017 09:49:19

En el router debes "mapear" tanto la IP pública a la de tu servidor, como los puertos. No se si es a eso a lo que te refieres con los puntos (1) y (2).
Me refiero con que no sólo hay que "abrirlos", también hay que "mapearlos".

botones67 11-10-2017 10:57:31

Efectivamente Naftali ,gracias por interesante es todo un honor.
En el router NAT redirecciono la ip privada 192.168.xx.xx a el puerto 3050, ¿es eso lo que quieres decir?

Casimiro Notevi 11-10-2017 12:00:25

Pues solamente nos queda que podamos probar nosotros :)
Preguntas obvias:
¿Estás totalmente seguro de que está funcionando firebird en el servidor?
¿Has comprobado también que en el servidor no hay restricciones de antivirus, firewall, etc.?

Neftali [Germán.Estévez] 11-10-2017 12:32:33

Cita:

Empezado por botones67 (Mensaje 521677)
Efectivamente Naftali ,gracias por interesante es todo un honor.
En el router NAT redirecciono la ip privada 192.168.xx.xx a el puerto 3050, ¿es eso lo que quieres decir?

Digamos que en el router hay que hacer 2 cosas conceptualmente:

1) Una cosa sería abrir los puertos, de forma que desde fuera ese puerto esté accesible. Cualquier ordenador que haga una petición al router a una IP y un puerto, se lo debe encontrar abierto/accesible.

Pero una vez que esa petición llega, el router debe saber qué hacer con ella. Ese es el segundo paso.

2) Se debe "mapear" la IPPública+Puerto3050 a una IPPrivada+Puerto3050. De esta forma cuando al router le llega una petición la reenvía a tu servidor Interbase. A eso me refería con "mapear".

botones67 11-10-2017 12:57:32

Hola de nuevo Neftali.
Está claro con la IP privada+3050 pero la pública depende no siempre es la misma como bien sabes por eso la he vinculado a un host tipo no-ip para olvidarme.
La cuestión es según tus aclaraciones también hay que mapearla, pero ¿ tendría que poner el nombre de dicho host en NAT creo no se puede.:mad:
El nombre del host lo configuro en el apartado del router DNS-dynamic.

Bueno a ver si poco a poco damos con la tecla.
Gracias.

Neftali [Germán.Estévez] 11-10-2017 13:04:09

Cita:

Empezado por Neftali (Mensaje 521680)
2) Se debe "mapear" la IPPública+Puerto3050 a una IPPrivada+Puerto3050. De esta forma cuando al router le llega una petición la reenvía a tu servidor Interbase. A eso me refería con "mapear".

Cita:

Empezado por botones67 (Mensaje 521682)
la pública depende no siempre es la misma como bien sabes por eso la he vinculado a un host tipo no-ip para olvidarme.
La cuestión es según tus aclaraciones también hay que mapearla, pero ¿ tendría que poner el nombre de dicho host en NAT creo no se puede.:mad:

Creo que me he expresado mal cuando he dicho "mapear la IPPública+Puerto3050 a una IPPrivada+Puerto3050."
En el router no creo que debas poner la pública, se assume que el router es la IPPublica, por lo tanto habrá que decirle algo así como:

=> Lo que llegue al puerto 3050 (del router) lo rediriges a 192.168.xx.xx:3050 (IpPrivada+Puerto)

Hay muchas marcas e interfaces, pero al final suele ser algo similar a esto (que imagino que es lo que ya has hecho):


Casimiro Notevi 11-10-2017 13:11:02

Pon una BD de pruebas para que podamos probar ;)

botones67 11-10-2017 13:34:00

Si efectivamente eso fue lo que ya hice.
Bueno pondre una DB para que probéis pero eso será por las tarde , ahora estoy en el curro.
Cuando este en casa os aviso.

Gracias
^\||/

botones67 11-10-2017 16:22:12

Rehoras.
Podéis probar si tenéis éxito? , os he dejado una DB para probar como recomendó Casemiro Notevi qP:-)

Código SQL [-]
Ruta.-      C:\limpieza\db\limpieza.fdb  hay varias tablas.
 usuario.-  SYSDBA
 pass    .- masterkey 
 host.-  .- botones67.hopto.org

ya me contaréis.^\||/

botones67 15-10-2017 19:47:10

Bueno amigos ya encontré solución al problema.
El problema residía en el cliente interbase.:)
La cuestión es que cuando se instala delphi , además instala interbase y junto a él lógicamente la biblioteca cliente GDS32.DLL que parece ser es incompatible con la biblioteca cliente de firebird FBCLIENT.DLL.
1.- Pues bien eliminé interbase de la máquina y además también la biblioteca cliente GDS32.DLL
Código SQL [-]
C:\Windows\SysWOW64.GDS32.DLL
2.- Reiniciar la máquina.

:):):) Todo conecta como se esperaba ^\||/^\||/

Muchas gracias por todos Vuestros comentarios.
Un saludo para todos.;)

Casimiro Notevi 16-10-2017 12:54:04

Jamás hubiéramos podido averiguarlo sin ver tu equipo.
Salvo que lo hubieses dicho.


La franja horaria es GMT +2. Ahora son las 21:39:58.

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