需要docker下安装mongodb,于是想windows下安装docker,遇到问题。

考虑用另一台机器虚拟机centos装docker,发现centos6版本过低。于是下载了centos7,安装后能ping通,但是docker和redis死活连接不上。
此时需要科普一个知识:
ping的具体实现分为ICMP Ping / TCP Ping / UDP Ping。
(至少在windows环境下)实现的是ICMP Ping。众所周知,ICMP协议工作在网络层,网络层通了不代表上层通了。
遂突然想到是防火墙问题,因为是本地局域网访问不存在网络安全问题,于是直接关掉防火墙,命令为:systemctl stop firewalld.service(千万不要在生产环境这么做)
于是解决。但Redis可以连接上,不能操作。用linux环境本地连接redis,关闭保护模式,命令为:CONFIG SET protected-mode no
于是解决。

再补充一句,在我学习计算网络之前,就遇到过类似能Ping通但是不能访问的情况,具体场景是购买海外服务器,分配的IP被wall掉。但是能Ping通。查阅相关资料才得知icmp和tcp通的区别。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