På grund av frossandet av Windows-system domineras VPS-miljön av lätta Linux-distributioner: Mint, Colibri OS, Debian eller Ubuntu, utan en tung skrivbordsmiljö som är onödig för våra syften. Som de säger, bara konsol, bara hardcore! Och i själva verket är detta inte alls en överdrift: samma Debian startar på 256 MB minne och en kärna med en 1 Ghz klocka, det vill säga på nästan vilken "stubb som helst". För bekvämt arbete behöver du minst 512 MB och en något snabbare processor. Men vad händer om vi berättade att du kan göra ungefär samma sak på en VPS som kör Windows? Varför behöver du inte rulla ut en tung Windows Server, som kräver tre till fyra hektar RAM och minst ett par kärnor klockade till 1,4 GHz? Använd bara Windows Server Core - bli av med GUI och vissa tjänster. Vi kommer att prata om hur man gör detta i artikeln.
Vem är denna Windows Server Core?
Det finns ingen tydlig information om vad Windows (server) Core är ens på Mikes officiella webbplats, eller snarare, allt är så förvirrande där att du inte direkt kommer att förstå, men de första omnämnandena går tillbaka till eran av Windows Server 2008 I huvudsak är Windows Core en fungerande Windows-kärnserver (plötsligt!), "tunnare" med storleken på sitt eget GUI och ungefär hälften av sidotjänsterna.
Huvudfunktionen hos Windows Core är dess krävande hårdvara och fullständiga konsolkontroll via PowerShell.
Om du går till Microsofts webbplats och kontrollerar de tekniska kraven behöver du för att starta Windows Server 2016/2019 minst 2 gig RAM och minst en kärna med en klockhastighet på 1,4 GHz. Men vi förstår alla att med en sådan konfiguration kan vi bara förvänta oss att systemet startar, men absolut inte den bekväma driften av vårt operativsystem. Det är av denna anledning som Windows Server vanligtvis tilldelas mer minne och minst 2 kärnor/4 trådar från processorn, om de inte förser den med en dyr fysisk maskin på någon Xeon, istället för en billig virtuell maskin.
Samtidigt kräver själva kärnan i själva serversystemet bara 512 MB minne, och de processorresurser som förbrukades av GUI helt enkelt för att ritas upp på skärmen och hålla dess många tjänster igång kan användas till något mer användbart.
Här är en jämförelse av Windows Core-tjänster som stöds direkt och en komplett Windows Server från den officiella Microsoft-webbplatsen:
ansökan
server kärna
server medskrivbordsupplevelse
Kommandotolken
tillgänglig
tillgänglig
Windows PowerShell/Microsoft .NET
tillgänglig
tillgänglig
Perfmon.exe
ej tillgänglig
tillgänglig
Windbg (GUI)
uppburen
tillgänglig
Resmon.exe
ej tillgänglig
tillgänglig
Regedit
tillgänglig
tillgänglig
Fsutil.exe
tillgänglig
tillgänglig
Disksnapshot.exe
ej tillgänglig
tillgänglig
Diskpart.exe
tillgänglig
tillgänglig
diskmgmt.msc
ej tillgänglig
tillgänglig
devmgmt.msc
ej tillgänglig
tillgänglig
server manager
ej tillgänglig
tillgänglig
mmc.exe
ej tillgänglig
tillgänglig
Eventvwr
ej tillgänglig
tillgänglig
Wevtutil (händelsfrågor)
tillgänglig
tillgänglig
Services.msc
ej tillgänglig
tillgänglig
kontrollpanelen
ej tillgänglig
tillgänglig
Windows Update (GUI)
ej tillgänglig
tillgänglig
Utforskaren
ej tillgänglig
tillgänglig
Aktivitetsfältet fältet~~POS=HEADCOMP
ej tillgänglig
tillgänglig
Aviseringar i aktivitetsfältet
ej tillgänglig
tillgänglig
taskmgr
tillgänglig
tillgänglig
Internet Explorer eller Edge
ej tillgänglig
tillgänglig
Inbyggt hjälpsystem
ej tillgänglig
tillgänglig
Windows 10 Shell
ej tillgänglig
tillgänglig
Windows mediaspelare
ej tillgänglig
tillgänglig
Power
tillgänglig
tillgänglig
PowerShell ISE
ej tillgänglig
tillgänglig
PowerShell IME
tillgänglig
tillgänglig
Mstsc.exe
ej tillgänglig
tillgänglig
Fjärrskrivbordstjänster
tillgänglig
tillgänglig
Hyper-V Manager
ej tillgänglig
tillgänglig
Som du kan se har mycket klippts bort från Windows Core. Tjänsterna och processerna som är förknippade med systemets GUI, såväl som alla "skräp" som definitivt inte behövs på vår virtuella konsolmaskin, till exempel Windows Media Player, gick under kniven.
Nästan som Linux, men inte det
Jag vill verkligen jämföra Windows Server Core med Linux-distributioner, men det är faktiskt inte helt korrekt. Ja, dessa system liknar varandra när det gäller minskad resursförbrukning på grund av övergivandet av GUI och många sidotjänster, men när det gäller drift och vissa metoder för montering är detta fortfarande Windows, och inte ett Unix-system.
Det enklaste exemplet är att genom att manuellt bygga Linux-kärnan och sedan installera paket och tjänster kan även en lätt Linux-distribution förvandlas till något tungt och likt en schweizisk armékniv (här vill jag verkligen dra ett dragspelsskämt om Python och infoga en bild från serien "If Programming Languages Weare Weapons", men det gör vi inte). I Windows Core finns det mycket mindre sådan frihet, eftersom vi trots allt har att göra med en Microsoft-produkt.
Windows Server Core kommer färdiggjord, vars standardkonfiguration kan uppskattas från tabellen ovan. Om du behöver något från listan som inte stöds måste du lägga till de saknade elementen online via konsolen. Det är sant att du inte bör glömma Feature on demand och möjligheten att ladda ner komponenter som CAB-filer, som sedan kan läggas till i monteringen före installationen. Men det här skriptet fungerar inte om du redan under processen upptäcker att du saknar någon av klipptjänsterna.
Men det som skiljer Core-versionen från den fullständiga versionen är möjligheten att uppdatera systemet och lägga till tjänster utan att sluta arbeta. Windows Core stöder varmrullning av paket, utan omstart. Som ett resultat, baserat på praktiska observationer: en maskin som kör Windows Core måste startas om ~6 gånger mindre ofta än en som kör Windows Server, det vill säga en gång var sjätte månad, och inte en gång i månaden.
En trevlig bonus för administratörer är att om systemet används som avsett - genom konsolen, utan RDP - och inte förvandlas till en andra Windows Server, så blir det extremt säkert jämfört med den fullständiga versionen. När allt kommer omkring beror majoriteten av Windows Server-sårbarheter på RDP och handlingar från användaren som genom just denna RDP gör något som inte bör göras. Det är ungefär som historien med Henry Ford och hans inställning till färgen på en bil: "Alla kunder kan få en bil målad vilken färg han vill så länge den är svart" Det är samma sak med systemet: användaren kan kommunicera med systemet på vilket sätt som helst, huvudsaken är att han gör det genom konsol.
Installera och hantera Windows Server 2019 Core
Vi nämnde tidigare att Windows Core i huvudsak är Windows Server utan GUI-omslaget. Det vill säga, du kan använda nästan vilken version av Windows Server som helst som en kärnversion, det vill säga överge GUI. För produkter i Windows Server 2019-familjen är detta 3 av 4 serverbyggen: kärnläge är tillgängligt för Windows Server 2019 Standard Edition, Windows Server 2019 Datacenter och Hyper-V Server 2019, det vill säga endast Windows Server 2019 Essentials är undantagna från denna lista.
I det här fallet behöver du egentligen inte leta efter installationspaketet för Windows Server Core. I Microsofts standardinstallationsprogram erbjuds kärnversionen bokstavligen som standard, medan GUI-versionen måste väljas manuellt:
Faktum är att det finns fler alternativ för att hantera systemet än det nämnda PowerShell, som erbjuds av tillverkaren som standard. Du kan hantera en virtuell maskin på Windows Server Core på minst fem olika sätt:
- Fjärr PowerShell;
- Remote Server Administration Tools (RSAT);
- Windows Admin Center;
- Sconfig;
- Serverhanterare.
De tre första positionerna är av största intresse: standard PowerShell, RSAT och Windows Admin Center. Det är dock viktigt att förstå att även om vi får fördelarna med ett av verktygen, får vi också de begränsningar det medför.
Vi kommer inte att beskriva konsolens funktioner; PowerShell är PowerShell, med dess uppenbara för- och nackdelar. Med RSAT och WAC är allt lite mer komplicerat.
WAC ger dig tillgång till viktiga systemkontroller som att redigera registret och hantera diskar och enheter. RSAT i det första fallet fungerar bara i visningsläge och tillåter dig inte att göra några ändringar, och för att hantera diskar och fysiska enheter Remote Server Administration Tools kräver ett GUI, vilket inte är fallet i vårt fall. I allmänhet kan RSAT inte arbeta med filer och följaktligen uppdateringar, installation/borttagning av program vid redigering av registret.
▍Systemhantering
WAC
RSAT
Komponenthantering
Ja
Ja
Registerredigerare
Ja
Ingen
Nätverkshantering
Ja
Ja
Visa händelser
Ja
Ja
Delade mappar
Ja
Ja
Diskhantering
Ja
Endast för servrar med GUI
Schemaläggaren
Ja
Ja
Enhetshantering
Ja
Endast för servrar med GUI
Filhantering
Ja
Ingen
Användarhantering
Ja
Ja
Koncernledning
Ja
Ja
Certifikathantering
Ja
Ja
Uppdateringar
Ja
Ingen
Avinstallera program
Ja
Ingen
Systemövervakare
Ja
Ja
Å andra sidan ger RSAT oss fullständig kontroll över rollerna på maskinen, medan Windows Admin Center kan bokstavligen ingenting göra i detta avseende. Här är en jämförelse av funktionerna hos RSAT och WAC i denna aspekt, för tydlighetens skull:
▍Rollhantering
WAC
RSAT
Avancerat trådskydd
FÖRHANDSVISNING
Ingen
Windows Defender
FÖRHANDSVISNING
Ja
behållare
FÖRHANDSVISNING
Ja
AD Administrativt center
FÖRHANDSVISNING
Ja
AD-domän och förtroende
Ingen
Ja
AD-webbplatser och tjänster
Ingen
Ja
DHCP-
FÖRHANDSVISNING
Ja
DNS
FÖRHANDSVISNING
Ja
DFS Manager
Ingen
Ja
GPO Manager
Ingen
Ja
IIS Manager
Ingen
Ja
Det vill säga, det är redan klart att om vi överger GUI och PowerShell till förmån för andra kontroller kommer vi inte att kunna komma undan med att använda något slags mono-verktyg: för full administration på alla fronter kommer vi att behöva minst en kombination av RSAT och WAC.
Du måste dock komma ihåg att du måste betala 150-180 megabyte RAM för att använda WAC. När det är anslutet skapar Windows Admin Center 3-4 sessioner på serversidan, som inte dödas även när verktyget kopplas bort från den virtuella maskinen. WAC fungerar inte heller med äldre versioner av PowerShell, så du behöver minst PowerShell 5.0. Allt detta strider mot vårt paradigm av åtstramning, men du måste betala för komfort. I vårt fall - RAM.
Ett annat alternativ för att hantera Server Core är att installera det grafiska användargränssnittet med hjälp av tredjepartsverktyg, för att inte dra runt de massor av skräp som följer med gränssnittet i en fullfjädrad sammansättning.
I det här fallet har vi två alternativ: rulla ut den ursprungliga Explorer till systemet eller använd Explorer++. Som ett alternativ till det senare är vilken filhanterare som helst lämplig: Total Commander, FAR Manager, Double Commander, och så vidare. Det senare är att föredra om det är viktigt för dig att spara RAM. Du kan lägga till Explorer++ eller någon annan filhanterare genom att skapa en nätverksmapp och starta den via konsolen eller schemaläggaren.
Att installera en fullfjädrad Explorer kommer att ge oss fler möjligheter när det gäller att arbeta med programvara utrustad med ett användargränssnitt. För detta vi
Så här ser minnesförbrukningen i systemet ut på maskiner med och utan det inbyggda Explorer-paketet.
En logisk fråga uppstår här: varför all denna dans med PowerShell, FOD, filhanterare, om något steg åt vänster eller höger leder till en ökning av RAM-förbrukningen? Varför smörja in dig med en massa verktyg och blanda från sida till sida för att säkerställa bekvämt arbete på Windows Server Core, när du bara kan ladda ner Windows Server 2016/2019 och leva som en vit man?
Det finns flera skäl att använda Server Core. För det första: nuvarande minnesförbrukning är nästan hälften så mycket. Om du kommer ihåg var detta tillstånd grunden för vår artikel i början. För jämförelse, här är minnesförbrukningen för Windows Server 2019, jämför med skärmdumparna precis ovan:
Och så, 1146 MB minnesförbrukning istället för 655 MB på Core.
Förutsatt att du inte behöver WAC och kommer att använda Explorer++ istället för den ursprungliga Explorer, då kan du du kommer fortfarande att vinna nästan ett halvt hektar på varje virtuell maskin som kör Windows Server. Om det bara finns en virtuell maskin är ökningen obetydlig, men om det finns fem av dem? Det är här det är viktigt att ha ett GUI, speciellt om du inte behöver det.
För det andra, några danser runt Windows Server Core kommer inte att leda till att du bekämpar huvudproblemet med att driva Windows Server - RDP och dess säkerhet (mer exakt, dess fullständiga frånvaro). Windows Core, även belagd med FOD, RSAT och WAC, är fortfarande en server utan RDP, det vill säga den är inte mottaglig för 95 % av befintliga attacker.
Återstående
I allmänhet är Windows Core bara något fetare än någon vanlig Linux-distribution, men den är mycket mer funktionell. Om du behöver frigöra resurser och är redo att arbeta med konsolen, WAC och RSAT, och använda filhanterare istället för ett fullfjädrat GUI, så är Core värt att uppmärksamma. Dessutom kommer du att kunna undvika att betala extra för ett fullfjädrat Windows och spendera de sparade pengarna på att uppgradera din
Källa: will.com