Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows Server

การติดตั้งเซิร์ฟเวอร์ KMS โอเพนซอร์ส (Vlmcsd) บน Linux

มีโปรเจกต์โอเพนซอร์สที่น่าสนใจบน GitHub ชื่อ vlmcsd (https://github.com/Wind4/vlmcsd) เพื่อจำลองเซิร์ฟเวอร์การเปิดใช้งาน KMS ของ Microsoft คุณสามารถใช้มันเพื่อปรับใช้เซิร์ฟเวอร์ KMS ของคุณเองบนแพลตฟอร์มที่ไม่ใช่ Windows Server (ดังนั้นคุณสามารถประหยัดค่าใบอนุญาต Windows Server หากคุณไม่ได้ใช้มัน) คุณสามารถติดตั้งเซิร์ฟเวอร์ KMS แบบนี้บน Linux, Android, FreeBSD, macOS ฯลฯ ในบทความนี้ เราจะแสดงวิธีติดตั้ง KMS ベース vlmcsd บนโฮสต์ Linux และใช้มันเพื่อเปิดใช้งานคอมพิวเตอร์ที่รันรุ่นเดสก์ท็อป Windows, Windows Server และ Microsoft Office บนเครือข่ายท้องถิ่นของคุณ

ข้อจำกัดความรับผิดชอบ บทความนี้จัดทำเพื่อวัตถุประสงค์ทางการศึกษา/ห้องปฏิบัติการเท่านั้น และไม่ได้สมมติการใช้ผลิตภัณฑ์เพื่อเปิดใช้งาน Windows หรือ Office อย่างผิดกฎหมาย โครงการ WindowsOSHub เตือนคุณอย่าใช้ซอฟต์แวร์ที่ไม่ได้รับอนุญาต (ปลอม) ในรูปแบบใดๆ

ก่อนเริ่ม เราแนะนำให้คุณทำความคุ้นเคยกับเทคโนโลยี Microsoft KMS Volume Activation เกือบข้อมูลที่จำเป็นทั้งหมดสามารถหาได้ใน Microsoft KMS Volume Activation FAQ

ในตัวอย่างนี้ เราใช้ Red Hat Enterprise Linux 8 (RHEL) เพื่อปรับใช้โฮสต์ KMS แต่คุณสามารถใช้ OS อื่นๆ ได้ เช่น Ubuntu, Debian, CentOS, Rocky Linux หรือแม้แต่อุปกรณ์ NAS ของคุณ (มีตัวอย่างการติดตั้งบนเซิร์ฟเวอร์ NAS Synology ที่สำเร็จบ้าง)

เชื่อมต่อกับเซิร์ฟเวอร์ Linux ของคุณและใช้ตัวจัดการแพ็กเกจ yum (dnf) เพื่อติดตั้งแพ็กเกจ git และ gcc:

# dnf update
# dnf install git gcc

จากนั้นโคลนและติดตั้งแพ็กเกจ vlmcsd:

# git clone https://github.com/Wind4/vlmcsd

# cd vlmcsd
# make

เปลี่ยนไปที่ไดเรกทอรี bin:

# cd bin

รันเซิร์ฟเวอร์ KMS:

# ./vlmcsd

คุณจะเห็นข้อความต่อไปนี้:

Connecting to 127.0.0.1:1688 ... successful Sending activation request (KMS V6) 1 of 1 -> 55041-00206-559-475403-03-1076-6002.0000-1482020 (3A1C049600B60076)

หมายความว่าคุณคอมไพล์และรันเซิร์ฟเวอร์ KMS บน Linux สำเร็จแล้ว

ตามค่าเริ่มต้น vlmcsd ฟังที่พอร์ต KMS เริ่มต้น TCP/1688 ดังนั้นคุณต้องเปิดพอร์ตในไฟร์วอลล์ Linux เพื่ออนุญาตให้ไคลเอ็นต์เชื่อมต่อ สำหรับ firewalld ให้รันคำสั่งด้านล่าง:

# firewall-cmd --zone=public --permanent --add-port=1688/tcp
# firewall-cmd –reload

ตรวจสอบว่าพอร์ต 1688 เปิดอยู่:

# firewall-cmd --list-port
# netstat -ntlp | grep LISTEN

เพื่อรัน vlmcsd อัตโนมัติ คุณสามารถสร้าง daemon ของคุณเองและจัดการด้วย systemd

# cp vlmcs /usr/bin
# touch /etc/systemd/system/kms-script.service
# chmod 664 /etc/systemd/system/kms-script.service
# nano /etc/systemd/system/kms-script.service

เพิ่มคำอธิบายบริการต่อไปนี้ลงในไฟล์:

[Unit] Description=MSFT KMS Server Emulator After=network.target After=network-online.target Wants=network-online.target [Service] Type=oneshot ExecStart=/usr/bin/vlmcsd RemainAfterExit=yes LimitNOFILE=65536 [Install] WantedBy=multi-user.target

จากนั้นรันบริการ KMS และเพิ่มเข้าไปในการเริ่มต้น:

# systemctl daemon-reload
# systemctl start kms-script.service
# systemctl status kms-script.service
# systemctl enable kms-script.service

คุณสามารถตั้งค่าตัวเลือก KMS เซิร์ฟเวอร์ขั้นสูงผ่าน vlmcsd.ini (มีไฟล์ตัวอย่างใน ../vlmcsd/etc/) ที่นี่คุณยังสามารถตั้งค่าเส้นทางไปยังไฟล์บันทึกเซิร์ฟเวอร์ KMS (vlmcsd.log) คุณสามารถตั้งค่าเส้นทางไฟล์ในตัวเลือกการเริ่มต้น vlmcsd โดยใช้ตัวเลือกต่อไปนี้:

-i /etc/vlmcsd.ini
-l /var/log/vlmcsd.log

คุณยังสามารถรันเซิร์ฟเวอร์ KMS ในคอนเทนเนอร์ docker ได้:
sudo docker pull mikolatero/vlmcsd
sudo docker run -d -p 1688:1688 --restart=always --name kms_server mikolatero/vlmcsd /vlmcsd -D -d -t 3 -e -v -R172800 -A10080

หากคุณใช้ Microsoft DNS คุณสามารถสร้างระเบียน _VLMCS ที่จะช่วยให้ไคลเอ็นต์ Windows ค้นหาเซิร์ฟเวอร์ KMS ในโดเมนได้โดยอัตโนมัติ เพื่อสร้างระเบียน DNS SRV ให้ใช้คำสั่ง PowerShell ต่อไปนี้:

Add-DnsServerResourceRecord -Srv -Name "_VLMCS._tcp" -ZoneName "woshub.com" -DomainName "192.168.14.147" -Priority 0 -Weight 0 -Port 1688

ที่นี่ 192.168.14.147 เป็นที่อยู่ IP ของโฮสต์ Linux ที่บริการ KMS กำลังทำงานอยู่

จากนั้นโฮสต์ Windows (และ Office) ทั้งหมดในโดเมนของคุณจะถูกเปิดใช้งานโดยอัตโนมัติบนเซิร์ฟเวอร์ KMS ของคุณ หากพวกเขามี GVLK สาธารณะติดตั้งอยู่ รายการ GVLK (Generic Volume License Keys) ครบถ้วนสำหรับการเปิดใช้งานรุ่น Windows ทั้งหมดที่มีอยู่เผยแพร่บนเว็บไซต์ Microsoft: https://docs.microsoft.com/en-us/windows-server/get-started/kms-client-activation-keys

เช่น หา GVLK เพื่อเปิดใช้งาน Windows Server 2022 Standard (VDYBN-27WPP-V4HQT-9VMD4-VMK7H) และ Windows 10 Pro (W269N-WFGWX-YVC9B-4J6C9-T83GX) บนหน้านี้

เพื่อเปิดใช้งาน Windows ด้วยตนเอง ให้ตั้งค่า GVLK สำหรับรุ่น Windows ของคุณ ที่อยู่ IP ของโฮสต์การเปิดใช้งาน KMS และรันคำสั่งเปิดใช้งาน คำสั่งต่อไปนี้ใช้ (เช่น สำหรับ Windows Server 2022 Standard):

slmgr.vbs -ipk VDYBN-27WPP-V4HQT-9VMD4-VMK7H
slmgr.vbs -skms 192.168.14.147
slmgr.vbs -ato

หลังจากรันคำสั่งสุดท้าย คุณจะเห็นข้อความ: Product activated successfully หมายความว่าโครงสำเนา Windows ของคุณได้รับการเปิดใช้งานสำเร็จแล้ว

คุณสามารถตรวจสอบสถานะการเปิดใช้งาน Windows โดยใช้คำสั่ง:

slmgr.vbs -dlv

ในตัวอย่างของผม เกิดข้อผิดพลาดขณะเปิดใช้งาน Windows Server:

Error: 0xC004F069 On a computer running Microsoft Windows non-core edition, run 'slui.exe 0x2a 0xC004F069' to display the error text.

เหตุผลคือ ผมติดตั้งรุ่นประเมินผล (evaluation) ของ Windows Server 2022 ก่อนอื่น คุณต้องแปลงเป็นรุ่น Standard ตามบทความนี้:

dism /online /set-edition:serverstandard /productkey:VDYBN-27WPP-V4HQT-9VMD4-VMK7H /accepteula

จากนั้นผมจึงสามารถเปิดใช้งานอินสแตนซ์ Windows ของผมบนโฮสต์ KMS ได้

ด้วยวิธีเดียวกัน คุณสามารถเปิดใช้งานรุ่น Volume ของ Microsoft Office 2019/2016/2013 บนโฮสต์ KMS ของคุณได้ คำสั่งต่อไปนี้ใช้:

cd C:\Program Files\Microsoft Office\Office16
cscript ospp.vbs /sethst: 192.168.14.147
cscript ospp.vbs /act

เพื่อตรวจสอบสถานะการเปิดใช้งาน Office:

cscript ospp.vbs /dstatusall

เรียนรู้เพิ่มเติมเกี่ยวกับการเปิดใช้งาน Microsoft Office KMS

ดังนั้น เราได้แสดงวิธีปรับใช้เซิร์ฟเวอร์ KMS บน Linux และเปิดใช้งานรุ่น Windows ทั้งหมดรวมถึง Windows Server 2022 และ Windows 11 ล่าสุด