【问题标题】:TCP Reverse Proxy Minecaft not sending original IPTCP 反向代理 Minecaft 未发送原始 IP
【发布时间】:2018-11-25 20:51:46
【问题描述】:

我创建了一个反向代理,但我遇到了问题,它将服务器的 IP 发送到目标 Minecraft 服务器,而不是连接到反向代理的 Minecraft 玩家的 IP。

我查看了 ProxyPipe 和 InAbates (https://github.com/ducc/InAbate/blob/master/src/main/java/com/inabate/bungee/PlayerListener.java) 的 Bukkit 插件,试图弄清楚它们如何设置播放器的原始 IP,但我没有运气。

我还查看了 Minecraft Protocol Handshakes wiki,但没有说明如何设置连接 IP。

如果有人能指出我应该如何将玩家的真实 IP 发送到 Bukkit 服务器/Bungee 服务器的正确方向,这样我就可以从 Bukkit/Bungee 插件中读取原始 IP,那就太好了。

我当前的代码:https://gitlab.com/shaunagostinho/MinecraftReverseProxy

【问题讨论】:

    标签: java sockets stream minecraft


    【解决方案1】:

    BungeeCord 将玩家 IP 地址显式破解/编码到正在发送的数据包中,它不仅仅是一个简单的反向代理。

    此功能称为 IP 转发。

    问题是,原版 Minecraft 服务器无法识别它。

    所以无论你使用哪个 Minecraft 服务器后端都需要了解编码,并将它与播放器关联的 ip 地址替换为 bungee 提供的 ip 地址。

    蹦极:

    https://github.com/SpigotMC/BungeeCord/blob/dce4ea193ad461832094f4368829e927db578265/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java#L266

    https://github.com/SpigotMC/BungeeCord/blob/e93323ddbc8f22f1efa0647e2fc03adc66c7c488/proxy/src/main/java/net/md_5/bungee/ServerConnector.java#L92

    龙头:

    https://hub.spigotmc.org/stash/projects/SPIGOT/repos/spigot/browse/CraftBukkit-Patches/0043-BungeeCord-Support.patch#6,33

    所以你可以看到它转发,IP地址,UUID,以及包含GameProfile属性的json。

    【讨论】:

      猜你喜欢
      • 2016-09-20
      • 2012-04-08
      • 2014-09-18
      • 1970-01-01
      • 2017-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多