Antes de conectarse a una instancia de ApsaraDB RDS for MySQL o ApsaraDB RDS for MariaDB desde Internet, debe agregar la dirección IP pública de su cliente a la lista de permitidos de direcciones IP de la instancia. Este tema describe cómo encontrar la dirección IP pública correcta.
Descripción del problema
Ha agregado la dirección IP de su cliente a la lista de permitidos de direcciones IP, pero aún no puede conectarse a la instancia.
Este problema suele ocurrir porque la dirección IP pública que agregó es incorrecta o porque la dirección IP pública de su cliente ha cambiado.
Este tema aplica únicamente cuando se conecta a una instancia de ApsaraDB RDS desde un cliente que no sea ECS. Si se conecta desde una instancia de ECS, puede encontrar sus direcciones IP pública y privada en la página de detalles de la instancia en la consola de ECS.
Requisitos previos
Antes de conectarse a una instancia de RDS a través de Internet, asegúrese de cumplir con lo siguiente:
Endpoint público habilitado: Su instancia de RDS debe tener un endpoint público habilitado (por ejemplo,
rm-bp1xxxxx.mysql.rds.aliyuncs.com). No puede usar un endpoint privado para conexiones a Internet. Si no cuenta con un endpoint público, puede solicitar uno en la página Database Connection de la consola de ApsaraDB RDS.IP correcta para la lista de permitidos: La lista de permitidos de direcciones IP debe contener la dirección IP pública de salida de su cliente, no el endpoint ni la dirección IP de la instancia de RDS.
Recomendaciones
Si la dirección IP pública de su cliente cambia dinámicamente, en entornos de producción utilice una conexión interna o agregue un rango de direcciones IP a la lista de permitidos de direcciones IP para evitar desconexiones.
Encuentre la dirección IP pública de su cliente
-
Agregue temporalmente una entrada permisiva a la lista de permitidos.
Agregue el bloque CIDR público de su empresa o
0.0.0.0/0a la ip address whitelist de su instancia.AvisoLa entrada
0.0.0.0/0permite que cualquier dispositivo acceda a la instancia de RDS, lo cual representa un riesgo de seguridad. Utilice esta entrada con precaución y elimínela inmediatamente después de realizar las pruebas. -
Obtenga la dirección IP pública. (Elija un método)
-
Método 1 (Recomendado): Use un comando curl. Ejecute el comando
curl ipinfo.io/ippara obtener la dirección IP pública de su cliente.NotaSi el problema persiste, como alternativa ejecute el comando
curl ifconfig.me. -
Método 2: Use un navegador web. Este método es ideal para sistemas operativos basados en interfaz gráfica como Windows.
En un navegador web, visite uno de los siguientes sitios web. Estos mostrarán la dirección IP pública de salida de su cliente:
Agregue la dirección IP mostrada a la lista de permitidos de direcciones IP de su instancia de RDS.
-
Método 3: Use una consulta SQL. Este es el método más confiable para encontrar la dirección IP de salida tal como la ve el servidor de base de datos.
Siga estos pasos:
Establezca temporalmente la lista de permitidos de direcciones IP en
0.0.0.0/0y espere aproximadamente 1 minuto para que la configuración surta efecto.-
Use un cliente de MySQL para conectarse a la instancia de RDS desde su dispositivo local:
mysql -h<endpoint> -u<username> -p<password> -P3306 -
Después de conectarse, ejecute el siguiente comando:
SHOW FULL PROCESSLIST; -
En los resultados, busque la sesión de conexión actual (la fila donde la columna Info muestra
show full processlisto la fila correspondiente al usuario). El valor en la columna Host es la dirección IP pública real del cliente, con el formatoIP:Port<!--/@code--, como</p>120.xx.xx.xx:52861. Extraiga la dirección IP, agréguela a la lista de permitidos de direcciones IP de la instancia de RDS y elimine la entrada
0.0.0.0/0.Desconéctese y vuelva a conectarse para comprobar que la lista de permitidos de direcciones IP está configurada correctamente.
-
-
Finalice la configuración de la lista de permitidos de direcciones IP.
Elimine la entrada temporal
0.0.0.0/0.Agregue y verifique la dirección IP pública correcta que obtuvo.
Preguntas frecuentes
-
¿Cómo puedo determinar si un error de conexión se debe a un cambio en la dirección IP pública de mi cliente?
Agregue
0.0.0.0/0a la lista de permitidos de direcciones IP de su instancia de ApsaraDB RDS for MySQL o ApsaraDB RDS for MariaDB y espere aproximadamente un minuto para que la configuración surta efecto. Esto permite que cualquier dispositivo acceda a la instancia. Si ahora puede conectarse a la base de datos, es probable que el problema sea la lista de permitidos de direcciones IP. Para confirmarlo, elimine la entrada0.0.0.0/0, agregue la que considera su dirección IP actual y pruebe nuevamente. Si la conexión falla, se confirma que la dirección IP pública de su cliente es diferente a la que agregó. -
¿Por qué sigue fallando la conexión después de configurar la lista de permitidos de direcciones IP?
Después de actualizar la lista de permitidos, recuerde que los cambios tardan aproximadamente un minuto en aplicarse. Espere antes de reintentar la conexión.
Muchos factores además de la lista de permitidos de direcciones IP pueden causar errores de conexión. Para obtener más información, consulte Troubleshoot connection failures to an instance.
-
Puedo hacer ping al endpoint de RDS y conectar por telnet al puerto correctamente, pero mi cliente de base de datos (como Navicat) aún no puede conectarse. ¿Por qué?
Un ping exitoso no implica autorización de la base de datos. ApsaraDB RDS no bloquea las solicitudes de ping de forma predeterminada. Un ping exitoso solo indica accesibilidad a nivel de red, no que la base de datos haya autorizado su dirección IP.
Una conexión telnet exitosa solo indica conectividad al puerto TCP. Conectarse correctamente al puerto 3306 solo confirma que la ruta de red y el puerto están abiertos. La verificación de la lista de permitidos de direcciones IP a nivel de base de datos es un paso separado y obligatorio.
Causa raíz: La dirección IP del cliente no está en la lista de permitidos de direcciones IP, o la dirección IP en la lista no es la dirección IP pública de salida real del cliente.
-
Solución:
Ejecute
SHOW PROCESSLISTpara recuperar la dirección IP de conexión real que ve la base de datos (consulte el "Método 3" anterior).Agregue esta dirección IP a la lista de permitidos de direcciones IP.
Compruebe que los parámetros de conexión en su cliente de base de datos (como Navicat) sean correctos, incluido el endpoint público, el puerto (el predeterminado es 3306), el nombre de usuario y la contraseña.
-
**La dirección IP que aparece en los registros de conexión de ApsaraDB RDS o en
PROCESSLISTes diferente a la que veo al consultar mi IP local. ¿Por qué?**Motivo: Si el tráfico de red local pasa por una puerta de enlace corporativa (NAT), el servidor de base de datos ve la dirección IP pública de la puerta de enlace, no la dirección IP de su máquina individual.
Solución: Utilice siempre la dirección IP del
Hostque aparece en la salida del comandoSHOW PROCESSLISTen su lista de permitidos de direcciones IP. No confíe en la dirección IP obtenida mediante una consulta en su máquina local.
Acceso transfronterizo y entre regiones
Puede conectarse a una instancia de ApsaraDB RDS desde cualquier lugar del mundo mediante su endpoint público y una lista de permitidos de direcciones IP configurada correctamente.
-
Para conexiones de baja latencia y alta seguridad, o para compartir datos entre regiones, utilice las siguientes soluciones:
Utilice Cloud Enterprise Network (CEN) para establecer conexiones de red interna entre VPC y evitar exponer su base de datos a la Internet pública.
Utilice Data Transmission Service (DTS) para la sincronización de datos entre regiones.
El acceso a través de Internet pública está sujeto a fluctuaciones de red transfronterizas. Para entornos de producción, utilice una solución de red interna.