マインクラフトPEのマルチプレイサーバーのセットアップに挑戦し、一応うまく動きました。
英語の情報はあまり見れてませんが、少なくとも日本語ではまとまった最新情報が見つけらなかったということもあり、結構時間がかかってしまいました。
まだまだよくわかっていないことも多いですが、とりあえずメモ残しておきます。
環境
- さくらのクラウド
- CentOS 7
メモ
- CentOS 6 だと、 glibc のバージョンが古いみたい。今回は CentOS 7 でしのいだ
- マインクラフトPEのPEとは、Pocket Editionの略。簡単に言うとスマホ(iPhone, Android)版のこと。
- PEと、PC版と、コンシューマーゲーム機版(プレステ版など)は、基本的に互換性がない。
- PEのマルチプレイサーバーのソフトは、PocketMine-MPというソフト。(公式が提供するものではない?他にもあるかも?)
-
もしかして、Wi-Fi環境じゃないとうまくつながらない?→ そんなことはなかった - pharファイルというファイルを、最新のものをダウンロードして置き換えることが必要。(プレイしているクライアントのバージョンよりも低いバージョン用のサーバではマズいみたい)
コマンドメモ
# root ユーザー以外のユーザーを作ってセットアップするのが原則
useradd hoge
passwd hoge
# 前提パッケージのインストール(すでに入っているかも?)
yum install perl gcc make automake libtool autoconf m4
# 現在公開されているものは最新バージョン用にまとまっておらず、いくつか追加の手順が必要
# PHPのバージョンが古いので、ベットダウンロードしてきて、bin ディレクトリ毎入れ替える
# 上記手順なので、PHP を yum でインストールしたりはしなくても大丈夫
wget https://bintray.com/pocketmine/PocketMine/download_file?file_path=PHP_7.0.3_x86-64_Linux.tar.gz
# phar ファイル(プラグインパック?)の新しいのをダウンロードして、ファイルを入れ替えることが必要
wget https://bintray.com/pocketmine/PocketMine/download_file?file_path=PocketMine-MP_1.6dev-24_ac482621_API-2.0.0.phar
# CentOS7の firewalld の使い方をまだ学んでいないため、今回は iptables をセットアップしてしのいだ
# UDP の 19132 ポートをデフォルトで使用するのでそのポートをオープンにすることが必要
yum install iptables.services
vi /etc/sysconfig/iptables
systemctl enable iptables
systemctl status iptables
iptables設定ファイル(/etc/sysconfig/iptables)の例
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp --tcp-flags ALL NONE -j DROP
-A INPUT -p tcp ! --syn -m state --state NEW -j DROP
-A INPUT -p tcp --tcp-flags ALL ALL -j DROP
-A INPUT -p icmp --icmp-type echo-request -m hashlimit --hashlimit-name t_icmp --hashlimit 1/m --hashlimit-burst 10 --hashlimit-mode srcip --hashlimit-htable-expire 120000 -j ACCEPT
-A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p udp --sport 53 -j ACCEPT
-A INPUT -p udp --dport 19132 -j ACCEPT
-A INPUT -p tcp -m state --syn --state NEW --dport 22 -m hashlimit --hashlimit-name t_sshd --hashlimit 1/m --hashlimit-burst 10 --hashlimit-mode srcip --hashlimit-htable-expire 120000 -j ACCEPT
COMMIT
参考にさせていただいた主なページ。感謝
- Pocketmine(マインクラフトPEのサーバソフト)
- 【さくらのクラウド】Minecraftサーバをコマンド操作なしで簡単構築 … PC版
- yumでCentOS6.7にPHP7をインストールする方法とハマった点 | Lancork
- (http://norimakich.doorblog.jp/archives/43970064.html)
- (http://knowledge.sakura.ad.jp/beginner/4048/)
- (http://pocketmine-mp.readthedocs.io/en/latest/update.html)
- (http://mosuke5.hateblo.jp/entry/2014/09/20/180326)
- (http://qiita.com/sawa-zen/items/fe51bd76331b487e2978)