记一次项目部署排错经历

之前在公司实习时,遇到过一个比较诡异的项目部署问题,特别记录下来,如果以后能够遇到同样问题,可以方便快速定位。
组内有内部项目需要部署在服务器虚拟机上,要求数据库和项目分两台虚拟机部署。
环境上有四台机子,三台服务器上的虚拟机,一台本地开发机,本体开发机为A,D,系统为windows,虚拟机为B,C,系统为Linux,Mysql装载B上,项目装在C上。
坑此坑次装完MySQL,允许远程连接,虚拟机B的防火墙开通3306端口,虚拟机C关闭防火墙,本地环境A连接MySQL成功,本地项目运行后连接B的MySQL成功。部署项目至服务器C上后(用的jsw),连接服务器B上的数据库失败,具体描述图如下:
这里写图片描述

排查
检查各个配置项,修改配置让服务器C上的项目连接到本地的MySQL上试试看,发现连接成功,项目正常运行,排除配置上和项目本身的问题。
项目在本地运行,修改配置连接服务器B上的MySQL,发现连接成功,项目正常运行,排除数据库本身设置和服务器B的问题。
将项目部署在新的虚拟机E上,连接服务器B上MySQL,两遍关闭防火墙,连接同样失败,转而连接本地MySQL,连接成功,项目正常运行,排除虚拟机C本身的问题,问题锁定在虚拟机B、C、E之间的网络问题上
使用dumptcp命令抓包,wireshark查看报文,发现当本地机连接服务器B上MySQL时,握手成功,有数据包的传递,但是当用虚拟机C、E连接时,三次握手都没成功,报文内容为空。
虚拟机B、C互ping成功
虚拟机均为桥接模式

结论
几台虚拟机桥接的都是同一台物理机的网卡,可能是问题的主要原因,待以后学习查明

猜你喜欢

转载自blog.csdn.net/ljw761123096/article/details/79971248