本地虚拟机(ubuntu18.0)与服务器(centos)通信问题

  在公司实习的时候,负责做服务器测试的时候遇到了一些问题。因为公司只提供了的一台远程服务器,我在上面挂了我的xquic服务器(因为公司着手在做quic),而我需要在本地搭建一个虚拟机来做我的客户端,目的是开启大量客户端对服务器做压测。虚拟机搭建完毕,配置好运行环境,但我发现,客户端和服务器不能建立连接。

  首先我先考虑的是代码问题,为了测试代码的可行性,我在虚拟机上也搭了服务器。然后发现在虚拟机本地上,客户端和服务器是可以建立连接通信的,排除了我的代码问题。我查看虚拟机上的客户端与服务器通信时的报错信息,是出在发送信息那里,同时我的远程服务器上也没有提示任何接收到信息的日志输出。通过抓包,验证了我的客户端和服务器是没有通的。这基本确定了是网络上的问题。下一步,我用ping工具现在本地虚拟机ping了我的远程服务器,可以成功piing通,说明我的虚拟机到服务器的网络通信是没有问题的。这里留了个心眼,为了保险起见,我在远程服务器上也使用了ping。在ping我本地的虚拟机的时候,发现一直处于request的请求状态,没有收到虚拟机的response,丢包率是百分百。

 

 

 

 问题基本上就从这里开始,虚拟机向我的远程服务器发送请求时可以收到回复的,但反过来不行。以前没有遇见过这类问题,于是开始在网上搜索类似的问题,看看能不能找到答案。总结出来基本上是两类:1、防火墙 ;2、路由表。我先是从路由表出发,因为虚拟机是可以ping通远程服务器的,说明问题可能出现在我的远程服务器找不到我的虚拟机ip,于是按照教程配置路由文件,但是依旧未能解决问题。于是换用第二种方法,关闭防火墙。由于是远程服务器ping不通我的虚拟机,我一直以为是虚拟机防火墙的问题,但是当我查看虚拟机防火墙的状态是,发现他一直是关闭的。目前到这里,还没有定位到问题所在。后来又在网上找了解决方案,但是结果都差不多。

  后来我想到虚拟机自身的网络连接模式,默认的是NAT模式,我尝试着改为桥接模式,神奇的发现居然双向ping通了。还没高兴半秒,发现客户端和服务器依旧不能相连。客户端打印了一个错误信息 “ (No route to host)”,于是我又在网上查看这类的错误信息问题,结果还真有。这次真是防火墙的问题,我查看远程服务器的防火墙发现是没有关闭的,关闭了以后,完成!

难得系统的排除一下问题,记录一下!

 

posted @ 2022-08-29 18:02  令狐·  阅读(98)  评论(0)    收藏  举报