问题背景
昨晚 Mac 直接粗暴退出全部 APP, 第二天才发现连虚拟机也直接退出( 通常先将虚拟机挂起或关机再退出app). 于是重新连接, 两个节点连接成功, 最后一个节点连接多次尝试均超时.
分析过程
- 先测试 ping 最后一个节点ip 是否可以通, 发现报错:
➜ ~ ping 192.168.229.151
PING 192.168.229.151 (192.168.229.151): 56 data bytes
ping: sendto: Host is down
ping: sendto: Host is down
Request timeout for icmp_seq 0
ping: sendto: Host is down
Request timeout for icmp_seq 1
ping: sendto: Host is down
Request timeout for icmp_seq 2
^C
--- 192.168.229.151 ping statistics ---
4 packets transmitted, 0 packets received, 100.0% packet loss
- 那一定是网络出了问题, 于是在网上搜索报错找到: mac ping: sendto: Host is down PING不通别人的ip,可以ping通路由器
这篇文章报错信息与此时情况类似, 于是解读一下
"发生故障的mac笔记本正在使用 vmware 软件,这样就会有两个虚拟网卡在作怪"
"查看路由表:netstat -nr 发现 bridge1 网卡意外的将内网段的某个服务器 IP 地址绑定"
解释: 首先 default Gateway = 192.168.2.1, 而我的虚拟机 Gateway = 192.168.229.1, 接着在表中发现, 有一个 bridge1 意外连接到了 default Gateway, 此时导致 Mac 本机存在两个路由 “一个是公网出口这边的内网网关,二是内网中某台服务器的IP地址”, 所以此时 Mac 去访问该节点时, 走的是 default Gateway 而不是自己单独配置过网络信息的网关, 进而导致连接失败.
netstat -nr
查看路由表如下:
解决方式
检查连接失败网络状态 systemctl status network.service
, 进行网络重启 systemctl restart network
至此成功解决问题.