Я могу пинг-понг Redis на сервере:
# redis-cli ping
PONG
Но удаленно возникли проблемы:
$ src/redis-cli -h REMOTE.IP ping
Could not connect to Redis at REMOTE.IP:6379: Connection refused
В конфиге я получил стандартный порт:
# Accept connections on the specified port, default is 6379.
# If port 0 is specified Redis will not listen on a TCP socket.
port 6379
Может, мне стоит открыть порт 6379 на удаленной машине с Ubuntu? Как мне это сделать?
Ответы:
Вы установили опцию привязки, чтобы разрешить удаленный доступ на сервере Redis?
До (файл
/etc/redis/redis.conf
)После
и запустите,
sudo service redis-server restart
чтобы перезапустить сервер. Если проблема не в этом, вы можете проверить все брандмауэры, которые могут блокировать доступ.Важно: если вы не используете брандмауэр (iptables, ufw ..) для управления подключением к используемому порту, ЛЮБОЙ может подключиться к этому экземпляру Redis. Без использования Redis
AUTH
это означает, что любой может получить доступ / изменить / удалить ваши данные. Быть в безопасности!источник
bind 0.0.0.0
после строкиbind 127.0.0.1
. Перезапустил Redis. И теперь можно подключиться удаленно.bind 0.0.0.0
один противbind 127.0.0.1 0.0.0.0
Для меня мне нужно было сделать следующее:
1- Комментарий
bind 127.0.0.1
2- Изменить
protected-mode
наno
3- Защитите мой сервер с помощью
iptables
( https://www.digitalocean.com/community/tutorials/how-to-implement-a-basic-firewall-template-with-iptables-on-ubuntu-14-04 )источник
Замечу, что делать это без дополнительной защиты сервера Redis - не лучшая идея, поскольку это может оставить вас уязвимым для атаки. Не забудьте также реализовать AUTH или как-то защитить это. Подробнее см. Http://redis.io/topics/security .
источник
1- Закомментировать привязку 127.0.0.1
2- установить requirepass yourpassword
затем проверьте, не заблокировал ли брандмауэр ваш порт
iptables -L -n
остановка службы iptables
источник
Откройте $ REDIS_HOME / redis.conf, раскомментируйте
requirepass -YOUR-PASSWORD-HERE-
и запишите свой пароль в указанные строки.Войдите в redis с помощью redis-cli и проверьте свой пароль в базе данных с помощью
auth -YOUR-PASSWORD-HERE-
команды.Отключите защищенный режим, изменив его строку в $ REDIS_HOME / redis.conf на
protected-mode no
.Найдите все значения портов привязки и прокомментируйте их все. Просто добавьте
bind 0.0.0.0
в файл $ REDIS_HOME / redis.conf.Отключите брандмауэр или откройте порт Redis.
Начать redis с помощью
./redis-server $REDIS_HOME/redis.conf
.Проверьте конфигурацию через
./redis-cli -h -YOUR-IP- -a -YOUR-PASSWORD-HERE-
../redis-cli -h -YOUR-IP- ping
.источник
Откройте файл в расположении
/etc/redis.conf
Закомментировать
bind 127.0.0.1
Перезагрузите Redis:
Отключить Firewalld:
Остановить Firewalld:
Тогда попробуйте:
источник
Небольшое примечание: если вы используете экземпляр AWS ec2, есть еще один дополнительный шаг, который, я считаю, также является обязательным. Я пропустил шаг 3, и мне понадобился целый день, чтобы придумать, как добавить правило для входящего трафика в группу безопасности.
Шаг 1 (как и предыдущий): в вашем redis.conf измените привязку 127.0.0.1 на привязку 0.0.0.0
Шаг 2 (как и раньше): в вашем redis.conf измените защищенный режим да на защищенный режим нет
важно для инстанса Amazon Ec2:
Шаг 3: На вашем текущем компьютере ec2 перейдите в группу безопасности. добавьте правило для входящего трафика для настраиваемого TCP с портом 6379 и выберите вариант «использовать откуда угодно».
источник
источник
Привязка и защищенный режим являются важными шагами. Но если ufw включен, вам нужно будет разрешить порт redis в ufw.
ufw status
еслиStatus: active
затем разрешите redis-portufw allow 6379
vi /etc/redis/redis.conf
bind 127.0.0.1
Tobind 0.0.0.0
protected-mode yes
Toprotected-mode no
источник