LinuxでVlmcsd KMSアクティベーションサーバーを設定する方法

VLMCSD を使用して Linux 上に KMS サーバーをセットアップしようとしていますか? はい、これはちょっとした DIY アドベンチャーです。特に、Microsoft の通常のツールはすべて Windows 中心であるためです。GitHub のこのオープンソース プロジェクト ( https://github.com/Wind4/vlmcsd ) を使用すると、Linux、macOS、さらには Android などの他のプラットフォームで Microsoft KMS アクティベーション サーバーをエミュレートできます。完全な Windows Server を実行せずに、Windows または Office をアクティベートする軽量で柔軟な方法が必要な場合は、非常に便利です。注意: これは主にテストまたは教育目的での使用を目的としており、不正なアクティベーション用ではないため、誤解しないでください。ただし、特にライセンス契約で許可されている場合、Linux ベースの KMS を実行することで Windows Server ホストを置き換えることができる場合があります。

これを動作させるのは、最初は複雑に思えるかもしれません。ソースからビルドし、適切な権限を設定し、適切なポートでリッスンしていることを確認する必要があります。しかし、肝心なのは、正しく設定すれば、Windows、Office、その他の製品をネットワーク経由でアクティベートできるという点です。もちろん、systemd サービスとして実行することも、Docker で実行することも、別のマシンで実行することもできます。環境に合わせて自由に設定できます。ここでの目標は、アクティベーションリクエストを処理するローカルのセルフホスト型 KMS を構築し、ライセンス費用を節約しながら柔軟性を維持することです。

LinuxでKMSサーバーを修正する方法 – 方法の詳細

DebianまたはUbuntuにVLMCSDをインストールする – 最初のステップ

このプロセスは、基本的にソースからサーバーをコンパイルするため、少し面倒です。ソースファイルはGitHubに保存されているので便利ですが、いくつかのLinuxパッケージを使ってビルドする必要があります。適切なパッケージをインストールすることが鍵となります。実行するだけでコンパイラとビルドツールの準備が整うことがわかりました。インストールが完了したら、 ~/vlmcsd-srcapt install git build-essential debhelperのようなディレクトリを作成し、 でリポジトリをクローンして、ソースディレクトリに移動してください。git clone https://github.com/Wind4/vlmcsd

git submodule update --init debian重要な点:パッケージをビルドする前に、Debianビルドサブモジュールを で初期化する必要があります。ビルドは簡単ですdpkg-buildpackage -rfakeroot -D -us -uc。ただし、環境によっては初回は失敗する可能性があります。その場合は、軽微な問題を修正した後、再度実行してください。通常、生成されたvlmcsd_*.debパッケージは親ディレクトリに保存されます。

でインストールしたらdpkg -i、 で systemd がサービスを認識しているかどうかを確認してくださいsystemctl status vlmcsd。ログを実行するには、ログディレクトリを作成し、そのパスを/etc/vlmcsd/vlmcsd.iniで指定し、セキュリティ上の理由からログイン権限のないユーザー( など)を作成しますuseradd -s /usr/sbin/nologin -r -M vlmcsd。ログファイルへの権限を付与し、そのユーザーでサービスが実行されるように設定してください。その後、 で systemd をリロードしsystemctl daemon-reload、サービスを再起動します。 でポート1688でリッスンしていることを確認できますss -lnptu | grep 1688。私の場合はうまくいきました。最初の起動がおかしい場合もありますが、1、2回再起動すると安定します。

RHELまたはRocky Linux上でKMSサーバーを構築する – 手動でコンパイルして実行する

Rocky Linux やその他の RHEL クローンを使っている場合も、手順はほぼ同じです。 を使ってdnf install git gccツールを取得し、リポジトリをクローンし、 を使ってコンパイルしますmake。完了したら、./vlmcsdソースディレクトリで実行するだけです。ポート 1688 でリッスンを開始します。ファイアウォールでこのポートを開くことを忘れないでください。

firewalld の場合は、 のようなコマンドfirewall-cmd --zone=public --permanent --add-port=1688/tcpを実行してから をリロードしますfirewall-cmd --reload。ちょっとした補足ですが、設定によっては、ss -tnlpLinux とそのファイアウォールが着信接続に対して少しうるさいことがあるため、手動でポートを開くか で確認する必要があるかもしれません。

自動起動して快適に動作させたいなら、systemdサービスを作成するのが合理的です。バイナリを/usr/binにコピーし、 /etc/systemd/system/ kms.serviceにサービスファイルを作成し、起動時に再起動するように設定するだけです。systemdの設定を再読み込みし、起動して有効化するだけです。簡単ですが、場合によっては、サービスパラメータや設定ファイルを微調整して、最適な状態にする必要があります。

Docker: 高速かつダーティーな方法

ソースからコンパイルしたり、サービスをいじったりするのが面倒なら、Dockerが最適です。Dockerのインストールは非常に簡単で、curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.shすぐに使えます。Dockerが起動したら、ユーザーをdockerグループに追加すれば、sudoをいちいち実行する必要がなくなります。これで完了ですsudo groupadd docker; sudo gpasswd -a ${USER} docker; sudo service docker restart; newgrp docker

VLMCSDコンテナを でプルしますdocker pull mikolatero/vlmcsd。 で起動しますdocker run -d -p 1688:1688 --restart=always --name=vlmcsd mikolatero/vlmcsd。完了です。コンテナは自動的にTCPポート1688をリッスンし、Dockerはそれをホストに転送します。つまり、数分でKMSサーバーを稼働させることができます。面倒な作業もなく、ハッカーになったような気分になることもありません(まあ…多分)。Dockerコンテナは高度に分離されていますが、クライアントが接続できるようにファイアウォールでポート1688を開いておく必要があることに注意してください。

LinuxベースのKMSを使用してアクティベーションを行う

サーバーが起動してリッスンしたら、WindowsまたはOfficeデバイスからサーバーを見つけられるようにする必要があります。MicrosoftのDNSでドメインを管理している場合は、次のように_VLMCS SRVレコードを作成するのが最も簡単です。

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

これにより、WindowsクライアントはKMSサーバーを自動検出できるようになります。反映までに少し時間がかかる場合や、クライアントマシンの再起動が必要になる場合があります。DNSが利用できない場合、またはクライアントが自動検出を行わない場合は、以下の手順でクライアントをサーバーに手動で接続できます。

slmgr.vbs -skms 192.168.1.100 slmgr.vbs -ato

ライセンスキーが互換性があり、サーバーが正しく設定されていれば、アクティベーションはスムーズに進むはずです。ただし、一部のエディション(評価版や特定のバリアントなど)では、アクティベーション前にエラーが発生したり、アップグレードが必要になったりする場合がありますdism /online /set-edition:...。これは面倒ですが、 で解決できます。

最後に、同様の方法でOfficeをアクティベートできます。Officeインストールディレクトリ内でKMSホストを設定する方法ですcscript ospp.vbs /sethst:192.168.1.100。全体的にはちょっとしたハックですが、ちゃんと機能します。少し奇妙ですが、合法であれば複数のライセンスを購入するよりはましです。

注意: 必ずライセンス契約と法的要件に従ってください。これは海賊版のライセンスではなく、許可されている場合にアクティベーションをテストまたは管理するための方法にすぎません。

LinuxベースのKMSの導入は、確かにプラグアンドプレイとは言い難いですが、コマンドラインハッキングを気にしないのであれば、柔軟な代替手段になり得ます。ただし、ポートを開いたままにして、ログを監視することを忘れないでください。