Paso 3: Acceda a una instancia de DCS Redis en Linux
Esta sección describe cómo acceder a una instancia de DCS Redis 3.0 a través de una red pública mediante redis-cli en Linux.
El acceso público ayuda al personal de I+D a establecer un entorno local para el desarrollo o las pruebas, mejorando la eficiencia del desarrollo. Sin embargo, en el entorno de producción (entorno oficial), acceda a una instancia de DCS Redis a través de una VPC para garantizar un acceso eficiente.
Prerrequisitos:
Antes de utilizar redis-cli para acceder a una instancia de DCS Redis a través de una red pública, asegúrese de que:
- La versión de instancia es Redis 3.0 y se ha habilitado el acceso público.
- Si se necesitan certificados para acceder a la instancia de DCS, descargue el certificado desde la página de detalles de la instancia de DCS. Para más detalles, consulte Consulta de detalles de instancia.
Conexión a Redis con la encriptación SSL
- Asegúrese de que la regla de grupo de seguridad permita el acceso público a través del puerto 36379.
Cuando la encriptación SSL está habilitada, permita el acceso público a través del puerto 36379. Asegúrese de que el cliente Stunnel se ha instalado.
Figura 1 Regla de grupo de seguridad (puerto 36379)
- Obtenga la dirección de acceso público y los certificados de la instancia en la página Basic Information de la instancia.
- La dirección de acceso público se muestra en la sección Connection.
- Los certificados se pueden descargar haciendo clic en Download Certificate for Public Access en la sección Connection. Después de la descompresión, obtendrá dcs-ca.cer (el certificado de clave pública en formato binario) y dcs-ca-bundle.pem (el archivo de certificado en formato de texto).
Figura 2 Consulta de la dirección de acceso público (SSL habilitado; puerto 36379)
- Inicie sesión en el dispositivo local de Linux.
- Instale el cliente Stunnel.
Utilice cualquiera de los siguientes métodos para instalar Stunnel.
Se recomiendan los métodos de instalación apt y yum. Cualquier SO común de Linux debe soportar al menos uno de estos métodos de instalación.
- método apt-get:
apt-get se utiliza para gestionar los paquetes de software DEB y es aplicable a SO de Debian como Ubuntu. Ejecute el siguiente comando para instalar Stunnel:
apt install stunnel o apt-get install stunnel
Si no puede encontrar Stunnel después de ejecutar el comando, ejecute el comando apt update para actualizar la configuración y luego vuelva a instalar Stunnel.
- método yum:
yum se utiliza para administrar paquetes de software RPM y aplicable a SOs como Fedora, CentOS y Red Hat. Ejecute el siguiente comando para instalar Stunnel:
yum install stunnel
- método apt-get:
- Abra el archivo de configuración de Stunnel stunnel.conf.
- Si Stunnel se instala usando apt-get, el archivo de configuración se almacena en el directorio /etc/stunnel/stunnel.conf de forma predeterminada.
Si este directorio no existe o no existe ningún archivo de configuración, agregue un directorio o archivo de configuración.
- Si Stunnel se instala usando yum, el archivo de configuración se almacena en el directorio /usr/local/stunnel/stunnel.conf por defecto.
Si este directorio no existe o no existe ningún archivo de configuración, agregue un directorio o archivo de configuración.
- Si no está seguro de dónde almacenar el archivo de configuración, introduzca el comando stunnel después de la instalación para ver el directorio para almacenar el archivo de configuración.
- El archivo de configuración se puede almacenar en cualquier directorio. Especifique este archivo de configuración al iniciar Stunnel.
- Si Stunnel se instala usando apt-get, el archivo de configuración se almacena en el directorio /etc/stunnel/stunnel.conf de forma predeterminada.
- Agregue el siguiente contenido al archivo de configuración stunnel.conf y, a continuación, guarde y salga.
debug = 4 output = /var/log/stunnel.log sslVersion = all [redis-client] client = yes accept = 8000 connect = {public access address} CAfile = /etc/stunnel/dcs-ca.cer
Modifique los siguientes parámetros según sea necesario y deje otros parámetros sin cambios:- client: indica Stunnel. El valor fijo es yes.
- CAfile: especifica un certificado de CA, que es opcional. Si se requiere un certificado de CA, descargue y descomprima el certificado dcs-ca.cer como se indica en 2. Si no es necesario, elimine este parámetro.
- accept: especifica el número de puerto de escucha definido por el usuario de Stunnel. Especifique este parámetro al acceder a una instancia de DCS mediante un cliente de Redis.
- connect: especifica la dirección de reenvío y el número de puerto de Stunnel. Establezca este parámetro en la dirección de acceso público de instancia obtenida en 2.
El siguiente es un ejemplo de configuración:
[redis-client] client = yes CAfile = D:\tmp\dcs\dcs-ca.cer accept = 8000 connect = 49.**.**.211:36379
- Ejecute los siguientes comandos para iniciar Stunnel:
stunnel /{customdir}/stunnel.conf
En el comando anterior, {customdir} indica el directorio de almacenamiento personalizado para el archivo stunnel.conf descrito en 5. El siguiente es un ejemplo de comando:
stunnel /etc/stunnel/stunnel.conf
Para Ubuntu SO, ejecute el comando /etc/init.d/stunnel4 start para iniciar Stunnel. El nombre del servicio o proceso es stunnel4 para la versión Stunnel 4.x.
Después de iniciar el cliente Stunnel, ejecute el comando ps -ef|grep stunnel para comprobar si el proceso se está ejecutando correctamente.
- Ejecute el siguiente comando para comprobar si Stunnel está siendo escuchado:
netstat -plunt |grep 8000|grep "LISTEN"
8000 indica el número de puerto de escucha definido por el usuario de Stunnel configurado en el campo de accept en 6.
Si se muestra una línea que contiene el número de puerto 8000 en el resultado devuelto, Stunnel se está ejecutando correctamente. Cuando el cliente de Redis se conecta a la dirección 127.0.0.1:8000, Stunnel reenviará las solicitudes a la instancia de DCS Redis.
- Acceda a la instancia de DCS Redis.
- Inicie sesión en el dispositivo local de Linux.
- Ejecute el siguiente comando para descargar el paquete de código fuente de su cliente Redis desde http://download.redis.io/releases/redis-5.0.8.tar.gz:
wget http://download.redis.io/releases/redis-5.0.8.tar.gz
También puede instalar el cliente Redis ejecutando el siguiente comando yum o apt:
- yum install redis
- apt install redis-server
- Ejecute el siguiente comando para descomprimir el paquete de código fuente de su cliente Redis:
- Ejecute los siguientes comandos para ir al directorio Redis y compilar el código fuente de su cliente Redis:
make
- Ejecute los siguiente comandos para acceder a la instancia de DCS Redis elegida:
./redis-cli -h 127.0.0.1 -p 8000
En el comando anterior:
- La dirección siguiente -h indica la dirección del cliente Stunnel, que es 127.0.0.1.
- El puerto siguiente -p es el puerto de escucha del cliente Stunnel, que se ha configurado en el campo de accept en 6. 8000 se usa un ejemplo.
No utilice la dirección de acceso público y el puerto mostrados en la consola para los parámetros -h y -p.
- Ingrese la contraseña. Puede leer y escribir datos almacenados en caché solo después de verificar la contraseña.
{contraseña} indica la contraseña utilizada para iniciar sesión en la instancia de DCS Redis elegida. Esta contraseña se define durante la creación de una instancia de DCS Redis.
Ha accedido correctamente a la instancia si se muestra el siguiente resultado del comando:
OK 127.0.0.1:8000>
Conexión a Redis sin la encriptación SSL
- Asegúrese de que la regla de grupo de seguridad permita el acceso público a través del puerto 6379.
Cuando la encriptación SSL está deshabilitada, se puede acceder a la dirección de acceso público de instancia solo si se permite el acceso a través del puerto 6379.
Figura 3 Regla de grupo de seguridad (puerto 6379)
- Obtener la dirección de acceso público de la instancia.
La dirección de acceso público se muestra en la sección Connection de la página Basic Information de la instancia.Figura 4 Consulta de la dirección de acceso público (SSL deshabilitado; puerto 6379)
- Inicie sesión en el dispositivo local de Linux.
- Ejecute el siguiente comando para descargar el paquete de código fuente de su cliente Redis desde http://download.redis.io/releases/redis-5.0.8.tar.gz:
wget http://download.redis.io/releases/redis-5.0.8.tar.gz
También puede instalar el cliente Redis ejecutando el siguiente comando yum o apt:
- yum install redis
- apt install redis-server
- Ejecute el siguiente comando para descomprimir el paquete de código fuente de su cliente Redis:
tar -xzf redis-5.0.8.tar.gz
- Ejecute los siguientes comandos para ir al directorio Redis y compilar el código fuente de su cliente Redis:
cd redis-5.0.8
make
- Ejecute los siguiente comandos para acceder a la instancia de DCS Redis elegida:
cd src
./redis-cli -h {dirección de acceso público} -p 6379
Reemplace {dirección de acceso público} con la dirección obtenida en 2. Por ejemplo:
./redis-cli -h 49.**.**.211 -p 6379
- Ingrese la contraseña. Puede leer y escribir datos almacenados en caché solo después de verificar la contraseña.
auth {contraseña}
{contraseña} indica la contraseña utilizada para iniciar sesión en la instancia de DCS Redis elegida. Esta contraseña se define durante la creación de una instancia de DCS Redis.
Ha accedido correctamente a la instancia si se muestra el siguiente resultado del comando:
OK 49.**.**.211:6379>
Resolución de problemas
- Síntoma: se muestra "Error: Connection reset by peer".
Posible causa: El grupo de seguridad está configurado incorrectamente. Debe habilitar el puerto 36379 o 6379.
- Cuando se utiliza redis-cli para conectarse a una instancia, se muestra el siguiente mensaje que indica que el host remoto cierra por la fuerza una conexión existente.
Posible causa: Se ha habilitado el encriptación SSL, pero Stunnel no está configurado durante la conexión. La dirección IP mostrada en la consola se utilizó para la conexión. En este caso, siga estrictamente las instrucciones proporcionadas en Conexión a Redis con la encriptación SSL.
- Para obtener más información acerca de los errores de conexión de Redis, consulte Solución de problemas de excepciones de conexión a Redis.