> For the complete documentation index, see [llms.txt](https://wiki.datadike.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.datadike.com/es/pam/administration/connectivity/endpoints.md).

# Endpoints

La dirección y el puerto que la consola entrega a un cliente cuando se abre una sesión, y por qué cambiar un puerto aquí no mueve el servicio que realmente está escuchando.

Un **endpoint** es la dirección y el conjunto de puertos que la consola da a un cliente al abrir una sesión: *aquí es donde hay que marcar*. Un mismo componente puede tener varios endpoints, porque un cliente dentro del centro de datos y un cliente en internet no llegan a él por la misma dirección.

{% hint style="danger" %}
**Los puertos de un endpoint son un anuncio, no un listener.** Cambiar un puerto aquí cambia solo lo que se le dice al cliente que marque. No mueve el servicio que realmente está escuchando, que es una propiedad de cómo se desplegó el componente. Cambie uno sin el otro y los clientes irán a un puerto donde nadie responde.
{% endhint %}

## Qué es esto y cuándo usarlo

Los componentes de la solución, el core, el conector de terminal, el conector gráfico, el conector de base de datos y los demás, escuchan cada uno en algún sitio. Un endpoint es el registro que dice cómo debe llegar a ellos un cliente:

| Endpoint           | Finalidad                                                |
| ------------------ | -------------------------------------------------------- |
| **Predeterminado** | La ruta interna, entre el core y el conector de terminal |
| **Externo**        | Para clientes fuera de la red                            |
| **Privado**        | Para una DMZ o una red privada                           |

Se selecciona un endpoint por conexión, y las **reglas de endpoint** deciden cuál, haciendo coincidir un grupo de IP. El resultado se entrega al cliente: se escribe en el archivo de conexión descargado si es un cliente nativo, o lo usa directamente el cliente web.

Usted toca esta pantalla en dos situaciones: cuando una clase de clientes llega a la solución por una dirección distinta de la que supone el valor predeterminado, y cuando hay que cambiar un puerto porque el 3389 o el 2222 ya está ocupado, o porque un estándar de cortafuegos lo prohíbe.

## Antes de empezar

* Privilegios de administrador en la consola.
* La dirección que cada población de clientes usa realmente para llegar a la solución, que a menudo no es la dirección por la que el appliance se conoce a sí mismo.
* Para un cambio de puerto, **acceso al despliegue**. El lado que escucha no se configura desde la consola, y el cambio no está terminado hasta que ambos lados coinciden.

{% hint style="warning" %}
Trate un cambio de puerto como una ventana de mantenimiento. Reiniciar o recrear el componente que escucha **corta las sesiones en curso** de ese protocolo, y una sesión cortada así puede quedar registrada como todavía abierta.
{% endhint %}

## Pasos

Para que una clase de clientes llegue a la solución por una dirección distinta, añada o edite el endpoint de esa red y déle el nombre de host que esos clientes resuelven; después añada una regla de endpoint que lo seleccione para el grupo de IP correspondiente.

Para cambiar un **puerto**, ambos lados tienen que moverse, en este orden:

1. **Cambie primero el listener.** El puerto que el componente publica realmente lo fija su despliegue. Actualizarlo es una tarea de despliegue: corresponde a quien instaló la plataforma, no al operador de la consola.
2. **Después cambie el anuncio** en el endpoint, para que a los clientes se les indique el puerto nuevo.
3. **Vuelva a probar con una sesión real.** Nada más demuestra que las dos mitades ya coinciden.

{% hint style="info" %}
Las bases de datos se comportan de forma algo distinta: cada conector de base de datos tiene su propio endpoint de servicio, y el puerto forma parte de cómo se enruta una sesión de base de datos. Por eso algunas plataformas de base de datos no tienen ningún puerto editable: el propio puerto es la clave de enrutamiento.
{% endhint %}

## Lo que debería ver

Los endpoints se listan por componente, junto al propio estado del componente:

| Campo                | Significado                                                                                |
| -------------------- | ------------------------------------------------------------------------------------------ |
| **Nombre**           | El identificador único del componente                                                      |
| **Tipo**             | Qué es: core, terminal, gráfico, base de datos, aplicación virtual, procesamiento de vídeo |
| **Estado**           | *En línea*, *Sin conexión*, o un estado de error                                           |
| **Último heartbeat** | Cuándo reportó por última vez                                                              |
| **Versión**          | La compilación que está ejecutando                                                         |
| **Endpoints**        | Las direcciones de conexión definidas para él, por red                                     |

Un componente que está *Sin conexión* no tiene ningún endpoint operativo, diga lo que diga el registro del endpoint.

## Cómo verificar que funcionó

Volver a leer el registro del endpoint no dice nada: mostrará exactamente lo que usted escribió. Verifíquelo contra una sesión.

1. **Abra una sesión real** en el protocolo que ha cambiado, como un usuario de la población de clientes a la que va dirigido el endpoint. No desde el host de la consola, y no desde su propia red si esa es otra red.
2. **Lea la dirección que se le dio al cliente.** Para un cliente nativo, el archivo de conexión descargado lleva el host y el puerto; para el cliente web, la sesión simplemente conecta o no. Confirme que es la dirección y el puerto que pretendía.
3. **Confirme que algo está escuchando ahí.** Si el cliente va al sitio correcto y la conexión aun así se rechaza, el anuncio se movió y el listener no.
4. **Pruebe cada población de clientes por separado.** Un cliente interno y uno externo pueden resolver a endpoints distintos, y arreglar uno normalmente no rompe nada, pero tampoco demuestra nada sobre el otro.

{% hint style="warning" %}
Una redirección local de puerto no aparece en un listado de sockets a la escucha: desvía el paquete antes de que llegue a un socket. Si el puerto parece libre pero el tráfico llega igualmente, revise las reglas de NAT del host, no su tabla de sockets.
{% endhint %}

## Errores comunes

| Síntoma                                                                             | Causa                                                                                        | Solución                                                                                                                                         |
| ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| El cliente abre y falla al conectar de inmediato, en un puerto que acaba de cambiar | Anuncio nuevo, listener viejo: al cliente se le manda a un puerto donde nadie responde       | Mueva el listener al puerto nuevo, en el despliegue, y vuelva a probar                                                                           |
| Los clientes siguen llegando al puerto antiguo después de cambiar el despliegue     | Listener nuevo, anuncio viejo: la cadena de conexión todavía lleva el puerto anterior        | Actualice el endpoint para que el anuncio coincida                                                                                               |
| Algunos clientes conectan y otros no                                                | Resuelven a endpoints distintos, y solo uno es correcto                                      | Compruebe qué endpoint recibe realmente cada población antes de cambiar puertos                                                                  |
| A un cliente se le da una dirección interna no enrutable                            | Se está usando el endpoint predeterminado para clientes fuera de la red                      | Defina el endpoint externo y una regla de endpoint que lo seleccione para esas direcciones                                                       |
| El cambio de puerto se revirtió tras una reinstalación o una actualización          | El instalador vuelve a aplicar el puerto propio del despliegue y reescribe el anuncio con él | Registre cualquier puerto no predeterminado como parte de los parámetros de instalación de esa máquina, para que una nueva ejecución lo conserve |
| El puerto parece libre, pero siguen llegando conexiones por él                      | Una redirección local desvía el tráfico antes del socket                                     | Inspeccione las reglas de NAT del host en lugar de sus sockets a la escucha                                                                      |
| Se cortaron sesiones y una figura como todavía abierta                              | El componente que escucha se reinició o se recreó con sesiones en curso                      | Haga los cambios de puerto en ventana de mantenimiento; una sesión que queda abierta así hay que cerrarla administrativamente                    |

## Referencia de campos

| Elemento                              | Qué es                                                                                                                                       |
| ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| Endpoint **Predeterminado**           | La ruta interna, entre el core y el conector de terminal                                                                                     |
| Endpoint **Externo**                  | La dirección que usan los clientes de fuera de la red                                                                                        |
| Endpoint **Privado**                  | La dirección que se usa desde una DMZ o una red privada                                                                                      |
| **Regla de endpoint**                 | Vincula un grupo de IP a un endpoint, de modo que se selecciona un endpoint por conexión                                                     |
| Campos de puerto                      | El puerto **anunciado** al cliente. Nunca el puerto en el que escucha el componente                                                          |
| Endpoint de servicio de base de datos | Cada conector de base de datos tiene el suyo; en algunas plataformas de base de datos el puerto es la clave de enrutamiento y no es editable |

## Páginas relacionadas

* [Puertos y protocolos](/es/pam/reference/ports.md): los puertos que se usan para llegar a los *activos*, que son una cuestión aparte de estos
* [Métodos de conexión](/es/pam/administration/sessions/connection-methods.md): qué clientes puede lanzar un usuario y, por tanto, qué endpoint se le entregará
* [Proxy](/es/pam/administration/connectivity/proxy.md): llegar a los activos a través de una máquina de salto
* [Broker](/es/pam/administration/connectivity/broker.md): conectividad inversa, donde la ruta se establece hacia fuera
* [Conceptos básicos](/es/pam/get-started/core-concepts.md): cómo se relacionan los componentes, los activos y las sesiones
