使用 Windows Server Core 将 Windows Server 压缩到低功耗 VPS 上

使用 Windows Server Core 将 Windows Server 压缩到低功耗 VPS 上
由于 Windows 系统的贪婪,VPS 环境以轻量级 Linux 发行版为主:Mint、Colibri OS、Debian 或 Ubuntu,没有对我们的目的来说不必要的重型桌面环境。 正如他们所说,只有主机,只有硬核! 事实上,这一点也不夸张:同一个 Debian 启动时有 256 MB 内存和一个时钟周期为 1 Ghz 的核心,也就是说,几乎在任何“树桩”上。 为了舒适地工作,您至少需要 512 MB 的内存和速度稍快的处理器。 但是,如果我们告诉您您可以在运行 Windows 的 VPS 上执行大致相同的操作,该怎么办? 为什么不需要部署重型 Windows Server,它需要三到四公顷的 RAM 和至少几个主频为 1,4 GHz 的内核? 只需使用 Windows Server Core - 摆脱 GUI 和一些服务。 我们将在本文中讨论如何执行此操作。

这个 Windows Server Core 是谁?

即使在 Mikes 的官方网站上也没有关于 Windows(服务器)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/微软.NET
可使用
可使用

执行程序
不可用
可使用

Windbg(图形用户界面)
支持的
可使用

雷斯蒙程序
不可用
可使用

输入regedit
可使用
可使用

Fsutil程序
可使用
可使用

磁盘快照.exe
不可用
可使用

磁盘部分
可使用
可使用

磁盘管理器
不可用
可使用

开发管理工具
不可用
可使用

服务器管理器
不可用
可使用

MMC程序
不可用
可使用

事件vwr
不可用
可使用

Wevtutil(事件查询)
可使用
可使用

SERVICES.MSC
不可用
可使用

控制面板
不可用
可使用

Windows 更新(图形用户界面)
不可用
可使用

Windows资源管理器
不可用
可使用

任务栏
不可用
可使用

任务栏通知
不可用
可使用

任务管理器
可使用
可使用

Internet Explorer 或 Edge
不可用
可使用

内置帮助系统
不可用
可使用

Windows 10 外壳
不可用
可使用

Windows媒体播放器
不可用
可使用

PowerShell的
可使用
可使用

PowerShell 伊势
不可用
可使用

PowerShell 输入法
可使用
可使用

Mstsc程序
不可用
可使用

远程桌面服务
可使用
可使用

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 执行不应该执行的操作造成的。 这就像亨利·福特的故事以及他对汽车颜色的态度:“任何顾客都可以将汽车漆成他想要的任何颜色,只要它是 黑色” 与系统也是一样:用户可以通过任何方式与系统进行通信,主要是他通过 控制台.

安装和管理 Windows Server 2019 Core

我们之前提到过,Windows Core 本质上是没有 GUI 包装器的 Windows Server。 也就是说,你可以使用几乎任何版本的Windows Server作为核心版本,即放弃GUI。 对于 Windows Server 2019 系列产品,这是 3 个服务器版本中的 4 个:核心模式适用于 Windows Server 2019 Standard Edition、Windows Server 2019 Datacenter 和 Hyper-V Server 2019,即仅排除 Windows Server 2019 Essentials从这个列表中。

在这种情况下,您实际上不需要寻找 Windows Server Core 安装包。 在标准的 Microsoft 安装程序中,默认提供核心版本,而 GUI 版本必须手动选择:

使用 Windows Server Core 将 Windows Server 压缩到低功耗 VPS 上
事实上,除了制造商默认提供的 PowerShell 之外,管理系统的选项还有更多。 您可以通过至少五种不同的方式管理 Windows Server Core 上的虚拟机:

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

前三个位置最受关注:标准 PowerShell、RSAT 和 Windows Admin Center。 然而,重要的是要了解,虽然我们获得了其中一种工具的好处,但我们也受到了它所带来的限制。

