在部分版本的vmware workstation上安装linux虚拟机,比如centos、ubuntu等,会出现界面显示不全,导致无法直接点击按钮的问题,针对此问题,提供以下三种解决办法。
方法1是使用tab键切换至相关按钮。
方法2是按住alt的同时,鼠标左键点击并移动界面。
方法3是虚拟机设置——显示器——监视器分辨率,将该分辨率调小即可。
在部分版本的vmware workstation上安装linux虚拟机,比如centos、ubuntu等,会出现界面显示不全,导致无法直接点击按钮的问题,针对此问题,提供以下三种解决办法。
方法1是使用tab键切换至相关按钮。
方法2是按住alt的同时,鼠标左键点击并移动界面。
方法3是虚拟机设置——显示器——监视器分辨率,将该分辨率调小即可。
现有一台电脑接入视频监控系统,所有视频图像都是黑色,无法正常显示,监控厂家人员根据经验认为是显卡相关的问题,将该网线接入笔记本,配置同样的IP,可以显示,排除网络及视频服务器端的问题。
该电脑可以正常显示图像且可正常播放视频,目前仅发现监控系统中不能显示图像,重装显卡驱动后问题仍然存在,按照厂家人员的建议更换显卡,问题依旧。
后来使用dxdiag打开directx诊断工具,发现显示下的directx功能中的directraw加速、direct3D加速、AGP纹理加速都未启用,使用directx修复工具做相关修复后,问题解决。
这是directx功能未启用引起的问题,用户反应之前使用一直正常,是突然出现的问题,这就有可能是非正常关机,比如异常断电或者中毒等引起。
现有一台windows xp,每次修改IP必须重启,后经排查为dhcp client服务未启动导致,将dhcp client服务改成自启动后,修改IP后立即生效,无需重启。
关于dhcp client的服务,这是在windows 10操作系统上的介绍:
为此计算机注册并更新 IP 地址。如果此服务停止,计算机将不能接收动态 IP 地址和 DNS 更新。如果此服务被禁用,所有明确依赖它的服务都将不能启动。
局域网中一台电脑突然无法上网,通过arp -a查看到网关的MAC并不是真实的,判断内网存在arp攻击,此种情况下,只需将网关绑定真实的MAC即可防御。
有时我们使用arp -s并不能实现绑定,这里需要其他的方法来做。
通过netsh i i show in查看本机网卡情况,记住外网网卡的Idx,一般为11,如果Idx为11,然后通过命令netsh -c “i i” add meogjnprs 11 “IP地址” “MAC地址”来绑定网关的MAC,即可恢复上网。
众所周知,在互联网诞生之初都是各个高校和科研机构相互通讯,并没有网络流量控制方面的考虑和设计,IP协议的原则是尽可能好地为所有数据流服务,不同的数据流之间是平等的。然而多年的实践表明,这种原则并不是最理想的,有些数据流应该得到特别的照顾,比如,远程登录的交互数据流应该比数据下载有更高的优先级。
针对不同的数据流采取不同的策略,这种可能性是存在的。并且,随着研究的发展和深入,人们已经提出了各种不同的管理模式。IETF已经发布了几个标准,如综合服务(Integrated Services)、区分服务(Diferentiated Services)等。其实,Linux内核从2.2开始,就已经实现了相关的流量控制功能。本文将介绍Linux中有关流量控制的相关概念, 用于流量控制的工具TC的使用方法,并给出几个有代表性实例。
一、相关概念
报文分组从输入网卡(入口)接收进来,经过路由的查找,以确定是发给本机的,还是需要转发的。如果是发给本机的,就直接向上递交给上层的协议,比如TCP,如果是转发的,则会从输出网卡(出口)发出。网络流量的控制通常发生在输出网卡处。虽然在路由器的入口处也可以进行流量控制,Linux也具有相关的功能,但一般说来,由于我们无法控制自己网络之外的设备,入口处的流量控制相对较难。因此我们这里处理的流量控制一般指出口处的流量控制。流量控制的一个基本概念是队列(Qdisc),每个网卡都与一个队列(Qdisc)相联系,每当内核需要将报文分组从网卡发送出去,都会首先将该报文分组添加到该网卡所配置的队列中,由该队列决定报文分组的发送顺序。因此可以说,所有的流量控制都发生在队列中。
有些队列的功能是非常简单的,它们对报文分组实行先来先走的策略。有些队列则功能复杂,会将不同的报文分组进行排队、分类,并根据不同的原则,以不同的顺序发送队列中的报文分组。为实现这样的功能,这些复杂的队列需要使用不同的过滤器(Filter)来把报文分组分成不同的类别(Class)。这里把这些复杂的队列称为可分类(Classiful)的队列。通常,要实现功能强大的流量控制,可分类的队列是必不可少的。因此,类别(Class)和过滤器(Filter)也是流量控制的另外两个重要的基本概念。
类别(Class)和过滤器(Filter)都是队列的内部结构,并且可分类的队列可以包含多个类别,同时,一个类别又可以进一步包含有子队列,或者子类别。所有进入该类别的报文分组可以依据不同的原则放入不同的子队列 或子类别中,以此类推。而过滤器(Filter)是队列用来对数据报文进行分类的工具,它决定一个数据报文将被分配到哪个类别中。
二、使用TC
在Linux中,流量控制都是通过TC这个工具来完成的。通常,要对网卡进行流量控制的配置,需要进行如下的步骤:
◆ 为网卡配置一个队列;
◆ 在该队列上建立分类;
◆ 根据需要建立子队列和子分类;
◆ 为每个分类建立过滤器。
在Linux中,可以配置很多类型的队列,比如CBQ、HTB等,其中CBQ 比较复杂,不容易理解。HTB(Hierarchical Token Bucket)是一个可分类的队列, 与其他复杂的队列类型相比,HTB具有功能强大、配置简单及容易上手等优点。在TC中,使用”major:minor”这样的句柄来标识队列和类别,其中major和minor都是数字。
对于队列来说,minor总是为0,即”major:0″这样的形式,也可以简写为”major: “比如,队列1:0可以简写为1:。需要注意的是,major在一个网卡的所有队列中必须是惟一的。对于类别来说,其major必须和它的父类别或父队列的major相同,而minor在一个队列内部则必须是惟一的(因为类别肯定是包含在某个队列中的)。举个例子,如果队列2:包含两个类别,则这两个类别的句柄必须是2:x这样的形式,并且它们的x不能相同,比如2:1和2:2。
下面,将以HTB队列为主,结合需求来讲述TC的使用。假设eth0出口有100mbit/s的带宽,分配给WWW、E-mail和Telnet三种数据流量,其中分配给WWW的带宽为40Mbit/s,分配给Email的带宽为40Mbit/s,分配给Telnet的带宽为20Mbit/S。
需要注意的是,在TC 中使用下列的缩写表示相应的带宽:
◆ Kbps : kilobytes per second,千字节每秒 ;
◆ Mbps : megabytes per second,兆字节每秒 ,
◆ Kbit : kilobits per second,千比特每秒 ;
◆ Mbit : megabits per second, 兆比特每秒 。
三、创建HTB队列
有关队列的TC命令的一般形式为:
首先,需要为网卡eth0配置一个HTB队列,使用下列命令:
#tc qdisc add dev eth0 root handle 1:htb default 11
这里,命令中的”add”表示要添加,”dev eth0”表示要操作的网卡为eth0。”root”表示为网卡eth0添加的是一个根队列。”handle 1:”表示队列的句柄为1: 。”htb”表示要添加的队列为HTB队列。命令最后的”default 11”是htb特有的队列参数,意思是所有未分类的流量都将分配给类别1:11。
四、为根队列创建相应的类别
有关类别的TC 命令的一般形式为:
可以利用下面这三个命令为根队列1创建三个类别,分别是1:1 1、1:12和1:13,它们分别占用40、40和20mb[t的带宽。
#tc class add dev eth0 parent 1: classid 1:1 htb rate 40mbit ceil 40mbit
#tc class add dev eth0 parent 1: classid 1:12 htb rate 40mbit ceil 40mbit
#tc class add dev eth0 parent 1: cllassid 1:13 htb rate 20mbit ceil 20mbit
命令中,”parent 1:”表示类别的父亲为根队列1: 。”classid1:11”表示创建一个标识为1:11的类别,”rate 40mbit”表示系统将为该类别确保带宽40mbit,”ceil 40mbit”,表示该类别的最高可占用带宽为40mbit。
五、为各个类别设置过滤器
有关过滤器的TC 命令的一般形式为:
由于需要将WWW、E-mail、Telnet三种流量分配到三个类别,即上述1:11、1:12和1:13,因此,需要创建三个过滤器,如下面的三个命令:
#tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 80 0xffff flowid 1:11
#tc filter add dev eth0 prtocol ip parent 1:0 prio 1 u32 match ip dport 25 0xffff flowid 1:12
#tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 23 oxffff flowid 1:13
这里,”protocol ip”表示该过滤器应该检查报文分组的协议字段。”prio 1” 表示它们对报文处理的优先级是相同的,对于不同优先级的过滤器,系统将按照从小到大的优先级顺序来执行过滤器,对于相同的优先级,系统将按照命令的先后顺序执行。这几个过滤器还用到了u32选择器(命令中u32后面的部分)来匹配不同的数据流。以第一个命令为例,判断的是dport字段,如果该字段与Oxffff进行与操作的结果是8O,则”flowid 1:11”表示将把该数据流分配给类别1:1 1。更加详细的有关TC的用法可以参考TC的手册页。
六、复杂的实例
在上面的例子中, 三种数据流(www、Email、Telnet)之间是互相排斥的。当某个数据流的流量没有达到配额时,其剩余的带宽并不能被其他两个数据流所借用。在这里将涉及如何使不同的数据流可以共享一定的带宽。
首先需要用到HTB的一个特性, 即对于一个类别中的所有子类别,它们将共享该父类别所拥有的带宽,同时,又可以使得各个子类别申请的各自带宽得到保证。这也就是说,当某个数据流的实际使用带宽没有达到其配额时,其剩余的带宽可以借给其他的数据流。而在借出的过程中,如果本数据流的数据量增大,则借出的带宽部分将收回,以保证本数据流的带宽配额。
下面考虑这样的需求,同样是三个数据流WWW、E-mail和Telnet, 其中的Telnet独立分配20Mbit/s的带宽。另一方面,WWW 和SMTP各自分配40Mbit/s的带宽。同时,它们又是共享的关系,即它们可以互相借用带宽。
需要的TC命令如下:
#tc qdisc add dev eth0 root handle 1: htb default 21
#tc class add dev eth0 partent 1: classid 1:1 htb rate 20mbit ceil 20mbit
#tc class add dev eth0 parent 1: classid 1:2 htb rate 80mbit ceil 80mbit
#tc class add dev eth0 parent 1: classid 1:21 htb rate 40mbit ceil 20mbit
#tc class add dev eth0 parent 1:2 classid 1:22 htb rate 40mbit ceil 80mbit
#tc filter add dev eth0 protocol parent 10 prio 1 u32 match ip dport 80 0xffff flowid 1:21
#tc filter add dev eth0 protocol parent 1:0 prio 1 u32 match ip dport 25 0xffff flowid 1:22
#tc filter add dev eth0 protocol parent 1:0 prio 1 u32 match ip dport 23 0xffff flowid 1:1
这里为根队列1创建两个根类别,即1:1和1:2,其中1:1对应Telnet数据流,1:2对应80Mbit的数据流。然后,在1:2中,创建两个子类别1:21和1:22,分别对应WWW和E-mail数据流。由于类别1:21和1:22是类别1:2的子类别,因此他们可以共享分配的80Mbit带宽。同时,又确保当需要时,自己的带宽至少有40Mbit。
从这个例子可以看出,利用HTB中类别和子类别的包含关系,可以构建更加复杂的多层次类别树,从而实现的更加灵活的带宽共享和独占模式,达到企业级的带宽管理目的。
有一台windows 2012 R2服务器,内存配置128G,C盘分区大小为100G左右,发现C盘可用空间很小,只有2G多。
显示系统隐藏文件,发现C盘下有hiberfil.sys文件,该文件占用空间很大,此文件为系统休眠文件,系统休眠时将内存中的所有信息保存到hiberfil.sys文件中。
要删除该文件,可以在控制面板——电源管理下,在休眠选项下,不启用休眠,即可。
也可以在命令行下执行powercfg -h off来关闭系统休眠,关闭后,hiberfil.sys会被删除,C盘可用空间又变大了。
如果需要使用系统休眠,可以通过命令powercfg -h size 50,来将休眠文件的大小限制在内存容量的50%,此处默认大小不能小于40,并且该配置执行后还将导致启用休眠。
WSL即Windows Subsystem for Linux,在windows操作系统中的microsoft store搜索WSL即可下载ubuntu、kali、opensuse等linux发行版,但是安装后运行时,如果报0X8007019E的错误,则需要在“启用或关闭windows功能”处启用适用于Linux的Windows子系统,即可解决报错问题,也可在powershell下执行 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem -Linux。
修改root密码,可以在powershell下执行命令 ubuntu config –default-user root来配置root密码。
如果正在运行这些版本: | 可以升级到这些版本: |
---|---|
Windows Server 2012 Standard | Windows Server 2016 Standard 或 Datacenter |
Windows Server 2012 Datacenter | Windows Server 2016 Datacenter |
Windows Server 2012 R2 Standard | Windows Server 2016 Standard 或 Datacenter |
Windows Server 2012 R2 Datacenter | Windows Server 2016 Datacenter |
Hyper-V Server 2012 R2 | Hyper-V Server 2016(使用群集操作系统滚动升级功能) |
Windows Server 2012 R2 Essentials | Windows Server 2016 Essentials |
Windows Storage Server 2012 Standard | Windows Storage Server 2016 Standard |
Windows Storage Server 2012 Workgroup | Windows Storage Server 2016 Workgroup |
Windows Storage Server 2012 R2 Standard | Windows Storage Server 2016 Standard |
Windows Storage Server 2012 R2 Workgroup | Windows Storage Server 2016 Workgroup |
可以将 Windows Server 2016 Standard(零售版)转换为 Windows Server 2016 Datacenter(零售版)。
可以将 Windows Server 2016 Essentials(零售版)转换为 Windows Server 2016 Standard(零售版)。
可以将 Windows Server 2016 Standard 的评估版转换为 Windows Server 2016 Standard(零售版)或 Datacenter(零售版)。
可以将 Windows Server 2016 Datacenter 评估版转换为 Windows Server 2016 Datacenter(零售版)。
查看windows 2008升级到windows 2012的说明,请点击这里。
查看windows 2008升级到windows 2012 r2的说明,请点击这里。
如果运行的是: | 可以升级到这些版本: |
---|---|
带有 SP1 的 Windows Server 2008 R2 Datacenter | Windows Server 2012 R2 Datacenter |
带有 SP1 的 Windows Server 2008 R2 Enterprise | Windows Server 2012 R2 Standard 或 Windows Server 2012 R2 Datacenter |
带有 SP1 的 Windows Server 2008 R2 Standard | Windows Server 2012 R2 Standard 或 Windows Server 2012 R2 Datacenter |
带有 SP1 的 Windows Web Server 2008 R2 | Windows Server 2012 R2 Standard |
Windows Server 2012 Datacenter | Windows Server 2012 R2 Datacenter |
Windows Server 2012 Standard | Windows Server 2012 R2 Standard 或 Windows Server 2012 R2 Datacenter |
Hyper-V Server 2012 | Hyper-V Server 2012 R2 |
可以将 Windows Server 2012 Standard(零售版)转换为 Windows Server 2012 Datacenter(零售版)。
可以将 Windows Server 2012 Essentials(零售版)转换为 Windows Server 2012 Standard(零售版)。
可以将 Windows Server 2012 Standard 评估版转换为 Windows Server 2012 Standard(零售版)或 Datacenter(零售版)。
查看windows 2008升级到windows 2012的说明,请点击这里。
查看windows 2012升级到windows 2016的说明,请点击这里。
如果运行的是: | 可以升级到这些版本: |
---|---|
带有 SP2 的 Windows Server 2008 Standard 或带有 SP2 的 Windows Server 2008 Enterprise | Windows Server 2012 Standard、Windows Server 2012 Datacenter |
带有 SP2 的 Windows Server 2008 Datacenter | Windows Server 2012 Datacenter |
Windows Web Server 2008 | Windows Server 2012 Standard |
带有 SP1 的 Windows Server 2008 R2 Standard 或带有 SP1 的 Windows Server 2008 R2 Enterprise | Windows Server 2012 Standard、Windows Server 2012 Datacenter |
带有 SP1 的 Windows Server 2008 R2 Datacenter | Windows Server 2012 Datacenter |
Windows Web Server 2008 R2 | Windows Server 2012 Standard |
可以将 Windows Server 2012 Standard(零售版)转换为 Windows Server 2012 Datacenter(零售版)。
可以将 Windows Server 2012 Essentials(零售版)转换为 Windows Server 2012 Standard(零售版)。
可以将 Windows Server 2012 Standard 评估版转换为 Windows Server 2012 Standard(零售版)或 Datacenter(零售版)。
查看windows 2008升级到windows 2012 r2的说明,请点击这里。
查看windows 2012升级到windows 2016的说明,请点击这里。