环境背景:
服务器A在外地,本地通过VPN连接沟通网络。
问题描述:
服务器因为故障而宕机,重启以后,无法远程连接。远程还有一台服务器 B和A在一个网段,却能访问。而且在IDC机房也能访问到服务器A和服务器B,也就是说只有我本地的机器不行。
服务器A无法访问
服务器B正常访问
问题解决:
咨询了一下网络部的同事 说是有可能是docker导致的,于是回来查看了一下服务器
服务器A docker启动,服务器B docker未启动。
把服务器B启动后 本地也访问不到了 。问题确认时docker搞的鬼。
于是通过跳转连接的服务器A把 docker也停掉了 本地的确可以连接上了。。。
但是这不是根本解决办法。能连上 docker不启动 也没有用啊。
继续找问题。
发现配置/etc/docker/daemon.json 如下
ip addr 看下本地网络连接
docker配置网桥IP地址和本地网络的网桥IP不匹配。感觉问题找到了。因为我的本地IP也是172.17段的。
下一步如何给docker换个网桥地址呢。于是度娘找答案。
干货在这里Docker 配置固定IP及桥接的实现方法_docker_脚本之家
root@Docker:~# ifconfig | grep docker0 #docker默认网桥
docker0 Link encap:以太网 硬件地址 56:84:7a:fe:97:99
root@Docker:~# ifconfig docker0 down #停止docker默认网桥
root@Docker:~# brctl show #查看物理机上有哪些网桥
root@Docker:~# brctl delbr docker0 #删除docker默认网桥
root@Docker:~# brctl addbr docker_new0 #自定义网桥
root@Docker:~# ifconfig docker_new0 192.168.6.1 netmask 255.255.255.0 #给自定义网桥指定IP和子网
root@Docker:~# ifconfig | grep docker_new0 #查看发现自定义网桥已经启动
docker_new0 Link encap:以太网 硬件地址 0a:5b:26:48:dc:04
inet 地址:192.168.6.1 广播:192.168.6.255 掩码:255.255.255.0
root@Docker:~# echo 'DOCKER_OPTS="-b=docker_new0"' >> /etc/default/docker #指定网桥写入docker配置文件
root@Docker:~# service docker start #启动docker
按照上面的方法重新设置docker的网桥 。启动docker。OK没掉线。成功搞定。
总结:
问题应该是docker的默认网桥恰好和本地网络IP冲突 导致本地IP被屏蔽。重新设置一个不冲突的网桥地址给docker就可以了。