ラズパイでマイクラサーバーを公開するときにしたとこ

f:id:takkumattsu:20211223143420p:plain

id:takkumattsu です。今年もコベリンともどもよろしくお願いします!


今日は前回書いたラズパイの古いカーネルモジュールを消してしまいwifiが繋がらなくなったお話 - covelline blogで少し触れたラズパイにマイクラサーバーを入れた時のことを書いていきたいと思います!

blog.covelline.com

購入したもの

自分が購入したものはこんな感じでした

  • Raspberry Pi 4 Model B / 4GB
    • 本体
  • SDカード(8GB)
    • 最初は亀のWebカメラ監視用にかったので容量なくていいやと小さいのを買った。64GBくらい買っておけばよかった感
  • ヒートシンク
    • ファン付きの方が冷却効率がいいけど音がうるさいというレビューがあったのでファンなしのものを購入。オーバークロックとかしたい人はファン付きの方が良さそう
  • マイクロHDMI変換器
    • ディスプレイにつなぐために購入。Raspberry Pi 4 Model BはマイクロHDMIなので。SSHやwifiを有効にしてOSをインストールできるのでなくても大丈夫だけど、ssh繋がらなくなったとか起動時のエラーとかをみるのに購入。

最初はマイクラのために買ったのではなかったのでそこまで性能を求めていてなかったけど、今買うなら以下がいいかなと思っています。

やったこと

  • ルーターの機能でポート解放する☆
  • SSHを公開鍵設定にして外部からアクセスできるようにする
  • screen を入れて attach / detach できるようにしておく
  • noip を使ってドメイン名でアクセスできるようにする
  • Netdata を利用してリソース状況を確認できるようにする
  • discord と連携できるようにした
  • whitelistを有効にした

☆以外は必須ではないですけどやっておくと便利

ルーターの機能でポート解放する

これは持っているルーターなどによってやり方が違うのでやり方は各々違うと思いますがやっていることは以下です

  • ラズパイのIPを固定する
  • 固定したIPのポートを転送するようにする

ラズパイのIPを固定する

自分が使っているルーターだとDHCPの固定割り当て機能があるのでそれを使って固定IPを割り振ります

f:id:takkumattsu:20220111121137p:plain

固定したIPのポートを転送するようにする

こちらも自分が使っているルーターだとポート転送機能があるのでWAN側の特定ポートに来た通信をLAN内のIPに転送するようにします。

f:id:takkumattsu:20220111121351p:plain

SSHを公開鍵設定にして外部からアクセスできるようにする

これはマイクラをやるために必要なものじゃないけど外部からアクセスできるようにしておくと便利なのでしっかり公開鍵設定にしておきましょう。

やり方はググれば無限に出てくるのでここでは説明しないですが、自分は上記のポート転送を利用して外部からSSHアクセスできるようにしているので公開鍵設定は必須になっています。

f:id:takkumattsu:20220111121922p:plain

screen を入れて attach / detach できるようにしておく

これはSSHでアクセスしている時にプロセスを実行したままターミナルなどを閉じれるようにするために入れています。
今は tmux の方が主流かもしれないですけど、attach / detach だけ出来ればいいので自分は screen を利用しました。

apt install screen

その後アクセス時に screen に attach するように .bashrc に以下を記載します

# .bashrc

# screen attach or 起動
screen -xR

そうすると以下のようにマイクラを起動したプロセスを残したまま SSH のアクセスができるようになります。

f:id:takkumattsu:20220111124330g:plain

noipを使ってドメイン名でアクセスできるようにする

グローバルIPアドレスをそのまま使ってもいいんですが、IPが変わった時にいちいちめんどうなのでダイナミックDNSを利用してドメイン名でアクセスできるようにします。
自分が使ったのはnoipというサービスで30日毎にメールで更新をしないといけないですが無料で使えるので利用しています。
また自動更新用のクライアントもありラズパイにインストールして起動している間はグローバルIPアドレスを更新し続けてくれるので便利です。

www.noip.com

Netdataを利用してリソース状況を確認できるようにする

これはCPUやメモリ状況をグラフィカルに表示してくれるツールです。Docker でサクッと動かせるのでとても便利です。

f:id:takkumattsu:20220111125218p:plain

自分はラズパイ用にカスタムしてくれている人のを利用させてもらっています。
(CPU温度が最初から表示されるようになっていて便利)

github.com

こちらもポート転送で外部からみれるようにしています。

discordと連携できるようにした

起動状況がわかるように何かチャットツールと連携したいなと思いバニラの状態で使えるものを探していたところずばりなものがあったので使わせてもらいました

github.com

使い方も作者さんが丁寧書いてくれているのですぐ使えました。
(discordの連携方法はバージョンが変わっていたのでちょっとだけ画面が違いましたが)

s8a.jp

これによって

  • 起動・停止のログが表示される
  • discord ⇄ minecraft のチャットが連携される

ができるようになりました。

whitelistを有効にした

server.propertieswhite-list を 有効化して white-list で許可されたユーザだけがアクセスできるようにしました。
ログを見ていたら結構知らない人がログインしていたので有効にしておいた方がいいかと思います。

f:id:takkumattsu:20220111130933p:plain:w200

最後に

家に転がっているラズパイで会社のみんなで遊べるマイクラサーバーを立ててみました。
5人くらいなら普通に遊べたので結構満足しています!

また会社のみんなで遊びたいなと思います💪