当Azure里的虚拟机网卡被禁用了之后……
这样的想法来自于一个假设,如果网卡被禁用之后,用户该如何处理,Azure又该如何处理,对于设置在虚拟机中的禁用网卡选项是否还有存在的意义?通常情况下,点选了禁用网卡对于你和虚拟机来说就一下之抓瞎了,瞬间失去光明的感觉,你的远程连接就这样被自杀了。为了验证这样的自杀行为,也考验Azure的强大自我管理特性,笔者开始了验证。【后面还有彩蛋,欢迎阅读到结尾】
进行基础信息的收集
对于和网卡有关的属性我认为常见的有MAC物理地址,IP地址,DHCP服务器,DNS后缀,网卡适配器名称。其中MAC地址作为一种原始数据存在于网卡本身,而这个特性被很多防篡改软件和产品作为“唯一识别码”来说是相当的重要。

Figure 1自杀前拍照留念,我特地标记了物理地址以突出他的重要性
开始禁用虚拟机中唯一的一块网卡
禁用开始,远程连接终端,并出现开始尝试最多20次的链接数量,此时在Azure.com的管理界面里看到系统还是活着的,可以判断Azure使用的是另一种非网络行为(方式)进行虚拟机状态监控。
随后,我手动方式在Azure的管理界面中关闭(shutdown)了虚拟机(之前需要做一次重启动作),很快的管理界面提示虚拟机已关闭。
再次对虚拟机进行开机,同样在Azure的管理界面,选择界面下方的启动(Start)。

Figure 2启动刚刚手动关闭的虚拟机,不过系统会提示关机还在进行中,请稍后尝试。继续点击Start启动按钮,进行第二次启动,此时已经过去了1分钟。此状态表明Azure在后台正在进行着什么。
随着第二次启动的尝试,Aure已经能够识别可开机指令,并返回启动已完成。

Figure 3当看到圆角矩形内的CPU核数识别以及右下角启动OK的标记后,我尝试远程连接,此时已经过去了1.5分钟了
随后就是使用之前下载回来的rdp文件进行远程连接,很快的各种安全提示与警告之后,我顺利登陆到了刚刚禁用网卡的虚拟机,此时已经过去了2分钟。
再等待一些内容和信息的加载之后,系统已经可以使用了,此时已经过去了2.5分钟。
加上之前系统关机到第一次启动这些时间,系统重我点下禁用网卡之后到现在总共经过了7.5分钟,其中那神秘的5分钟就是见证此刻奇迹的基础。
揭秘奇迹的时刻
禁用后的网卡居然自己“活”了,在刚刚我们已经见证了奇迹,而此刻我们需要揭秘一下奇迹的背后。
此图Figure 4展示的是网卡禁用后重新启动并远程进入的虚拟机设备管理器与网卡适配器的截图。请勿在意网卡名称后的数字,如果没有他们我是不会这么大胆撰写此文的,您只需要知道#2网卡是系统默认的那个,#3网卡是系统禁用后虚拟机重启自动分配的新网卡

Figure 4自杀后的设备管理器--网络适配器属性,因为是相同型号的网卡,虚拟机会对网卡进行由小到大数字、时间顺序的分配
让我们在验证一下那些关键网卡参数的变化
因为是第二次试验所以参照对象是#3网卡,也就是Figure 1里面所展示的那块网卡的属性。

Figure 5在此看到MAC是没有变化的——这太安心了,绿色高亮的是进行了变化且较为关键的网卡参数信息
小结:
通过上面的假设与验证,事实上已经可以忽略曾经在现实机器中的种种尴尬,而Azure是一个称职尽责的管理员,那神秘的5分钟就解决了此次非常重大的失手操作,用户完全不用担心触动了那些底层带来的负面影响,强大的Azure可以帮助我们即可发现,并顺利解决。
处理流程是Azure.com管理页面下先重启该虚拟机--〉代重启结束后--〉关机--〉再进行开机(可能需要两次),7.5分钟后即可远程登陆。
彩蛋:
想必聪明的你已经发现了什么,为什么默认情况下的网卡标识数字是#2呢?原本的#1呢?

