旧サーバーを消して、Minecraftサーバーを一から建て直した。構成はこう。
- Velocity(プロキシ):入口。ここにGeyserとFloodgateを入れて、統合版からも入れるようにした
- ロビー(Paper):最初に着く場所
- サバイバル(Paper):経済ありのサバイバル
全部Docker(itzgのイメージ)で、1つのcompose.ymlにまとめている。
「Unable to verify player details」
Velocity経由で入ろうとしたら、このエラーで弾かれた。原因は、Paper側でVelocityからの転送を受け付ける設定がされていなかったこと。
各Paperの config/paper-global.yml で、Velocityの転送を有効にして、Velocity側と同じ秘密の文字列(forwarding secret)を入れたら入れるようになった。
proxies:
velocity:
enabled: true
online-mode: true
secret: (Velocityと同じ文字列)
外から入れない? → 実は入れていた
家の中から mc.ch1w4.com に接続すると失敗するので、ポート開放が失敗していると思った。ところが外部のポートチェックでは開いていた。
原因は、IX2215がいわゆる「ヘアピンNAT」に対応していないこと。家の中から自分の家のグローバルIPに向けて接続すると折り返せない。外からは普通に入れる。家の中からはローカルのIPで入ればいい。
IPが変わっても大丈夫にする
家の回線はIPアドレスが変わることがあるので、cloudflare-ddnsのコンテナを一緒に動かして、IPが変わったらCloudflareのDNSを自動で書き換えるようにした。