使用Windows Server Core将Windows Server推入低功耗VPS


由于Windows系统的大量使用,轻量级Linux发行版在VPS环境中占主导地位:Mint,Colibri OS,Debian或Ubuntu,它们被剥夺了不必要的重量级桌面环境,这是我们任务的一部分。正如他们所说,只有控制台,只有铁杆!实际上,这一点也不夸张:同一Debian起始于256 MB的内存和一个内核,其时钟周期为1 Ghz,即几乎在任何“树桩”上。为了舒适地工作,您将需要512 MB的内存和更快的处理器。但是,如果我们告诉您可以在Windows VPS上执行大致相同的操作呢?什么不需要滚动笨重的Windows Server,而Windows Server则需要三到四公顷的RAM和至少两个内核且时钟速度为1.4 GHz的内核?只需使用Windows Server Core-摆脱GUI和一些服务。我们将在文章中讨论如何执行此操作。

您的Windows Server Core是谁?


即使在Mikes的官方网站上也没有关于Windows(server)Core的明确信息,或者,所有内容都令人困惑,以至于您无法立即理解,但是第一个参考文献可以追溯到Windows Server 2008的时代。实际上,Windows Core是可行的Windows内核。服务器(突然!)按其自己的GUI大小和大约一半的辅助服务来“减重”。

Windows Core的主要功能是对硬件的要求较低,并且可以通过PowerShell进行全面的控制台管理。

如果您访问Microsoft网站并检查技术要求,则要启动Windows Server 2016/2019,您将需要2 GB的RAM和至少一个内核,时钟速度为1.4 GHz。但是我们都知道,使用这种配置,我们只能期望系统启动,但肯定不能舒适地运行我们的操作系统。因此,如果Windows Server无法在某些Xeon上为其提供昂贵的物理机而不是廉价的虚拟机,则通常会从处理器中分配更多的内存和至少2个内核/ 4个线程。

同时,服务器系统本身的核心仅需要512 MB的内存,GUI消耗的那些处理器资源仅用于简单地在屏幕上呈现并保持其大量服务运行,这些可以用于更有用的事情。

以下是Microsoft官方网站上支持的现成Windows Core服务和完整Windows Server的比较:

应用服务器核心具有桌面经验的服务器
命令提示符可用的可用的
Windows PowerShell / Microsoft .NET可用的可用的
性能工具无法使用可用的
Windbg(GUI)支持的可用的
修复程序无法使用可用的
注册表编辑器可用的可用的
Fsutil.exe可用的可用的
Disksnapshot.exe无法使用可用的
磁盘程序可用的可用的
Diskmgmt.msc无法使用可用的
开发文件无法使用可用的
服务器管理员无法使用可用的
程序无法使用可用的
Eventvwr无法使用可用的
Wevtutil(事件查询)可用的可用的
Services.msc无法使用可用的
控制面板无法使用可用的
Windows更新(GUI)无法使用可用的
Windows资源管理器无法使用可用的
任务栏无法使用可用的
任务栏通知无法使用可用的
任务管理器可用的可用的
Internet Explorer或Edge无法使用可用的
内置帮助系统无法使用可用的
Windows 10外壳无法使用可用的
Windows媒体播放器无法使用可用的
Powerhell可用的可用的
PowerShell ISE无法使用可用的
PowerShell IME可用的可用的
Mstsc.exe无法使用可用的
远程桌面服务可用的可用的
Hyper-V管理器无法使用可用的

如您所见,Windows Core已被淘汰了很多。与系统的GUI相关的服务和流程以及我们的控制台虚拟机(例如Windows Media Player)上绝对不需要的任何“垃圾”都可以使用。

几乎像Linux,但不像他


我确实想将Windows Server Core与Linux发行版进行比较,但实际上这并不完全正确。是的,由于放弃了GUI和许多辅助服务,这些系统在减少资源消耗方面彼此相似,但是就操作和某些组装方法而言,它仍然是Windows,而不是unix系统。

最简单的例子是,借助Linux内核的手动组装以及随后安装的软件包和服务,即使是最轻量的Linux发行版也可以变成沉重的东西,就像一把瑞士刀(我真的很想扮演Python的玩笑,并插入《如果编程语言是武器”,但我们不会)。在Windows Core中,这种自由要少得多,因为尽管如此,我们仍在处理Microsoft产品。

Windows Server Core带有现成的程序集,其默认配置可以从上表估算。如果需要不受支持的列表中的某些内容,则必须通过控制台在线添加缺少的元素。但是,请不要忘记按需提供功能以及将组件压缩为.cab文件的功能,然后可以在安装前将其添加到部件中。但是,如果您在流程中已经发现缺少剪切服务之一,则此方案不起作用。

但是Core版本与完整版本的不同之处在于它能够在不停止工作的情况下更新系统和添加服务。 Windows Core支持滚动热包而无需重新启动。结果,基于实际观察:运行Windows Core的计算机需要重新启动的频率比运行Windows Server的频率少6倍,即每六个月重新启动一次,而不是每月一次。

对于管理员来说,一个不错的好处是,如果您按预期使用系统(通过控制台而不使用RDP)并且不使用第二台Windows Server,那么与完整版相比,它变得非常安全。确实,Windows Server中的大多数漏洞都属于RDP,而用户通过该RDP执行不应执行的操作。这类似于亨利·福特(Henry Ford)的故事以及他与汽车颜色的关系:“任何客户都可以在汽车上涂任何想要的颜色,只要它是黑色即可。” 因此对于系统:用户可以通过任何方式与系统进行通信,主要是他通过控制台进行通信

安装和管理Windows Server 2019 Core


