0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

dockerでVelocity,BungeeCordをたてたらハマった

Last updated at Posted at 2021-08-30

BungeeCord,Velocityとは

複数のMinecraftの鯖を繋ぐことができるプロキシサーバー

dockerで起動した

構成

docker-compose.yml
version: '3'
services:
    bungeecord:
        container_name: test_bungee
        image: itzg/bungeecord
        ports:
            - "10000:25577"
        tty: true
        stdin_open: true
        restart: always
        volumes:
            - ./server:/server
        environment:
            TYPE: "BUNGEECORD"
            MEMORY: "512M"
    paper:
        container_name: test_server
        image: itzg/minecraft-server
        ports:
            - "10001:25565"
        tty: true
        stdin_open: true
        restart: always
        volumes:
            - ./data:/data
        environment:
            EULA: "TRUE"
            TYPE: "PAPER"
            MEMORY: "2G"
            ONLINE_MODE: "FALSE"
spigot.yml
settings:
    bungeecord: true
config.yml
ip_forward: true
servers:
  lobby:
    motd: '&1Just another BungeeCord - Forced Host'
    address: 127.0.0.1:10001
    restricted: false

結果

どうやらdockerで起動する場合、何か変える必要があるようだ
image.png

localhost/127.0.0.1では駄目

コンテナ外へ通信するとき?はlocalhostまたは127.0.0.1では駄目らしい

接続先のアドレスを変更する

コンテナに接続

$ docker exec -i test_server /bin/bash

コンテナに割り振られたipアドレスを確認

$ hostname -i
192.168.32.2

ホストに戻る

Ctrl+C

BungeeCordのconfig.ymlを修正

config.yml
servers:
  lobby:
    motd: '&1Just another BungeeCord - Forced Host'
    address: 192.168.32.2:10001
    restricted: false

結果

どうして...
image.png

ポートの設定が駄目っぽい

数時間後...

GithubのIssueなど色々な記事を見る中であることに気がつきました。
接続先がコンテナのポートだと...?

こうすれば動く

config.yml
servers:
  lobby:
    motd: '&1Just another BungeeCord - Forced Host'
    address: 192.168.32.2:25565
    restricted: false

addressのポートをホストのポート(10001)ではなく、コンテナのポート(25565)にしました。

きた!!!!

image.png

結論

ポートフォワーディング

docker-compose.yml
ports:
    - "10001:25565"

docker-composeでいうこの部分です。ポートフォワーディングは、ホストipの10001に接続が来た時、コンテナipの25565に接続を流すという感じなので、直接コンテナのipアドレス(192.168.32.2)に直接接続する場合は、コンテナのポート(25565)を指定しなければならなかったのです。

おまけ

docker-composeを使っていれば、dockerのnetworkを勝手に設定してくれるので、今回でいうpaper:25565で接続できます。paperはdocker-composeのservicesの名前です。
コンテナを作り直したときにipアドレスが変わるそうですが、その対策にもなります。

ちなみに

今回はBungeeCordを起動しましたが、VelocityやWaterfallなどの他のプロキシ鯖でも同様です。

反省

完全に知識不足でした
精進します

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?