自宅の古いPCをマインクラフトサーバにする
自宅に昔々購入した、
- CPU Atom 330
- メモリ DDR2 2GByte
という非常に古いPCがあるのですが、これをずっと何かに使いたいと思っていました。
Webサーバなどをこれを使って立てようかと思ったりもしましたが、スペックも問題だし、古いのでいつ壊れるかわからない。そんな不安定なPCでWebサーバなど外部公開するようなものを作るのもどうかと思い、ふと思い立ったのがマインクラフトのなんちゃってサーバにしてしまおうということでした。
家族と一緒にマインクラフトで遊んだりするのですが、いちいちみんなで集まって、誰かがサーバを立てて公開する、という手順を踏む必要があるので、今までは個人が好きなタイミングで遊ぶということができていなかったのです。
外部公開する方は、セキュリティ設定をしっかりしたほうがいいですし、大勢で遊ぶならこの程度の低スペックPCでは処理性能に問題がある可能性も高いです。
本記事は、骨董品のような古いPCを再利用するための遊びです。
目次
OSのインストール
まずは、OSのインストールから。
今回は、Ubuntu serverを選択しました。
CPUが非力なので、Windows 10などの最新のOSが動くはずはなく、かといってWindowsXPという選択肢もどうかと思い、今後、別の用途でも使えるようにLinuxを選択することにしました。
Linuxとしては、RedHat系のCentOSなどの方がいいのかなとも思いましたが、どうもインストールがうまく行かなかず、Ubuntu系のサーバ情報を参考にしてインストールが成功したので、今回はUbuntuサーバにしています。
なお、Ubuntuのインストール作業についてはこちらのサイトを参考にしています。
まずは、普通にOSをインストールして、一通りのアプリをアップデートし、SSHサーバの設定と、Sambaサーバのインストールまで実行しました。
SSHサーバがないと、サーバをリモートで管理することがうまくいかないし、Sambaサーバがないと、Windowsからサーバの名前でアクセスしたいからです。名前解決の方法は別の方法もあるかとは思いますが、手っ取り早そうなのはSambaでWorkgroupに入れてしまうことかなと思います。
Minecraftの設定
Minecraftサーバアプリのダウンロード
何はともあれ、マインクラフトサーバアプリを手に入れないことには何も始まらないということで、まずはマインクラフトサーバアプリを手に入れます。
なお、ここからは実際に作業をしながらメモのように書いていきます。
入手先は、こちら(https://www.minecraft.net/ja-jp/download/server/)になります。
ひとまず、自分のホームにserver.jar をダウンロードします。
このあと、試しにサーバアプリを起動してみますが、ここで注意。
Minecraftサーバサイトには下記のようなコマンドで実行してくださいと言う記載があります
java -Xmx1024M -Xms1024M -jar minecraft_server.1.13.2.jar nogui
しかし、このコマンドでは実行できません。なぜなら、ダウンロードされるサーバアプリのファイル名は、server.jarだからです。
非常に不親切な説明ですよね。
私は、server.jarという名前も嫌だったし、上記の記載のようにVer名が書かれているのも嫌だったので、アプリファイルの名前を一旦、『MinecraftServerjar』に変更することにしました。(なんのサーバなのか、このままではわからなくなっていまうので)
なので、一旦下記のコマンドでアプリを実行してみます。
java -Xmx1024M -Xms1024M -jar MinecraftServer.jar nogui
下のような表示がつらつらと流れていき、Preparing swap area: 100%という表示が出れば起動完了のようです。(多分)
起動が完了したら、マインクラフトを起動して、「マルチプレイ」を選択、LAN内のゲームを探索と表示されるのですが、うまく探せないようなので直接サーバ名で選択しました。(今のところ理由はわかっていません。我が家のLAN環境が良くないのかもしれません)
しかし、このままでは、どうやらうまくいかないようです。下記のようなメッセージが表示され、サーバにつながらないと言われてしまいました。どうやら、マインクラフトサーバのポートがファイアウォールによって塞がれてしまっているからのようです。
ポートの開放
マインクラフトのポートはデフォルトでは25565番に割りあたっていて先程のログ上でも、
Starting Minecraft server on *:25565
というログが表示されており、このポートを開放してやる必要がありそうです。
Ubuntuのファイアウォールはufwというもので、こちらの設定を変更してポートを開放してやる必要があります。
GUIが使える方はGufwというアプリがGUI上から使えるようなのですが、私のサーバは最初に申し上げたとおり、CPUがしょぼしょぼなので、GUIはインストールしていません。したがってCUI上でufwの設定をしてやる必要があります。
まずは、ufwの状態を調べてみます。
hoge@server:~$ sudo ufw status
Status: activeTo Action From
— —— —-
22/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
SSHのポートだけを最初にポート開放しているので、ほかが塞がっていることがわかります。
下記のようにコマンドを実行して、ポートの開放操作を行い、実際に開放できていることを確認します。
hoge@server:~$ sudo ufw allow 25565
[sudo] password for hoge:
Rule added
Rule added (v6)
hoge@server:~$ sudo ufw status
Status: activeTo Action From
— —— —-
22/tcp ALLOW Anywhere
25565 ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
25565 (v6) ALLOW Anywhere (v6)
ポートの開放が確認できたら、マインクラフトを実行し、アクセスができることが確認できました。
サーバーデータの移動
ひとまず、動作について確認できました。
しかし、データがまっさらな状態になってしまっているので、今までプレイしてきたデータを引き継がなければなりません。
マインクラフトのデータは通常、Windows版では、
C:\Users\(ユーザー名)\AppData\Roaming\.minecraft
にありますので、そちらを開き、セーブデータ名ごとにデータができているはずです。
一方、サーバ側はというと、先程起動したMincraftServer.jarと同じ場所に、
world
という名前のディレクトリができているはずです。
中を開いてもらうと、先程のWindowsのセーブデータを、このworldディレクトリにすべてコピーすれば、今までのデータの続きをサーバを使って遊ぶことができるようになります。
ただし、この時、一旦Minecraftサーバアプリは止めてからデータのコピーを行うようにしましょう。
起動中にデータの書き換えを行うと不整合が起きる可能性があるので注意です。
tmuxを使ってMinecraftサーバを起動
セーブデータを移動させたら、改めてMinecraftサーバを起動します。
本来はサービス化するべきなのでしょうが、今回はなんちゃってサーバということで、難しいことは一旦後で考えるとして、sshを切ってもサーバが切れないようにだけすれば良いので、tmuxを使って、バックグラウンドで常にサーバが動き続けるようにしたいと思います。
tmuxって何?という説明は、ここでは省略します。そういうもんだと思ってください。
tmuxのインストールは簡単で、
sudo apt-get install tmux
と入力してインストールします。
インストールが終了したら、tmuxコマンドでtmuxを起動し、tmux上で、先程のMinecraftサーバを起動するという作業を行います。
あとはsshを閉じてしまっても、バックグラウンドでtmuxが動き続けてくれるので、サーバを再起動するか、サーバがエラーを起こして止まってしまうまで遊び続けることができます。
実際に遊んでみた感想
ひとまず、通常のプレイでは特に問題はありません。
まだ1人でしか遊んでみていませんが、少なくとも一人で遊んでいる限りは何も問題はなさそうです。
CPU使用率も、Atom 330で150%程度で、CPUは2コア4スレッドなので、400%まで使えることを考えると、までまだまだ余裕はありそうです。
我が家では今の所2人しか同時にアクセスする予定もないので、2人同時アクセスした場合はどうなるのか?気になるところですが、多分大丈夫でしょう。
10人とかでプレイする場合は、このPCでは流石に非力すぎるかもしれませんが・・・
メモリの方はというと、1Gの設定で起動していて、2G ByteしかないPCなので、64%ほどを常に使用する事になっているため、この先WebサーバやGitサーバなども立ててみたいなぁとは思っているのですが、あまり負荷の大きなWebサーバは作れないかもしれません。
まあ、実際にWebサイトとしてはレンタルサーバを使っているので、自宅でWebサーバを立てるというのも、本格的なWebサイト運用ではないので、気にする必要はないのですが、どちらかというと、マイクラ側に影響がないようにしないといけないです笑
1時間ほど試してみた結果
なにもない場所では問題なく動きますが、処理負荷の大きな場所、私が試した限りでは牛や鶏を飼育している牧場付近では、処理がまともに動作せず、サーバが落ちてしまうようでした。
やはりAtom 330には荷が重すぎましたね。
このサーバはまた別の利用方法を考えることにします。
やはり、Webサーバとかですかね
local内テスト開発用のWeb/db/php/java/javascriptサーバーにするのはどうでしょ
Webサーバや各種Webアプリケーションのテストに使用することはできるかと思います。
WordPressくらいのものであれば問題はないです。
ただ、内蔵のeMMCの容量が少ないので、SDカードまたはUSBメモリなどを使用する必要があります。
現時点で新たに購入を検討するのであれば、同等程度の金額で購入可能でありUSB3.0も使用可能なラズベリーパイを使用したほうが良いかと思います。
local内ファイルサーバー用とで使うのはどうでしょう
ファイルサーバとしての使用はできると思いますが、HDDの接続がUSB2.0でしかできないため、あまり高速なアクセスができず、お薦めはできないかと思います。