连接不上虚拟机内的redis
宿主机IP、PORT : 192.168.1.203:1234 使用NAT模式,映射到虚拟机IP、PORT : 192.168.235.128:22。在虚拟机上启动了redis,端口为6379,密码为123456,防火墙已关闭,bind设置为0.0.0.0,在虚拟机内能正常进入redis执行命令等操作。
在同一个局域网内的另一台机器上使用jedis连接redis
import redis.clients.jedis.Jedis;
public class JedisDemo {
public static void main(String[] args){
String ip = "192.168.1.203";
int port = 1234;
Jedis jedis = new Jedis(ip, port);
jedis.auth("12345");
System.out.println(jedis.ping());
}
}
执行报错,在 jedis.auth("12345"); 这一步报错了,密码也没问题,ping宿主机也可以ping通,telent 192.168.1.203 1234 也可以进入命令行,但是就连接不上redis,网上找的各种方法都试过了,还是不行,有人帮忙看下吗
Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: Unknown reply: S
at redis.clients.jedis.Protocol.process(Protocol.java:172)
at redis.clients.jedis.Protocol.read(Protocol.java:223)
at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:352)
at redis.clients.jedis.Connection.getStatusCodeReply(Connection.java:270)
at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:141)
at redis.clients.jedis.Connection.sendCommand(Connection.java:163)
at redis.clients.jedis.Connection.sendCommand(Connection.java:154)
at redis.clients.jedis.BinaryClient.auth(BinaryClient.java:810)
at redis.clients.jedis.BinaryJedis.auth(BinaryJedis.java:2716)
at com.lance.middleware.redis.jedis.JedisDemo.main(JedisDemo.java:15)