Как отключить «защищенный режим» в Redis?

Я бы хотел отключить защищенный режим на моем производстве Redis. Что касается следующей ошибки, которую я получил от другого экземпляра Redis-Sentinel, я мог отключить его в реальном времени, подключившись к Redis с главной машины, на которой он работает.

ОТКАЗАНО Redis работает в защищенном режиме, потому что защищенный режим включен, адрес привязки не указан, пароль аутентификации не установлен просил клиентов. В этом режиме подключения принимаются только от петлевой интерфейс. Если вы хотите подключиться с внешнего компьютеров в Redis, вы можете принять одно из следующих решений:

1) Просто отключите защищенный режим, отправив команду 'CONFIG SET protected-mode no 'из интерфейса обратной петли, подключившись к Redis с того же хоста, на котором запущен сервер, однако УБЕДИТЕСЬ Redis не будет общедоступным из Интернета, если вы это сделаете. Использовать CONFIG REWRITE, чтобы сделать это изменение постоянным.

2) Как вариант, можно просто отключить защищенный режим, отредактировав файл конфигурации Redis и установка защищенного режима вариант «нет», а затем перезапустите сервер.

3) Если вы запускали сервер вручную только для тестирования, перезапустите его. с параметром --protected-mode no.

4) Установите адрес привязки или пароль аутентификации.

ПРИМЕЧАНИЕ. Вам нужно выполнить только одно из указанных выше действий, чтобы сервер, чтобы начать принимать подключения извне.

Но когда я подключаюсь и пытаюсь отключить его, я получаю сообщение об ошибке (error) ERR Unsupported CONFIG parameter: protected-mode .

Auth настроено или что-то еще - вся безопасность управляется правилами межсетевого экрана. redis.conf почти по умолчанию.

Демо

root@svim-redis03 /etc/redis # redis-cli

127.0.0.1:6379> CONFIG GET protected*
(empty list or set)
127.0.0.1:6379> CONFIG GET bind*
1) "bind"
2) "127.0.0.1"
127.0.0.1:6379> CONFIG SET protected-mode no
(error) ERR Unsupported CONFIG parameter: protected-mode
127.0.0.1:6379> exit

root@svim-redis03 /etc/redis # redis-server --version
Redis server v=3.2.9 sha=00000000:0 malloc=jemalloc-4.0.3 bits=64 build=86450d2ba8219c1e

Есть ли что-то, что мне нужно проверить или изменить раньше? Я не смог найти никаких подсказок в документации или в проблемах GitHub .

Обновление 01

Невозможно даже изменить адрес привязки или любой другой параметр конфигурации . Нужно ли сначала включить изменения конфигурации?

127.0.0.1:6379> config set bind "127.0.0.1 11.12.13.14"
(error) ERR Unsupported CONFIG parameter: bind
4
задан 12 July 2017 в 10:25
1 ответ

Оказывается, что текущий запущенный сервер не той версии, что и двоичный Я установил.

Как это воспроизвести?

Просто подключитесь через redis-cli к вашему экземпляру redis и введите INFO server , который вернет кучу информации.

127.0.0.1:6379> INFO server
# Server
redis_version:3.0.7
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:869e89100d5ea8c2
redis_mode:standalone
os:Linux 4.2.0-35-generic x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:4.8.4
process_id:26720
run_id:6645270dd2ac6a7f96caa054f9dbba9e66566755
tcp_port:6379
uptime_in_seconds:10971777
uptime_in_days:126
hz:10
lru_clock:6676576
config_file:/etc/redis/redis.conf

Как видите, этот экземпляр redis работает почти 127 дней и использует redis_version: 3.0.7 .

Как это исправить?

Перезагрузите сервер и убедитесь, что вы действительно перезапустили его ! Например, с большинством дистрибутивов Linux вы можете сделать это, нажав следующие команды:

root@svim-redis03 ~ # service redis-server stop
Stopping redis-server: redis-server.

Проверьте, действительно ли он находится в автономном режиме, попытавшись подключиться с помощью redis-cli . Если вы все еще можете подключиться, экземпляр все еще работает. Проверьте это, выполнив поиск активных процессов redis.

root@svim-redis03 ~ # ps -efl |grep redis
1 S redis    12418     1  0  80   0 - 10673 ep_pol  2016 ?        05:33:17 /usr/bin/redis-server 127.0.0.1:6381
1 S redis    12442     1  0  80   0 - 11697 ep_pol  2016 ?        05:33:46 /usr/bin/redis-server 127.0.0.1:6382
1 S redis    12453     1  0  80   0 - 10673 ep_pol  2016 ?        05:40:17 /usr/bin/redis-server 127.0.0.1:6383
4 S root     16570 16386  0  80   0 -  2489 wait_w 10:42 pts/7    00:00:00 tail -f /var/log/redis/redis-server-6379.log
0 S root     17064 12637  0  80   0 -  3617 pipe_w 10:47 pts/1    00:00:00 grep --color=auto redis
1 S redis    26720     1  0  80   0 - 453041 ep_pol Mar07 ?       08:37:01 /usr/bin/redis-server 127.0.0.1:6379

Как видите, экземпляр (идентификатор процесса: 26720) все еще работает. Закройте его с помощью следующей команды.

kill 26720

После того, как вы завершили процесс, проверьте еще раз с помощью ps -efl | grep redis , если экземпляр действительно не работает.

Наконец, запустите его снова с помощью

root@svim-redis03 ~ # service redis-server start
Starting redis-server: redis-server.

Теперь проверьте, работает ли экземпляр с правильной версией.

root@svim-redis03 ~ # redis-cli
127.0.0.1:6379> INFO server
# Server
redis_version:3.2.9
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:86450d2ba8219c1e
redis_mode:standalone
os:Linux 4.2.0-35-generic x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:4.8.4
process_id:17135
run_id:40d6fa2e2b25e8f5b97a3c97ec1bddb8edda0014
tcp_port:6379
uptime_in_seconds:11
uptime_in_days:0
hz:10
lru_clock:6677102
executable:/usr/bin/redis-server
config_file:/etc/redis/redis.conf
5
ответ дан 3 December 2019 в 03:15

Теги

Похожие вопросы