Minecraft: ForgeでMODサーバーたてたら「認証サーバーがダウンしています」エラーで入れない問題(一応解決)
環境: Ubuntu Server 23.10
タイトルの通り。いろいろ調べた結果、IPv6を有効にしている環境だと、Forgeがプレイヤーの認証サーバーへのアクセスに失敗するらしい?
対処法:IPv6を無効化する
調べるとUbuntu ServerでIPv6を無効化する方法としては恒久的なものと一時的なものがあるらしいのですが、ひとまず一時的な対策をしてIPv6が原因だと確信できたら恒久的に無効化するのがよさそう。
一時的な無効化
ターミナルで以下のコマンドを実行する
$ sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
$ sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
$ sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=1
逆に戻したいときはサーバーを再起動するか、以下のコマンドを実行することで再び有効化できる
$ sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
$ sudo sysctl -w net.ipv6.conf.default.disable_ipv6=0
$ sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0
恒久的な無効化
今回やったのはこっち。サーバーを再起動してもIPv6が無効化されたままにする設定
ブートローダーのGRUBに設定しておくやり方です
GRUBの設定用ファイル /etc/default/grub を編集します(バックアップをとっておく!!)
ファイルを開くと以下のようなコードが書いてあると思うので
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX=""
これらの項目に ipv6.disable=1 と値を追加しておきます
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"
GRUB_CMDLINE_LINUX="ipv6.disable=1"
最初から別の値が入っている場合は間に半角スペースを1個入れておきましょう
設定用ファイルの編集が完了したら、保存して、update-grubコマンドを使って設定を反映させます
コマンドが完了したらサーバーを再起動します
sudo update-grub
sudo systemctl reboot
まとめ
バニラサーバーのときはこんなことなかったのに…
おそらくForge特有の問題なのでしょう
サーバー内にIPv6を使用する別のサービスがある場合、そっちではIPv6を使ってこっちでは無効化みたいなことをしないといけないんですけど多分OS標準の機能では無理そうなので
サーバーのIPv6は有効、Forgeサーバーはdockerで動かしてコンテナの設定でIPv6を無効化、みたいにしないといけない…かも?