【问题标题】:Connecting to Redis on VM from my localhost PHP application从我的本地主机 PHP 应用程序连接到 VM 上的 Redis
【发布时间】:2025-12-05 14:35:01
【问题描述】:

我有一个安装了 Redis 的 Ubuntu VM,在我的 Windows PC 上运行。我有一个使用 Predis 与 Redis 交互的 PHP 应用程序:

Predis\Autoloader::register();

try {
  $redis = new Predis\Client(array(
      "scheme" => "tcp",
      "host" => "192.168.1.66",
      "port" => 6379
  ));
$redis->set('foo', 'bar');

}
catch (Exception $e) {
  die($e->getMessage());
}

我的 Redis.conf 已注释掉 #bind 127.0.0.1、保护模式编号和端口 6379(更改后我重新启动了 Redis)。我可以通过 redis-cli 毫无问题地访问 VM 内的 Redis,但是当尝试通过我的 localhost PHP 应用程序访问它时,我不断得到:

由于目标机器主动拒绝,无法建立连接。 [tcp://192.168.1.66:6379]

我的 localhost 应用是否需要任何其他配置选项才能访问 VM Redis 实例?

*已更新为正确的 IP 地址。问题仍然存在。另请注意,我的 VM 网络适配器设置为桥接,我可以从本地计算机 ping 虚拟机。

【问题讨论】:

    标签: php redis predis


    【解决方案1】:

    VM的IP是localhost(127.0.0.1)吗?
    检查虚拟机的 IP。

    【讨论】:

    • 已更新为正确的 IP。还是有这个问题。
    【解决方案2】:

    获取您的 VM 的 IP(应该类似于 192.168..)并将您的 redis 服务器绑定到该 IP。然后尝试使用该 ip 和端口(6379)访问 redis 服务器。

    【讨论】:

      【解决方案3】:

      您可以 ping 虚拟机,但您可以访问它的 6379 端口吗?

      试试 telnet 或 netcat 之类的工具。

      【讨论】:

      • telnet 192.168.1.66 6379 导致:连接到 192.168.1.66...无法在端口 6379 上打开与主机的连接:连接失败
      • 根据IP格式,我假设这是由你的路由器控制的。那正确吗?如果是这样,您可能需要显式打开端口 6379
      • 是 DHCP。我尝试明确打开路由器上的端口。还是同样的问题。目前还不确定还需要寻找什么。
      最近更新 更多