Redis не работает в фоновом режиме

Я только что установил Redis на удаленный компьютер Ubuntu (конфигурации виртуальной машины) и использовал переадресацию портов, чтобы иметь доступ к нему с удаленного клиента. Redis работает правильно на самой машине: я могу получить ответ на команды «ping», отправленные через Redis-клиенты на той же машине. Однако, когда я пытаюсь получить доступ к серверу Redis с удаленного компьютера (используя клиент jedis для java-приложения), я получаю ошибку тайм-аута сокета.

Немного изучив проблему, я понял, что redis-сервер на удаленной машине не работает как служба. Вывод команды service приведен ниже, который показывает, что служба redis-server в настоящее время остановлена ​​(опция [-] перед «redis-server»).

Кроме того, с помощью команды netstat я убедился, что порт 6379 назначен серверу redis. Ниже прилагается снимок того же самого. введите здесь описание изображения

Кроме того, в моем файле конфигурации (redis.conf) я раскомментировал строку, которая привязывает сервер к 127.0.0.1, а также изменил параметр «daemon» на «yes». Я запускаю сервер, используя этот файл конфигурации.

Любая помощь в том, как я могу получить доступ к удаленному серверу (или запустить службу в фоновом режиме, чтобы она активно прослушивала новые подключения) через мое приложение, очень ценится! Заранее спасибо.


person BajajG    schedule 20.06.2014    source источник
comment
Изменить: я также изменил привязку с 127.0.0.1 на 0.0.0.0, но она также не работает.   -  person BajajG    schedule 20.06.2014
comment
В идеале вы должны получить следующий ответ: netstat -a | grep 6379 tcp 0 0 :6379 *: ПРОСЛУШАТЬ   -  person Chhavi Gangwal    schedule 22.06.2014
comment
Как вы запускаете свой сервер? В идеале вы должны запустить его вместе с путем к вашему конфигурационному файлу, в котором вы внесли изменения. Ищите обновленный ответ.   -  person Chhavi Gangwal    schedule 22.06.2014
comment
Я всегда запускаю свой сервер с путем к файлу конфигурации. Я понял проблему. Порт на удаленной машине был назначен Redis, но блокировался брандмауэром. После открытия порта для удаленных подключений я смог запустить его правильно. Но спасибо за ваше время. Я очень ценю вашу помощь.   -  person BajajG    schedule 23.06.2014


Ответы (2)


Независимо от того, в фоновом режиме или нет, Redis по умолчанию слушает только локальный хост. Чтобы он прослушивал все IP-адреса, полностью закомментируйте строку «bind» (префикс «#»).

Просто помните: сделать Redis общедоступным (например, открыть его порт в Интернете) может быть угрозой безопасности. Redis не имеет сложной встроенной системы безопасности, так как вы можете установить только простой глобальный пароль. Из-за своей производительности (50000+ запросов в секунду на средней машине) этот пароль очень подвержен попыткам взлома. Вместо этого вы можете использовать SSH-туннелирование для доступа к вашему экземпляру Redis. Просто не забудьте изменить привязку обратно на 127.0.0.1 в этом случае.

person Peter Hommel    schedule 20.06.2014
comment
Я попытался прокомментировать строку «bind», но не повезло. В настоящее время я привязываю его к 0.0.0.0 для доступа к нему по всему миру. Все равно ничего не работает. - person BajajG; 21.06.2014
comment
Прежде всего, я рад слышать, что вы установили и запустили удаленное соединение. Однако вы все еще можете рассмотреть мой подход к безопасному соединению. Я сделал это сам для нескольких приложений C #, и это работает как шарм. Я использую библиотеку C# ssh для подключения к серверу, на котором работает redis (на порту 22), туннелируя порт redis с client-localhost на server-localhost. Затем я подключил свой redis-клиент на клиентской машине к локальному хосту и вуаля: безопасное зашифрованное соединение. Должна быть какая-то простая в использовании java-библиотека для ssh (я просто не знаю ни одной по имени, я не очень разбираюсь в java)... - person Peter Hommel; 26.06.2014
comment
Спасибо за предложение. Я обязательно попробую это! :) - person BajajG; 27.06.2014

Все, что вам нужно сделать, это: В вашем файле redis.conf изменить

привязать 127.0.0.1

to

привязать 0.0.0.0

и перезагрузи свой сервер

sudo src/redis-сервер

Проверьте это: Redis — подключение к удаленному серверу

person Chhavi Gangwal    schedule 20.06.2014
comment
Я тоже пробовал это, но это не работает. Пожалуйста, проверьте комментарий под вопросом. - person BajajG; 21.06.2014