java - 无法通过 ssh 隧道通过 Jedis 连接到 redis

标签 java networking redis jedis

我有两台机器:机器 foo ( 10.0.0.1 ) 正在运行 redis 服务器,机器 bar ( 192.168.0.1 ) 正在运行通过 jedis 连接到 foo 的 java 应用程序。当给 jedis 地址 10.0.0.1 时一切正常.

但我不信任 foo 和 bar 之间的路由器,并且 redis 不支持 ssl。所以我设置了一条从 bar 到 foo 的 ssh 隧道:user@bar$ ssh -N -f -L localhost:6379:localhost:6379 user@foo

现在,我可以从 bar 直接通过 10.0.0.1 成功 telnet 到 foo 上的 redis或通过隧道127.0.0.1 。对于jedis,如果我使用127.0.0.1我得到异常 java.net.ConnectException: Connection refused ,但是jedis可以成功连接到10.0.0.1就好了。

如何说服 jedis 使用 ssh 隧道?

最佳答案

使用 jedis 的 java 应用程序是一个集群应用程序,我对应用程序的哪一部分正在启动 jedis 感到困惑。一旦我在主主机而不是从机上启动 ssh 隧道,一切都会按预期工作。

关于java - 无法通过 ssh 隧道通过 Jedis 连接到 redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15076096/

相关文章:

java - 从 jTable 更新 SQL Server 表

linux - 如何删除命令结果之前的 "Note:"?

java - SSLEngine 并关闭

c++ - 处理超过 1024 个套接字?

redis - 尝试将 : Changing . NET 标准库的依赖项解析为 NET Core - Microsoft.Extensions.Primitives

redis - 有没有公​​司提供redis的企业支持?

java - 如何使用 spring data jpa 仅更新模型中的传入字段?

java - 使用 Maven 单独执行测试

django channels redis 多个消费者在不同的时间收到消息吗?

java - 在 Java 中获取集合的幂集