我刚刚在远程Ubuntu计算机上安装了Redis(VM配置),并使用端口转发能够从远程客户端访问它。 Redis在机器上运行正常:我能够在同一台机器上通过redis-clients发送的'ping'命令得到响应。但是,当我尝试从远程计算机访问Redis服务器时(使用jedis客户端访问java应用程序),我收到套接字超时错误。
稍微研究一下这个问题,我意识到远程机器上的redis-server并不是作为服务工作的。 service
命令的输出如下所示,表示redis-server服务当前已停止([redis-server“前面的[ - ]选项)。
此外,使用netstat
命令,我确保将端口6379分配给redis-server。下面附有相同的快照。
此外,在我的配置文件(redis.conf)中,我已取消注释将服务器绑定到127.0.0.1的行,并将“守护程序”选项更改为“是”。我使用这个配置文件启动服务器。
我非常感谢有关如何通过我的应用程序访问远程服务器(或在后台运行服务以便主动侦听新连接)的任何帮助! 提前谢谢。
答案 0 :(得分:0)
无论是否在后台,Redis默认只侦听localhost。让它听取所有IP地址完全注释掉'bind'行(带有'#'的前缀)。
请记住:使Redis公开可用(例如将其端口暴露给Internet)可能存在安全风险。 Redis没有复杂的集成安全性,因为您只能设置一个简单的全局密码。由于其性能(在平均机器上每秒50000次获取),此密码非常容易发生暴力破解。您可以使用SSH隧道访问您的redis实例。请记住在这种情况下将绑定更改回127.0.0.1。
答案 1 :(得分:0)
您需要做的就是: 在你的redis.conf文件中更改
绑定127.0.0.1
到
绑定0.0.0.0
并重新启动服务器
sudo src / redis-server