id:takkumattsu です。今年もコベリンともどもよろしくお願いします!
今日は前回書いたラズパイの古いカーネルモジュールを消してしまいwifiが繋がらなくなったお話 - covelline blogで少し触れたラズパイにマイクラサーバーを入れた時のことを書いていきたいと思います!
購入したもの
自分が購入したものはこんな感じでした
- Raspberry Pi 4 Model B / 4GB
- 本体
- SDカード(8GB)
- 最初は亀のWebカメラ監視用にかったので容量なくていいやと小さいのを買った。64GBくらい買っておけばよかった感
- ヒートシンク
- ファン付きの方が冷却効率がいいけど音がうるさいというレビューがあったのでファンなしのものを購入。オーバークロックとかしたい人はファン付きの方が良さそう
- マイクロHDMI変換器
- ディスプレイにつなぐために購入。Raspberry Pi 4 Model BはマイクロHDMIなので。SSHやwifiを有効にしてOSをインストールできるのでなくても大丈夫だけど、ssh繋がらなくなったとか起動時のエラーとかをみるのに購入。
最初はマイクラのために買ったのではなかったのでそこまで性能を求めていてなかったけど、今買うなら以下がいいかなと思っています。
- Raspberry Pi 4B 8GB
- GeeekPi Raspberry PiファンICEタワーCPU冷却ファン
- オーバークロックするなら
やったこと
- ルーターの機能でポート解放する☆
- SSHを公開鍵設定にして外部からアクセスできるようにする
- screen を入れて attach / detach できるようにしておく
- noip を使ってドメイン名でアクセスできるようにする
- Netdata を利用してリソース状況を確認できるようにする
- discord と連携できるようにした
- whitelistを有効にした
☆以外は必須ではないですけどやっておくと便利
ルーターの機能でポート解放する
これは持っているルーターなどによってやり方が違うのでやり方は各々違うと思いますがやっていることは以下です
- ラズパイのIPを固定する
- 固定したIPのポートを転送するようにする
ラズパイのIPを固定する
自分が使っているルーターだとDHCPの固定割り当て機能があるのでそれを使って固定IPを割り振ります
固定したIPのポートを転送するようにする
こちらも自分が使っているルーターだとポート転送機能があるのでWAN側の特定ポートに来た通信をLAN内のIPに転送するようにします。
SSHを公開鍵設定にして外部からアクセスできるようにする
これはマイクラをやるために必要なものじゃないけど外部からアクセスできるようにしておくと便利なのでしっかり公開鍵設定にしておきましょう。
やり方はググれば無限に出てくるのでここでは説明しないですが、自分は上記のポート転送を利用して外部からSSHアクセスできるようにしているので公開鍵設定は必須になっています。
screen を入れて attach / detach できるようにしておく
これはSSHでアクセスしている時にプロセスを実行したままターミナルなどを閉じれるようにするために入れています。
今は tmux の方が主流かもしれないですけど、attach / detach だけ出来ればいいので自分は screen を利用しました。
apt install screen
その後アクセス時に screen に attach するように .bashrc
に以下を記載します
# .bashrc # screen attach or 起動 screen -xR
そうすると以下のようにマイクラを起動したプロセスを残したまま SSH のアクセスができるようになります。
noipを使ってドメイン名でアクセスできるようにする
グローバルIPアドレスをそのまま使ってもいいんですが、IPが変わった時にいちいちめんどうなのでダイナミックDNSを利用してドメイン名でアクセスできるようにします。
自分が使ったのはnoipというサービスで30日毎にメールで更新をしないといけないですが無料で使えるので利用しています。
また自動更新用のクライアントもありラズパイにインストールして起動している間はグローバルIPアドレスを更新し続けてくれるので便利です。
Netdataを利用してリソース状況を確認できるようにする
これはCPUやメモリ状況をグラフィカルに表示してくれるツールです。Docker でサクッと動かせるのでとても便利です。
自分はラズパイ用にカスタムしてくれている人のを利用させてもらっています。
(CPU温度が最初から表示されるようになっていて便利)
こちらもポート転送で外部からみれるようにしています。
discordと連携できるようにした
起動状況がわかるように何かチャットツールと連携したいなと思いバニラの状態で使えるものを探していたところずばりなものがあったので使わせてもらいました
使い方も作者さんが丁寧書いてくれているのですぐ使えました。
(discordの連携方法はバージョンが変わっていたのでちょっとだけ画面が違いましたが)
これによって
- 起動・停止のログが表示される
- discord ⇄ minecraft のチャットが連携される
ができるようになりました。
whitelistを有効にした
server.properties
の white-list
を 有効化して white-list で許可されたユーザだけがアクセスできるようにしました。
ログを見ていたら結構知らない人がログインしていたので有効にしておいた方がいいかと思います。
最後に
家に転がっているラズパイで会社のみんなで遊べるマイクラサーバーを立ててみました。
5人くらいなら普通に遊べたので結構満足しています!
また会社のみんなで遊びたいなと思います💪