虚拟机开启Redis,java代码连接失败问题
介绍一下我的环境:VMware虚拟机安装centos 6.5版的Linux系统,redis是3.0.0. 主机是win7,JAVA IDE是eclipse mars。
好了,在虚拟机中已经可以成功Ping通,如下图
罪魁祸首一定是你的虚拟机防火墙。
打开你windos系统的cmd,敲 telnet linux系统ip 端口号,如:telnet 192.168.18.133 6379
(linux系统的Ip应该都知道咋看吧,敲ifconfig取第一个出现的Ip地址就行了)
如果提示telnet不是内部外部指令啥的,打开控制面板,依次点击下图中矩形框中的东西
请务必在系统提示你重启的时候果断重启!!!!请务必在系统提示你重启的时候果断重启!!!!请务必在系统提示你重启的时候果断重启!!!!
网上说打开telnet客户端不用重启的是win7系统,win10比win7傲娇啊!!不重启就不让你的选择生效!楼主在这里也走了弯路,一把辛酸泪。
设置完了,重启之后,你的所有程序都关闭了吧。这个时候就请你不厌其烦的,打开你的vmware,再开启你的centos,再启动你的redis,再测试一下能否在centos中ping通。也就是...回到最初的样子。
弄完之后,进入windows 的cmd界面,敲telnet linux系统ip 端口号,如果迅速出现一片漆黑,那你可以关掉网页了....因为本篇博客帮不了你。
如果出现(当然我输6380是为了截图失败的结果,你应该输的是6379)
那就说明的确是你的centos的防火墙在整幺蛾子!不听话!先把它关小黑屋呆一会儿!让它心甘情愿开放你需要的端口,再打开它。
依次敲击如下代码:
/etc/init.d/iptables stop
/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT
/etc/init.d/iptables save
service iptables restart
敲击完了之后,可以查看一下是否开放成功,检查状态的代码:/etc/init.d/iptables status
如果开放成功应该是这样的:
你们关注6379就是了,其它的端口是我redis-cluster用的,开启的方法都一样,在用eclipse连集群失败的时候也是因为端口没有开,错误代码是:
(单机版的错误代码)redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused: connect
(集群版的错误代码)redis.clients.jedis.exceptions.JedisConnectionException: no reachable node in cluster
开启端口之后,再用telnet指令检查一下能否连接。如果还是不能连接,就再关一下防火墙,再开一下防火墙。反正我是这么解决的....如果你这么做了还没有解决的话,就各种重启一下试试吧...反正你也找不到别的解决办法,还不如用网管的万能法则——重启。
幸运的话,你也出现一片漆黑了,再用redis desktop manager测试一下是否能连接成功。