Я пытаюсь получить удаленный доступ к моей базе данных redis, которая размещена на моем маленьком сервере Debian, но я не могу заставить ее работать.Надеюсь, кто-нибудь может помочь мне с этим.
Вот шаги, которые я предпринял.
Я настроил свой Redis в соответствии с этим руководством.Используя предоставленный сценарий оболочки установки, я получил следующий журнал, показывающий все созданные каталоги / файлы:
Port : 6379
Config file : /etc/redis/6379.conf
Log file : /var/log/redis_6379.log
Data dir : /var/lib/redis/6379
Executable : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Теперь я могу запускать / останавливать / перезапускать с service redis_6379 start/stop/restart
.На данный момент я могу подключиться к своему redis локально .
root@smg:/home/local: redis-cli ping
PONG
Это вывод моего журнала.
12505:M 11 Jun 16:18:48.248 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
12505:M 11 Jun 16:18:48.248 # Server initialized
12505:M 11 Jun 16:18:48.248 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
12505:M 11 Jun 16:18:48.249 * DB loaded from disk: 0.000 seconds
12505:M 11 Jun 16:18:48.249 * Ready to accept connections
Я пошел дальше иизменил настройку привязки в redis/6379.conf
в разделе «Сетевые подключения», чтобы привязать к bind 0.0.0.0
, что должно позволить всем IP-адресам подключаться к моему серверу через порт 6379. Также я установил правило входящей почты для iptables, которое выглядит следующим образом -A INPUT -p tcp -m tcp --dport 6379 -j ACCEPT
.При необходимости я могу предоставить полный журнал iptables.
Я перезагрузил свой redis.Проверка с помощью ps aux | grep redis
Я подтверждаю, что мой сервер работает.
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 12505 0.0 0.1 43216 4008 ? Ssl 16:18 0:08 /usr/local/bin/redis-server *:6379
Теперь я проверяю, действительно ли мой redis действительно прослушивает все порты.Поэтому я проверяю с netstat -nlpt | grep 6379
и получаю следующий вывод.Я думаю, что вывод подтверждает, что Redis прослушивает все внешние IP-адреса, но я не совсем уверен.
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 12505/redis-server
В основном все настроено сейчас для удаленных подключений, но если я пытаюсь подключиться с моего сервераЯ получаю тайм-аут соединения.
root@smg:/home/local: redis-cli -h [serverIP]
Could not connect to Redis at [serverIP]:6379: Connection timed out
Я видел ошибку Connection Refused
во многих потоках здесь, в StackOverflow, но ничего, что беспокоит тайм-аут соединения.
У меня действительно нетИдея, почему я получаю этот тайм-аут.Надеюсь, один из вас знает об этом больше.
Заранее спасибо!