Figure 6此图红框标记的就是网卡#1,这个应该是Azure的虚拟机管理员所使用的一块网卡,其中还能看到一些来自于微软的内部信息。4、3、2分别代表设备管理器中看到的网卡序号,这些内容都完整的存在于注册表中了
-=EOB=-
当Azure里的虚拟机网卡被禁用了之后……的更多相关文章
- 当Azure里的虚拟机网卡被禁用
当Azure里的虚拟机网卡被禁用了之后…… 这样的想法来自于一个假设,如果网卡被禁用之后,用户该如何处理,Azure又该如何处理,对于设置在虚拟机中的禁用网卡选项是否还有存在的意义?通常情况下,点选了 ...
- 利用win服务定时为网卡启用/禁用
上周,Boss和我说,他儿子夜里爬起来用笔记本在被窝里玩CF,问路由器可以解决么,我看了是TPLINK的普通家用无线路由器,不支持禁用CF客户端网游,可以通过配置端口屏蔽什么的,但是白天又要开启,想想 ...
- Windows Azure Virtual Machine (24) Azure VM支持多网卡功能
<Windows Azure Platform 系列文章目录> Update 2016-03-30 一个VM的多张网卡可以在一个VNet的同一个Subnet子网下,笔者亲自测试过了. 如果 ...
- 理解 Azure 平台中虚拟机的计算能力
虚拟化平台至今已经发展了十多年的时间.其中 Hyper-V 技术现在也已经是第三代版本.用户对于虚拟化计算也越来越接受,这也有了公有云发展的基础.然而在很多时候,用户在使用基于 Hyper-V 的 A ...
- Hadoop集群(第2期)虚拟机网卡的介绍和配置
很多人安装虚拟机的时候,经常遇到不能上网的问题,而vmware有三种网络模式,对初学者来说也比较眼花聊乱,今天我就来基于虚拟机3种网络模式,帮大家普及下虚拟机上网的背景知识 虚拟机网络模式 无论是vm ...
- 阿里云至 Windows Azure 的 Linux 虚拟机迁移
在Windows Azure中,用户可以对部署在Azure中的虚拟机的映像.磁盘以及快照进行生成和下载.用户可以方便地将Azure中的虚拟机实例迁移到本地.私有云甚至其他公有云平台进行测试.扩展或者再 ...
- Hyper-V下的Linux虚拟机网卡丢失问题原因及解决办法
Hyper-V下的Linux虚拟机网卡丢失问题原因及解决办法 虚拟化大势所趋 公司推行了虚拟化,全部用的是Microsoft Windows 2008 R2 Enterprise with Hyp ...
- vmware克隆Centos6.7虚拟机网卡无法启动问题
快速处理办法: cat /etc/sysconfig/network-scripts/ifcfg-eth0 sed -i '/UUID/d' /etc/sysconfig/network-script ...
- Microsoft Azure News(7) Azure B系列虚拟机
<Windows Azure Platform 系列文章目录> 最近微软Azure新数据中心上线了B系列的虚拟机,我这边研究了一下,给大家分享. Azure B系列虚拟机,其实是Burst ...
随机推荐
- Odoo 二次开发教程(四)-只读、唯一性验证和ORM方法介绍
一.只读和唯一性验证 只读的设置有两种方法,一种是实在字段定义时设置为只读,第二种是在页面视图中进行设置. 接前例,我们将学生(tech.student)的名字name字段设置成只读. 方法一:字段定 ...
- Reversing Linked List
原题连接:https://www.patest.cn/contests/pat-a-practise/1074 题目: Given a constant K and a singly linked l ...
- 在C#中使用消息队列RabbitMQ
1.什么是RabbitMQ.详见 http://www.rabbitmq.com/. 作用就是提高系统的并发性,将一些不需要及时响应客户端且占用较多资源的操作,放入队列,再由另外一个线程,去异步处理这 ...
- 第一章-第十四题(Hello world程序)
题目:请找一个同学结对 (参看本书结对编程的内容),两人共同工作 (不能分开干活),从上面的列表中选取两个平台,在每个平台上,写一个最简单的 "Hello World" 类型的程序 ...
- Android课程---远程服务器存储
在使用Volley进行获取数据时,需要事先准备环境:在libs里面导入一个Volley.jar包,在网上都有,可以下载下来导入,或者自己电脑上有DT的,自己合成一个包也行. WebActivity.j ...
- Java实现列出目录下所有文件和文件夹
package com.filetest; import java.io.File; import java.util.Scanner; public class fileview { public ...
- xcode gdb/lldb调试命令
命令 解释 break NUM 在指定的行上设置断点. bt 显示所有的调用栈帧.该 ...
- Unity3D游戏开发初探—3.初步了解U3D物理引擎
一.什么是物理引擎? 四个世纪前,物理学家牛顿发现了万有引力,并延伸出三大牛顿定理,为之后的物理学界的发展奠定了强大的理论基础.牛顿有句话是这么说的:“如果说我看得比较远的话,那是因为我站在巨人的肩膀 ...
- SQLSERVER语句 in和exists哪个效率高本人测试证明
SQLSERVR语句 in和exists哪个效率高本人测试证明 最近很多人讨论in和exists哪个效率高,今天就自己测试一下 我使用的是客户的数据库GPOSDB(已经有数据) 环境:SQLSERVE ...
- 在C#代码中应用Log4Net(五)将Log4Net正确地封装在自己的类库中并进行调用
前面的几篇文章已经比较完整地解释了怎么使用Log4Net,但是我们可能需要将Log4Net的日志类封装在自己的类库中,以便C/S或B/S程序进行调用.下面的示例程序简单地分为两层,一个是应用程序层We ...