问题描述
我可以在服务器上乒乓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
所以也许我应该在远程ubuntu机器上打开端口6379?怎么做?
最佳答案
您是否设置了绑定选项以允许Redis服务器上的远程访问?
之前(文件/etc/redis/redis.conf
)
bind 127.0.0.1
后
bind 0.0.0.0
并运行sudo service redis-server restart
重新启动服务器。如果这不是问题,则可能要检查所有可能阻止访问的防火墙。
重要:如果您不使用防火墙(iptables,ufw ..)来控制谁连接到正在使用的端口,则任何人都可以连接到此Redis实例。无需使用Redis的AUTH
,这意味着任何人都可以访问/更改/删除您的数据。注意安全!
次佳答案
对于我来说,我需要执行以下操作:
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密码
然后检查防火墙是否阻止了您的端口
iptables -L -n
服务iptables停止
第五种答案
步骤1:转到位置:/etc/redis.conf
步骤2:发出绑定127.0.0.1
步骤3:重新启动Redis:-sudo systemctl启动redis.service
步骤4:禁用Firewalld systemctl禁用firewalld
步骤5:停止防火墙系统ctl停止防火墙
然后尝试。
redis-cli -h 192.168.0.2(ip)-a redis(用户名)