我们不会描述控制台的功能;PowerShell 就是 PowerShell,它的优点和缺点都很明显。 对于 RSAT 和 WAC,一切都有点复杂。 

WAC 使您可以访问重要的系统控制,例如编辑注册表以及管理磁盘和设备。 第一种情况下的 RSAT 只能在查看模式下工作,不允许您进行任何更改,并且管理磁盘和物理设备远程服务器管理工​​具需要 GUI,但我们的情况并非如此。 一般来说,RSAT 无法处理文件,因此无法在编辑注册表时更新、安装/删除程序。

▍系统管理

 

瓦克
反卫星系统

组件管理

注册编辑器

没有

网络管理

查看事件

共享文件夹

磁盘管理

仅适用于带有 GUI 的服务器

任务计划程序

设备管理

仅适用于带有 GUI 的服务器

文件管理

没有

用户管理

集团管理

证书管理

更新

没有

卸载程序

没有

系统监控器

另一方面,RSAT 使我们能够完全控制计算机上的角色,而 Windows Admin Center 在这方面实际上无能为力。 为了清楚起见,下面对 RSAT 和 WAC 在这方面的能力进行了比较:

▍角色管理

 

瓦克
反卫星系统

高级线程保护
预览
没有

Windows Defender的
预览

集装箱
预览

AD行政中心
预览

AD 域和信任
没有

广告网站和服务
没有

DHCP
预览

DNS
预览

分布式文件系统管理器
没有

政府采购经理
没有

IIS管理器
没有

也就是说,很明显,如果我们放弃 GUI 和 PowerShell 转而使用其他控件,我们将无法摆脱使用某种单一工具的束缚:为了在所有方面进行全面管理,我们至少需要RSAT 和 WAC 的组合。

但是,您需要记住,您必须支付 150-180 MB 的 RAM 才能使用 WAC。 连接后,Windows Admin Center 在服务器端创建 3-4 个会话,即使该工具与虚拟机断开连接,这些会话也不会被终止。 WAC 也不适用于旧版本的 PowerShell,因此您至少需要 PowerShell 5.0。 所有这些都违背了我们的紧缩范式,但你必须为舒适付出代价。 在我们的例子中 - RAM。

管理服务器核心的另一个选择是使用第三方工具安装 GUI,以免在成熟的程序集中拖拽界面带来的大量垃圾。

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

安装功能齐全的资源管理器将为我们提供更多使用配备 UI 的软件的机会。 为此我们 必须联系 服务器核心应用程序兼容性按需功能 (FOD) 会将 MMC、Eventvwr、PerfMon、Resmon、Explorer.exe 甚至 Powershell ISE 返回到系统。 然而,我们将不得不为此付出代价,就像WAC的情况一样:我们将不可逆转地损失大约150-200兆字节的RAM,这些RAM将被explorer.exe和其他服务无情地吞噬。 即使计算机上没有活动用户。

使用 Windows Server Core 将 Windows Server 压缩到低功耗 VPS 上
使用 Windows Server Core 将 Windows Server 压缩到低功耗 VPS 上
这是在带有和不带有本机 Explorer 包的计算机上系统的内存消耗情况。

这里出现了一个逻辑问题:如果向左或向右的任何一步都会导致 RAM 消耗增加,为什么所有这些与 PowerShell、FOD、文件管理器共舞? 当您只需下载 Windows Server 2016/2019 并像白人一样生活时,为什么要使用一堆工具并左右移动以确保在 Windows Server Core 上舒适地工作呢?

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

使用 Windows Server Core 将 Windows Server 压缩到低功耗 VPS 上
因此,Core 上的内存消耗为 1146 MB,而不是 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 支付额外费用,并将节省下来的钱用于升级您的计算机 VPS,例如添加 RAM。 为了方便起见,我们已将 Windows Server Core 添加到我们的 市场.

使用 Windows Server Core 将 Windows Server 压缩到低功耗 VPS 上

来源: habr.com

添加评论