前面我们提到Windows Core实际上是没有GUI包装的Windows Server。也就是说,您可以使用几乎所有版本的Windows Server作为核心版本,即放弃GUI。对于Windows Server 2019家族的产品,这是4个服务器版本中的3个:核心模式适用于Windows Server 2019 Standard Edition,Windows Server 2019 Datacenter和Hyper-V Server 2019,即只有Windows Server 2019 Essentials不在此列表之内。

同时,不需要寻找Windows Server Core的安装包。在Microsoft的标准安装程序中,默认情况下,当您必须使用GUI手动选择版本时,默认提供核心版本:

图片

实际上,管理系统的选项比PowerShell提到的选项更多,默认情况下,制造商会提供这些选项。在Windows Server Core上至少有五种不同的方法来管理虚拟机:

  • 远程PowerShell
  • 远程服务器管理工​​具(RSAT);
  • Windows管理中心
  • Sconfig;
  • 服务器管理器

前三个职位最受关注:标准PowerShell,RSAT和Windows管理中心。但是,重要的是要了解,当我们获得其中一种工具的好处时,我们也会受到它所施加的限制。

我们将不介绍控制台的功能; PowerShell是PowerShell,具有明显的优缺点。RSAT和WAC稍微复杂一些。 

WAC使您可以访问重要的系统控件,例如注册表编辑以及磁盘和设备管理。第一种情况下的RSAT仅在查看模式下起作用,并且不允许进行任何更改,并且对于管理远程服务器管理工​​具的磁盘和物理设备,您需要一个GUI,而这与我们的情况无关。通常,RSAT无法在编辑注册表时使用文件,因此无法更新,安装/卸载程序。

▍系统管理


 
瓦克RSAT
组件管理
注册表编辑器没有
网络管理
事件查看器
共享文件夹
驱动管理仅适用于具有GUI的服务器
任务计划程序
设备管理仅适用于具有GUI的服务器
文件管理没有
用户管理
集团管理
证书管理
更新没有
卸载程序没有
系统监控器

另一方面,使用RSAT可以完全控制计算机上的角色,就像Windows Admin Center一样,它实际上什么也不做。为了清楚起见,以下是RSAT和WAC在这方面的功能比较:

▍管理角色


 
瓦克RSAT
高级线程保护文本没有
Windows Defender的文本
货柜文本
广告行政中心文本
AD域和信任没有
广告网站和服务没有
DHCP服务器文本
域名解析文本
DFS经理没有
GPO经理没有
IIS管理器没有
也就是说,很明显,如果您放弃了GUI和PowerShell而转而使用其他控件,那么摆脱使用某种单一工具就行不通了:要在各个方面进行全面管理,我们至少需要一堆RSAT和WAC。

应当记住,使用WAC必须支付150-180 MB的RAM。连接后,Windows管理中心会在服务器端创建3-4个会话,即使该工具与虚拟机断开连接也不会终止会话。 WAC也不适用于旧版本的PowerShell,因此您至少需要PowerShell 5.0。所有这些都与我们的资源紧缩范式背道而驰,但是您必须为舒适度付出代价。在我们的情况下,通过RAM。

管理Server Core的另一种方法是安装第三方GUI,以免拖动与界面完全组装在一起的大量垃圾。

在这种情况下,我们有两个选择:将原始资源管理器推出系统或使用资源管理器++。作为后者的替代,任何文件管理器都适用:Total Commander,FAR Manager,Double Commander等。如果节省内存对您来说至关重要,则最好使用后者。您可以通过创建网络文件夹并通过控制台或调度程序启动它来添加Explorer ++或任何其他文件管理器。

安装成熟的资源管理器将为我们提供更多使用带有UI的软件的选择。为此,我们将不得不联系服务器核心应用程序按需兼容功能(FOD),它将返回到系统MMC,Eventvwr,PerfMon,Resmon,Explorer.exe甚至Powershell ISE。但是,您将需要为此付出代价,就像WAC那样:我们将不可避免地丢失大约150-200 MB的RAM,这会极大地吞噬explorer.exe和其他服务。即使机器没有活动的用户。



这就是带有和不带有本地Explorer软件包的计算机上系统内存消耗的样子。

这就引出了一个逻辑问题:为什么所有这些与PowerShell,FOD,文件管理器共舞,如果左右任意一步,都会导致RAM消耗增加?当您只需要滚动Windows Server 2016/2019并像白人一样生活时,为什么还要用一堆工具遮盖自己并羞于确保Windows Server Core上的舒适工作呢?

使用服务器核心有几个原因。第一:电流几乎是内存消耗的一半。如果您还记得的话,这种情况从一开始就是我们文章的基础。为了进行比较,将Windows Server 2019的内存消耗与上面的屏幕截图进行比较:


因此,消耗的内存为1146 MB,而不是Core的655 MB。 

假设您不需要WAC,而是使用Explorer ++而不是原始的Explorer,那么您仍将在每台运行Windows Server的虚拟机上赢得将近半公顷的土地如果只有一个虚拟机,那么增长微不足道,但是如果有五个呢?在这里,GUI的存在很重要,尤其是在您不需要它的情况下。 

其次,围绕Windows Server Core的任何跳舞都不会使您与Windows Server操作RDP及其安全性(更确切地说,完全不存在)的主要问题作斗争。Windows Core甚至以FOD,RSAT和WAC的形式仍然是没有RDP的服务器,也就是说,它不受现有攻击的95%的攻击。

在平衡中


通常,Windows Core只是比任何现有Linux发行版都“稍微”落后,但功能更多。如果您需要释放资源并且准备使用控制台,WAC和RSAT,使用文件管理器而不是完整的GUI,那么Core值得关注。此外,将无法为功能完善的Windows支付额外费用,而无法通过添加(例如)RAM 来节省VPS的开支为了方便起见,我们将Windows Server Core添加到了市场中


All Articles