Ошибка: сброс соединения по одноранговому узлу при подключении к кэш-памяти Elastic с использованием метода stunnal - PullRequest
0 голосов
/ 29 сентября 2018

Я использую эластичный кеш с одним узлом, редис 4.0, более поздняя версия.

Я включил In-Transit Encryption и дал токен redis auth.

Я создал один бастионный хост со станном, используя эту ссылку

https://aws.amazon.com/premiumsupport/knowledge-center/elasticache-connect-redis-node/

IЯ могу подключиться к узлу Redis эластичного кэша следующим образом:

redis-cli -h имя хоста -p 6379 -a mypassword

, и я могу также использовать telnet. НО когда я пингую (ожидаемый ответ "PONG") на redis-cli после того, как соединение дает

"Ошибка: сброс соединения по пиру"

Я проверил группу безопасности с обеих сторон.Любая идея ?Машина Bastion Host Ubuntu 16.04

Ответы [ 3 ]

0 голосов
/ 08 октября 2018

Как я уже упоминал в вопросе, я выполнял команду следующим образом:

redis-cli -h имя-хоста -p 6379 -a mypassword

правильный путьдля подключения к кластеру ElastiCache через stunnel следует использовать «localhost» в качестве адреса хоста, например:

redis-cli -h localhost -p 6379 -a mypassword

Существует объяснение использования адреса локального хоста:

когда вы создаете туннель между вашим бастионным сервером и хостом ElastiCache через stunnel, программа запустит службу, которая прослушивает локальный порт TCP (6379),инкапсулируйте связь с использованием протокола SSL и передайте данные между локальным сервером и удаленным хостом.

вам нужно запустить stunnel, проверить, прослушивает ли служба адрес локального хоста (127.0.0.1), иподключитесь, используя "localhost" в качестве адреса назначения: "

  1. Start stunnel.

    $ sudo stunnel /etc/stunnel/redis-cli.conf

  2. Используйте команду netstat для подтверждения запуска туннелей:

    $ netstat -tulnp |grep -i stunnel

  3. Теперь вы можете использовать redis-cli для подключения к зашифрованному узлу Redis, используя локальную конечную точку туннеля:

    $ redis-cli -h localhost -p 6379 -a MySecretPassword

    localhost: 6379> установить foo "bar"

    OK

    localhost: 6379> получить foo

    "бар"

0 голосов
/ 23 июля 2019

Скорее всего, ElastiCache Redis Instance использует шифрование в процессе передачи и шифрование в состоянии покоя, а интерфейс CLI Redis несовместим с шифрованием.

Вам необходимо настроить stunnel для подключения кластера redis

https://datanextsolutions.com/blog/how-to-fix-redis-cli-error-connection-reset-by-peer/

0 голосов
/ 02 октября 2018

«Ошибка: сброс соединения по одноранговому узлу» означает, что Redis убивает ваше соединение без отправки какого-либо ответа.

Одна из возможных причин - вы пытаетесь подключиться к узлу Redis без использования SSL, так как ваше соединение будет отклонено сервером Redis без ответа [1].Убедитесь, что вы подключаетесь через правильный порт в туннельном прокси.Если вы подключаетесь напрямую с хоста-бастиона, вам следует использовать локальный хост.

Другой вариант заключается в том, что вы неправильно настроили свой stunnel, чтобы он не включал версию SSL, поддерживаемую Redis.Вы должны дважды проверить, что файл конфигурации точно такой же, как тот, который приведен в документации по поддержке.

Если это не решит вашу проблему, вы можете попытаться создать клиентскую часть, включенную в открытый исходный код AWS. [2]Вам нужно проверить репозиторий, следовать инструкциям в файле readme, а затем выполнить команду BUILD_SSL = yes, выполнить redis-cli.

[1] https://github.com/madolson/redis/blob/unstable/src/ssl.c#L464 [2] https://github.com/madolson/redis/blob/unstable/SSL_README.md

...