Puedo hacer ping pong Redis en el servidor:
# redis-cli ping
PONG
Pero de forma remota, tengo problemas:
$ src/redis-cli -h REMOTE.IP ping
Could not connect to Redis at REMOTE.IP:6379: Connection refused
En la configuración, obtuve el puerto estándar:
# Accept connections on the specified port, default is 6379.
# If port 0 is specified Redis will not listen on a TCP socket.
port 6379
Entonces, ¿quizás debería abrir el puerto 6379 en la máquina remota de Ubuntu? ¿Cómo lo hago?
Respuestas:
¿Estableció la opción de vinculación para permitir el acceso remoto en el servidor de redis?
Antes (archivo
/etc/redis/redis.conf
)Después
y ejecutar
sudo service redis-server restart
para reiniciar el servidor. Si ese no es el problema, es posible que desee verificar cualquier firewall que pueda bloquear el acceso.Importante: Si no usa un firewall (iptables, ufw ..) para controlar quién se conecta al puerto en uso, CUALQUIERA puede conectarse a esta instancia de Redis. Sin usar Redis,
AUTH
eso significa que cualquiera puede acceder / cambiar / eliminar sus datos. ¡Cuidate!fuente
bind 0.0.0.0
tras cadenabind 127.0.0.1
. Redis reiniciado. Y ahora puede conectarse de forma remota.bind 0.0.0.0
solo vsbind 127.0.0.1 0.0.0.0
Para mí, necesitaba hacer lo siguiente:
1- Comentar
bind 127.0.0.1
2- Cambiar
protected-mode
ano
3- Proteger mi servidor con
iptables
( https://www.digitalocean.com/community/tutorials/how-to-implement-a-basic-firewall-template-with-iptables-on-ubuntu-14-04 )fuente
Una nota rápida de que hacer esto sin proteger aún más su servidor Redis no es una buena idea, ya que puede dejarlo expuesto a ataques. Asegúrese de implementar también AUTH o asegurar eso. Consulte http://redis.io/topics/security para obtener más detalles.
fuente
1- Comentar el enlace 127.0.0.1
2- establecer requirepass yourpassword
luego verifique si el firewall bloqueó su puerto
iptables -L -n
parada de iptables de servicio
fuente
Abra $ REDIS_HOME / redis.conf y descomente
requirepass -YOUR-PASSWORD-HERE-
y escriba su contraseña en las líneas especificadas.Inicie sesión en redis usando redis-cli y verifique su contraseña en la base de datos usando el
auth -YOUR-PASSWORD-HERE-
comando.Deshabilite el modo protegido cambiando su cadena en $ REDIS_HOME / redis.conf a
protected-mode no
.Busque todos los valores de los puertos de enlace y comente todos ellos. Simplemente agregue
bind 0.0.0.0
al archivo $ REDIS_HOME / redis.conf.Deshabilite su firewall o abra el puerto redis.
Comience a usar redis
./redis-server $REDIS_HOME/redis.conf
.Verifique la configuración a través de
./redis-cli -h -YOUR-IP- -a -YOUR-PASSWORD-HERE-
../redis-cli -h -YOUR-IP- ping
.fuente
Abra el archivo en la ubicación
/etc/redis.conf
Comentar
bind 127.0.0.1
Reinicie Redis:
Desactivar Firewalld:
Detener Firewalld:
Entonces intenta:
fuente
Una nota rápida de que si está utilizando una instancia de AWS ec2, hay un paso adicional que creo que también es obligatorio. Me perdí el paso 3 y me tomó todo el día descubrir cómo agregar una regla de entrada al grupo de seguridad
Paso 1 (como el anterior): en su redis.conf cambie el enlace 127.0.0.1 para enlazar 0.0.0.0
Paso 2 (como el anterior): en su redis.conf cambie el modo protegido sí al modo protegido no
importante para la instancia Amazon Ec2:
Paso 3: En su máquina ec2 actual, vaya al grupo de seguridad. agregue una regla de entrada para TCP personalizado con el puerto 6379 y seleccione la opción "usar desde cualquier lugar".
fuente
fuente
Enlazar y en modo protegido ambos son los pasos esenciales. Pero si ufw está habilitado, tendrá que hacer que el puerto redis lo permita en ufw.
ufw status
siStatus: active
luego permite redis-portufw allow 6379
vi /etc/redis/redis.conf
bind 127.0.0.1
abind 0.0.0.0
protected-mode yes
aprotected-mode no
fuente