我有两台机器:machine foo(10.0.0.1
)正在运行redis服务器,而机器栏(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
或127.0.0.1
的隧道上成功远程登录到foo。使用jedis,如果我使用127.0.0.1
,我会收到异常java.net.ConnectException: Connection refused
,但jedis可以成功连接到10.0.0.1
就好了。
我怎样才能说服jedis使用ssh隧道?
答案 0 :(得分:2)
使用jedis的java应用程序是一个集群应用程序,我对应用程序的哪个部分正在启动jedis感到困惑。一旦我在主主机而不是从主机上启动ssh隧道,它就会按预期工作。