在我使用Docker部署Velocity和BungeeCord时遇到了一些问题

BungeeCord和Velocity是什么?

能够连接多个Minecraft服务器的代理服务器

使用Docker启动

形成

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"
settings:
    bungeecord: true
ip_forward: true
servers:
  lobby:
    motd: '&1Just another BungeeCord - Forced Host'
    address: 127.0.0.1:10001
    restricted: false

结果

image.png

在本地主机/本地回环地址127.0.0.1上是不允许的。

当从容器通信到外部时,似乎不能使用localhost或者127.0.0.1。

修改连接地址

连接到集装箱

$ docker exec -i test_server /bin/bash

确认被分配给容器的IP地址。

$ hostname -i
192.168.32.2

回到主机

复制

修改BungeeCord的config.yml文件。

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

最终的结果

image.png

该端口的设置好像不太好

幾個小時後…

看着许多GitHub的Issue和文章时,我注意到一个问题。连接目标是否为容器的端口?

这样做就会动起来。

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

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

来了!!!!

image.png

结论

端口转发

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也是一样的。

反省

我完全是知識不足的
我會加以努力

广告
将在 10 秒后关闭
bannerAds