Linux虚拟机网络超时解决

起因

最近又重新装了下系统,导致很多东西需要再配一次,而这个问题是当初就困扰过我,并且找了很久的错误,再这里记录一下。


原因

  Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f3a7d0bc8d0>: Failed to establish a new connection: [Errno -3] \xe5\x9f\x9f\xe5\x90\x8d\xe8\xa7\xa3\xe6\x9e\x90\xe6\x9a\x82\xe6\x97\xb6\xe5\xa4\xb1\xe8\xb4\xa5',)': /simple/celery/
  Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f3a7d0bc690>: Failed to establish a new connection: [Errno -3] \xe5\x9f\x9f\xe5\x90\x8d\xe8\xa7\xa3\xe6\x9e\x90\xe6\x9a\x82\xe6\x97\xb6\xe5\xa4\xb1\xe8\xb4\xa5',)': /simple/celery/
  Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f3a7d0bc110>: Failed to establish a new connection: [Errno -3] \xe5\x9f\x9f\xe5\x90\x8d\xe8\xa7\xa3\xe6\x9e\x90\xe6\x9a\x82\xe6\x97\xb6\xe5\xa4\xb1\xe8\xb4\xa5',)': /simple/celery/
  Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f3a7d0a7950>: Failed to establish a new connection: [Errno -3] \xe5\x9f\x9f\xe5\x90\x8d\xe8\xa7\xa3\xe6\x9e\x90\xe6\x9a\x82\xe6\x97\xb6\xe5\xa4\xb1\xe8\xb4\xa5',)': /simple/celery/
  Could not find a version that satisfies the requirement celery (from versions: )
No matching distribution found for celery

在这里插入图片描述

这是我在用虚拟机下celery的时候就开始报错,pip寻找四次无果之后就拔了错。为什么会尝试四次呢?这个我大概有了一个想法,其中之一是里面有队列的机制,这个可以参考我前面写的flask+ajax实现轮询和长轮询 其中轮询的方式就是用队列来完成的,同样也可以用于这里,另外就是用python中的retrying模块来实现延时,这个模块是专门用来判断是否程序有错误和异常,如果有异常,根据用户设置的次数来不断的重复发起请求,这里有篇我找到的比较好的博客python的retrying模块

另外如果以后有时间,我会用这个模块写点小应用,然后再更篇博客。

那么回到正题,为什么会不断Retrying?我开始没往网络连接上去想,只是考虑因为有网络延迟,因为右上角的连接是一会儿断一会儿又连上了,所以我等到它连上去的时候查看了一下ip,这个时候发现了问题:
Linux虚拟机网络超时解决_第1张图片

我发现我ip地址都没有了,但网络显示我现在是连接上的???然后找了半天帖子,期间跟着别人意见,用vim做了很多工作无果,这里不再提了。。。


解决

其实ip没了,那么就说明虚拟机并没有接收到windows传来的信息,那么这里应该联想到Windows配置是不是有问题,所以我们按win+R按键:
Linux虚拟机网络超时解决_第2张图片
然后输入services.msc命令打开Windows全部服务,找到以下两个VMware NAT和DHCP,然后检查是否启动,这里可能DHCP的状态为自动,点击右键为启动,因为自动就相当于关闭。
Linux虚拟机网络超时解决_第3张图片
至此,我们的虚拟机才算完全连接网络成功,并且有ip地址,下面我们重新安装celery:

在这里插入图片描述

成功。

另外什么是NAT和DHCP呢?我找了两篇博文:

  1. NAT详解:基本原理、穿越技术(P2P打洞)、端口老化等

  2. DHCP的一些解释

我这里就不献丑了,因为我也不大会。

总结

其实这篇博文主要不是讲这个错误,因为重装了系统,本来是想解决了网络问题,那么再来总结一下kexue上网的方式,我又重新配了一次。我大概总结了5种方式,从浏览器(Opera developer),到Google插件(谷歌上网助手),然后是VPN,再是一些推荐的网站,通过Windows外网到linux连接,再就是linux怎么直接连接,最后介绍一下自己的经历,从V到SSR。但写到一半发现好像csdn上写的都报404了,然后我就知道怎么回事了,这篇博文的另一半就只能保存到草稿箱了。

你可能感兴趣的:(Linux)