无法从Windows连接到redis linux服务器

时间:2017-08-01 05:59:55

标签: linux windows ubuntu redis

我无法从Windows 8.1 64位连接到redis服务器(单独PC上的ubuntu服务器16.04 LTS 64位)。 Redis有很好的文档记录,但是我发现很少有关于如何从单独的机器连接redis服务器的信息。 我已将最新版本的redis安装到linux中,本地一切正常。我通过 redis-server 启动服务器,然后启动 redis-cli ,然后我就可以将信息添加到服务器并检索它。在Windows中也是如此 - 一切都在本地运行。 为了从windows连接到linux redis服务器,我做了这些更改。 在linux中,我通过sudo nano / etc / network / interfaces

设置静态本地IP

地址192.186.xxx.xxx

netmask 255.255.255.0

网络192.168.xxx.xxx

播出192.168.xxx.xxx

网关192.168.xxx.xxx

dns-nameservers 8.8.8.8

redis.conf 文件中,我绑定了我的互联网服务提供商提供的Windows PC IP。我还在路由器GUI中打开了TCP 6379端口。在Windows中,我修改了 redis.windows-service.conf redis.windows.conf 文件。在这两个中,我绑定了我的互联网服务提供商提供的IP地址。在此之后,我无法正常启动 redis-cli (空黑色cmd窗口可见) 我做错了什么?我会非常感谢任何帮助。

3 个答案:

答案 0 :(得分:3)

你应该修改redis conf,我的redis conf位于/etc/redis/6379.conf。

你应该对该行进行评论" bind 127.0.0.1"或者更改为绑定0.0.0.0。 绑定指定redis服务器应该侦听的网络接口。默认值为localhost。

将保护模式更改为否

  

保护模式是一层安全保护,以避免这种情况   在互联网上打开的Redis实例被访问和利用。

     

当保护模式打开且如果:

     

1)服务器未使用具体绑定到一组地址       "结合"指令。

     

2)没有配置密码。

     

服务器只接受来自客户端连接的连接    IPv4和IPv6环回地址127.0.0.1和:: 1,以及Unix域    套接字。

     

默认情况下启用保护模式。你应该只在禁用它时禁用它    您确定希望其他主机的客户端连接到Redis    即使没有配置身份验证,也没有配置一组特定的接口    使用" bind"明确列出指令。

     

protected-mode yes

如果您不禁用保护模式,您的redis服务器将不会监听公共IP接口。更多细节见上文。

答案 1 :(得分:1)

如果您可以从您的计算机访问远程服务器,那么您的问题很可能是使用redis安全配置,请阅读Securing Redis section in this document 我发现大多数时候人们不会改变" bind" redis config中的指令值,您可以通过设置bind 0.0.0.0并重新启动redis服务器来测试它,如果这是问题,那么您可以允许访问服务器所需的任何子网。

答案 2 :(得分:1)

我也遇到过尝试连接到Redis的相同问题(MSOpenTech 3.0.5和3.2.1)默认情况下,如果没有声明绑定,那么redis(根据conf文件中的注释)将监听所有可用的接口。也就是说,v 3.2.1的确绑定了127.0.0.1'已设置...在3.0.5中设置绑定到'绑定127.0.0.1'仍然允许使用redis-cli。绑定到192.168.1.2会使redis-cli无法使用这两个版本 - 没有IP和端口提示,只是一个克拉而cli不接受键盘输入。 Binging到外部IP,MSOpenTech fork服务不会重新启动并抛出错误(很好)。清除所有绑定并恢复到原始状态,redis-cli再次可用。此外,在MS OpenTech分支上没有“ProtectedMode”和#39;在任一配置文件中设置。不确定是否可以实际设置。

已经通过github在MSOpenTech分叉上提出这个问题,但期待沉默是唯一的回复......

我不确定除了知道你并不孤单外,这会对你有所帮助。我正在尝试从PHP发布到AS3订阅者 - 它在Flash IDE中运行良好,但是从本地主机浏览器中,redis似乎是聋哑人。