Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Conexión por internet (https://www.clubdelphi.com/foros/showthread.php?t=96176)

Angel.Matilla 29-03-2023 19:05:05

Conexión por internet
 
Un cliente me ha preguntado si la aplicación que le he hecho puede usarse a través de internet, conectando en remoto a la base de datos. He estado mirando y he visto varias contestaciones que corroboran mi opinión inicial de que es posible, pero sin embargo me llama la atención que en el acceso a través de internet no hay que indicar el puerto de acceso.

En su día pregunté como hacer la conexión en una red local y me indicasteis que había que incluir el puerto de acceso; algo así:
Cita:

SERVIDOR/3050:C:\\Datos\Tablas\basedatos.fdb
pero en uno de los ejemplos que he visto sería algo así:
Cita:

192.168.1.100:c:\datos\basedatos.fdb
Si el acceso es a través de internet, ¿no hace falta indicar el puerto de acceso?

Angel.Matilla 29-03-2023 19:32:14

Voy más allá. Este usuario tiene otra aplicación a la que se conecta desde su casa vía VPN. ¿Podría hacerse lo mismo con mi aplicación en BCB? ¿Cómo?

lucho6007 29-03-2023 22:52:46

Hola!
Entiendo que si usa una VPN entonces tiene un tunel a su red. Digamos que virtualmente es la misma red de su oficina/local pero corriendo desde su casa.

En el ejemplo ponés la IP 192.168.1.100, que es accesible sólo desde una LAN (o a través de una VPN). Para tu aplicación debería ser transparente la conexión si el cliente se conecta a través de una VPN.

duilioisola 30-03-2023 08:44:01

Si no informas el puerto, se toma el puerto por defecto.
En el caso de Firebird es el puerto 3050.
El puerto puedes informarlo tanto en conexiones locales como a travez de internet.

En cuanto a conectarte desde internet a la base de datos:
Se puede, pero hay que tener en cuenta varias cosas:
Velocidad: La latencias de internet es mucho mas grande que la de una conexión LAN. Por esto, si trabajas con tablas maestro detalle, en donde por cada scroll del maestro haces un nuevo select del detalle, la velocidad puede ser demasiado baja.
Seguridad: Tendrás que abrir un puerto en el router del cliente que apunte a la ip del servidor del cliente. Luego tendrás que poner una clave para Firebird que no sea la que viene por defecto.
Además de esto, los paquetes de información que viajan entre el servidor y el cliente no estarán muy encriptados. (Las bases de datos no están diseñadas para este escenario)
Código:

[SERVIDOR]                            [ROUTER]                      [CLIENTE]
[IP: 192.168.1.100] <-------------+  [IP Publica: 80.1.2.3] <----* [Coneta a la IP:80.1.2.3]
[Puerto Firebird: 3050]          |  [IP: 192.168.1.1]            [BD = BASE]
[Alias: BASE = C:\Bases\BASE.FDB] |  [NAT Puerto_IN: 12345]        [Puerto = 12345]
                                  |  [NAT IP_IN: Todas]
                                  |  [NAT Puerto_OUT: 3050]
                                  +-* [NAT IP_OUT: 192.168.1.100]


Angel.Matilla 30-03-2023 09:29:32

Cita:

Empezado por lucho6007 (Mensaje 550897)
Hola!
Entiendo que si usa una VPN entonces tiene un tunel a su red. Digamos que virtualmente es la misma red de su oficina/local pero corriendo desde su casa.

En el ejemplo ponés la IP 192.168.1.100, que es accesible sólo desde una LAN (o a través de una VPN). Para tu aplicación debería ser transparente la conexión si el cliente se conecta a través de una VPN.

Gracias por la respuesta. El problema es que para la aplicación que usa por VPN la base de datos está en Madrid, no en la ofician donde trabaja habitualmente.

Angel.Matilla 30-03-2023 09:31:47

Cita:

Empezado por duilioisola (Mensaje 550899)
Velocidad: La latencias de internet es mucho mas grande que la de una conexión LAN. Por esto, si trabajas con tablas maestro detalle, en donde por cada scroll del maestro haces un nuevo select del detalle, la velocidad puede ser demasiado baja.
Seguridad: Tendrás que abrir un puerto en el router del cliente que apunte a la ip del servidor del cliente. Luego tendrás que poner una clave para Firebird que no sea la que viene por defecto.
Además de esto, los paquetes de información que viajan entre el servidor y el cliente no estarán muy encriptados. (Las bases de datos no están diseñadas para este escenario)

Gracias por la información. El problema de la velocidad ya se lo había comentado; lo que no se me había ocurrido es el de la seguridad.

Casimiro Notevi 30-03-2023 09:53:27

A lo mejor para lo que quieres te viene bien un programa del tipo "control remoto".

Angel.Matilla 30-03-2023 17:46:55

Lo había pensado pero el cliente quiere poder usar el programa cuando está fuera de la oficina (fines de semana, por ejemplo) que tampoco hay nadie que le pueda autorizar a un acceso remoto, y en todos los programas de escritorio remoto que conozco (si es a eso a lo que te refieres, tipo TeamViewer) hace falta que en el equipo destino haya alguien para autorizar el acceso. A lo mejor estoy equivocado, pero también es una alternativa interesante si se puede obviar ese permiso.

Casimiro Notevi 30-03-2023 18:07:40

Todos son configurables para que no se necesite.


Angel.Matilla 30-03-2023 18:26:46

Cita:

Empezado por Casimiro Notevi (Mensaje 550915)
Todos son configurables para que no se necesite.

¿ves? Como nunca me ha hecho falta, ni se me había ocurrido bucear en las opciones. Gracias.


La franja horaria es GMT +2. Ahora son las 12:13:05.

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