Laravel Homestead Redis端口转发

9

我在远程连接本地Homestead Redis服务器时遇到一些问题。 我同时使用命令行(redis-cli)和RDM

我能够通过PgAdmin在这个盒子中连接Postgresql,但Redis返回:

无法连接到127.0.0.1:63790的Redis:连接被拒绝

我的Redis配置文件“bind”指令被注释掉,因此它应该接受来自所有来源的连接。我还尝试停止Redis并重新启动它,手动指向配置文件,但没有成功。

在我的Homestead.yaml配置文件中,默认情况下未转发Redis端口。 根据Homestead的文档,我可以像这样设置端口转发:

ports:
    - send: 63790
      to: 6379
      protocol: udp

我也尝试了那个方法并重启了服务器,但它没有起作用。

我漏掉了什么吗?


你不需要进行端口转发就可以连接到Homestead上的Redis服务器。 - Yevgeniy Afanasyev
4个回答

51

对于 Homestead 0.4 及以上版本,由于 Redis 安全设置,它只绑定在 127.0.0.1 上。

在这种情况下,您需要绑定额外的 IP 地址。

  1. SSH 登录您的服务器。

$sudo vi /etc/redis/redis.conf

滚动到 bind 127.0.0.1 这一行,添加额外的 IP 地址 192.168.10.10。它会变成这样:

bind 127.0.0.1 192.168.10.10

保存并退出。

  1. 重启 Redis 服务器并退出服务器。

$sudo /etc/init.d/redis-server restart

就是这样,现在您应该能够从您的主机连接到 Homestead Redis。


真棒的东西!! - Gerardo Jaramillo
我发现,现在你需要使用在你的/etc/hosts文件中指定的IP地址,而不是在你的Homestead.yaml文件中指定的IP地址,而这个IP地址是10.211.55.5。相比之下,你不再需要使用192.168.10.10。 - mike.bronner
使用新的 Laravel Homestead 9.0.1 出现了这个问题。在 Laravel Homestead 中按照以下步骤解决了这个问题...但我不知道为什么电子邮件验证开始向我的电子邮件陷阱账户发送大量电子邮件 :/ - Pathros
你真是救星啊!我一直在电脑上寻找/etc/redis/redis.conf文件,而不是在vagrant安装中寻找。看到你的答案后,我突然意识到自己犯了这个错误。现在我的缓存可以工作并清除了 ;) - Darren Murphy

7

SSH连接到机器并打开/etc/redis/redis.conf文件。

找到以bind指令开头的行,注释掉并保存文件。然后使用sudo /etc/init.d/redis-server restart重新启动redis服务器。

由于这个操作,Redis将监听来自所有可用接口的所有连接。您不需要任何额外的端口转发。


3
这对我有用(在Windows 10,Homestead v5上),但我还需要设置 protected-mode no - sunscreem

3

从你的Homestead.yaml中删除端口设置,因为你不需要它。

现在,默认情况下Homestead虚拟机中的redis正在监听其正常端口6379。

你可以ssh进入虚拟机并检查它:

vagrant@homestead:~$ ps -aux | grep redis
redis      996  0.1  0.4  35232  8752 ?        Ssl  01:53   0:00 /usr/bin/redis-server *:6379

要从本地计算机连接到虚拟机上的redis实例,需要使用在你的Homestead.yaml中指定的IP地址。默认情况下是192.168.10.10

redis-cli -h 192.168.10.10

如果您在本地/etc/hosts中设置了域名,您可以使用它来代替:
redis-cli -h homestead.app

太棒了!我刚在Laravel文档中打开了一个pull request,以添加您连接到Redis的说明。 - Rafael Beckel
2
我认为这在最新的Homestead VM中不再是问题了--现在似乎redis只在127.0.0.1上监听。所以,回到端口转发吧。 - gabe.

1
  1. 连接到您的服务器。

    $sudo vi /etc/redis/redis.conf

滚动到行 bind 127.0.0.1 并更改为 0.0.0.0,它会看起来像这样

bind 0.0.0.0

保存并退出。

  1. 重新启动Redis服务器并退出您的服务器。

    $sudo service redis-server restart

这就是全部,您应该能够从主机连接到您的Homestead Redis。

redis-cli -h 192.168.10.10

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接