Je peux ping pong Redis sur le serveur:
# redis-cli ping
PONG
Mais à distance, j'ai des problèmes:
$ src/redis-cli -h REMOTE.IP ping
Could not connect to Redis at REMOTE.IP:6379: Connection refused
En config, j'ai le port standard:
# Accept connections on the specified port, default is 6379.
# If port 0 is specified Redis will not listen on a TCP socket.
port 6379
Alors peut-être que je devrais ouvrir le port 6379 sur la machine Ubuntu distante? Comment fait-on ça?
Réponses:
Avez-vous défini l'option de liaison pour autoriser l'accès à distance sur le serveur Redis?
Avant (fichier
/etc/redis/redis.conf
)Après
et courir
sudo service redis-server restart
pour redémarrer le serveur. Si ce n'est pas le problème, vous voudrez peut-être vérifier les pare-feu susceptibles de bloquer l'accès.Important: si vous n'utilisez pas de pare-feu (iptables, ufw ..) pour contrôler qui se connecte au port utilisé, TOUT LE MONDE peut se connecter à cette instance Redis. Sans utiliser Redis,
AUTH
cela signifie que tout le monde peut accéder / modifier / supprimer vos données. Fais attention!la source
bind 0.0.0.0
après une chaînebind 127.0.0.1
. Redis redémarré. Et maintenant peut se connecter à distance.bind 0.0.0.0
seul vsbind 127.0.0.1 0.0.0.0
Pour moi, j'avais besoin de faire ce qui suit:
1- Commentez
bind 127.0.0.1
2- Changer
protected-mode
pourno
3- Protégez mon serveur avec
iptables
( https://www.digitalocean.com/community/tutorials/how-to-implement-a-basic-firewall-template-with-iptables-on-ubuntu-14-04 )la source
Une note rapide que faire cela sans sécuriser davantage votre serveur Redis n'est pas une bonne idée car cela peut vous exposer aux attaques. Assurez-vous également de mettre en œuvre AUTH ou de le sécuriser. Voir http://redis.io/topics/security pour plus de détails.
la source
1- Commentez la liaison 127.0.0.1
2- set requirepass yourpassword
puis vérifiez si le pare-feu a bloqué votre port
iptables -L -n
arrêt du service iptables
la source
Ouvrez $ REDIS_HOME / redis.conf et décommentez
requirepass -YOUR-PASSWORD-HERE-
et notez votre mot de passe dans les lignes spécifiées.Connectez-vous à redis en utilisant redis-cli et vérifiez votre mot de passe dans la base de données à l'aide de la
auth -YOUR-PASSWORD-HERE-
commande.Désactivez le mode protégé en changeant sa chaîne dans $ REDIS_HOME / redis.conf en
protected-mode no
.Recherchez toutes les valeurs de ports de liaison et commentez-les toutes. Il suffit d'ajouter
bind 0.0.0.0
au fichier $ REDIS_HOME / redis.conf.Désactivez votre pare-feu ou ouvrez le port redis.
Commencez à utiliser Redis
./redis-server $REDIS_HOME/redis.conf
.Vérifiez la configuration via
./redis-cli -h -YOUR-IP- -a -YOUR-PASSWORD-HERE-
../redis-cli -h -YOUR-IP- ping
.la source
Ouvrez le fichier à l'emplacement
/etc/redis.conf
Commenter
bind 127.0.0.1
Redémarrez Redis:
Désactivez Firewalld:
Arrêtez Firewalld:
Puis essayez:
la source
Une note rapide que si vous utilisez une instance AWS ec2, il y a une étape supplémentaire qui, je pense, est également obligatoire. J'ai manqué l'étape 3 et il m'a fallu une journée entière pour trouver l'ajout d'une règle entrante au groupe de sécurité
Étape 1 (comme précédemment): dans votre redis.conf, modifiez la liaison 127.0.0.1 pour lier 0.0.0.0
Étape 2 (comme précédemment): dans votre redis.conf, changez le mode protégé oui en mode protégé non
important pour l'instance Amazon Ec2:
Étape 3: Dans votre machine ec2 actuelle, accédez au groupe de sécurité. ajoutez une règle entrante pour TCP personnalisé avec le port 6379 et sélectionnez l'option «utiliser de n'importe où».
la source
la source
La liaison et le mode protégé sont les deux étapes essentielles. Mais si ufw est activé, vous devrez autoriser le port redis dans ufw.
ufw status
siStatus: active
puis autorisez redis-portufw allow 6379
vi /etc/redis/redis.conf
bind 127.0.0.1
enbind 0.0.0.0
protected-mode yes
enprotected-mode no
la source