本帖最后由 贺兰兰 于 2020-11-23 12:09 编辑

本贴已过时,请转帖https://www.mcbbs.net/thread-1138148-1-1.html


零.前言

    其实这个教程我很早就想弄了,因为mcbbs现存的bungeecord教程(来自@SkyCatcherhttp://www.mcbbs.net/thread-450015-1-1.html)实在是太旧了!新版本bungeecord对配置,SQL数据库需求以及版本要求都做了很大改动,因此特开此贴!(当然如果我有什么说的不对的地方也请各位大佬们指出)Tips:由于本人才疏学浅,故该教程暂时只提供Windows操作系统版本(演示系统:WindowsServer2012R2)
一.什么是BungeeCord?
    部分内容转自天空学院:BungeeCord跨服群组是很流行的一种分布式部署Minecraft服务端从而提高服务器硬件资源利用率的技术。(说白了呢就是可以把多个服务器连起来让玩家以为他只是在一个服务器中跳转)
二.如何下载BungeeCord
    虽说这玩意是spigotmc团队制作的,但是你不需要BuildTools进行构建,只需要在官方的自动构建界面(Jenkins)下载就可以了
Jenkins地址:https://ci.md-5.net/job/BungeeCord/
    我们打开这个网站了以后可以看到这样的界面
      
    那么,这些东西到底是什么意思呢?
   
    根据上图所说,我们下载红色框和蓝色框内的文件,并且将红色框文件放入一个新建文件夹内(当然这是为了整洁,如果你想放到桌面啊,C盘根目录什么的也随便你),将蓝色框文件放入根目录(指你放红色框文件的那个目录)中的“modules”文件夹,完成后见下图:
     
   
至此,你已经完成了BungeeCord的下载
三.构建BungeeCord
Tips:其实构建这个词不太明确,我想表示的意思为“运行,启动”
注意:在本章开始前,我希望您做以下几件事:
1.请注意你是否显示了文件后缀名(由于操作系统的不同,这里请各位自行百度)
2.为了更好的修改配置文件等,推荐您安装Notepad++(本文也将使用该软件进行演示)
    我们在根目录下创建一个txt文件,改名为XXX.bat(随便命名,个人喜欢写start):
   
    使用Notepad++打开(右键该文件,点击Edit with Notepad++,当然,绿色版除外)
    在里面输入以下代码并保存(点击窗口上方的保存键)
  1. [url=home.php?mod=space&uid=39305]@echo[/url] off
  2. Java -Xmx1G -jar BungeeCord.jar
  3. pause
复制代码
Tips:这里的Java指的是调用Java指令(绿色版Java请将这里改为"你的Java安装文件夹\bin\java.exe")         -Xms1G指的是设置最大内存为1G(当然你也可以写成1024M,甚至更大,不过那仅限64位Java)
   
    这样之后,你就可以双击你修改好的文件运行你的BungeeCord咯
三.配置BungeeCord
    我们运行start.bat    大概变成这个样子了BungeeCord就架设好了
   
    但是不要着急,我们先把BungeeCord关了来修改配置文件
   
    注意:BungeeCord端的关服指令不是stop而是end
    然后我们来看看新生成的文件
   
    综上所述,你其实只需要修改config.yml就好了
    我们打开config.yml,你会看到一堆你不认识的东西
   
Tips:有的新腐竹修改完配置文件了以后发现控制台发送【严重】信息,无法继续,这里请大家将config.yml的编码一律改为UTF-8编码即可解决(或者是你的配置文件格式错误,如每一项与数值之间都有一个空格)
  1. 很好,mcbbs成功把我码了半个小时的配置文件弄没了。。。。
复制代码
注释:
1.为了安全起见,请将这里改为
  1. groups: {}
复制代码
2.设置BungeeCord后端的子服务器端口和信息。
“lobby”是服务器名,将在BC命令和BC插件中使用;
“address”是子服务器的地址,如果设置为127.0.0.1:25500,就是连入在同一台电脑上面开启的端口为25500的子服务器;
“restricted”如果设置为true,那么没有“bungeecord.server.服务器名”权限的玩家将无法连入这个子服务器;
“motd”仍然是客户端列表看到的服务器介绍
  1. servers:
复制代码
当然,如果你使用第三方motd插件,那么这里的motd设置将会无效
3.TAB项有以下三种可以选择
GLOBAL_PING: 显示玩家连接到BC代理端的延迟.
GLOBAL: 同上,但是不会更新ping的数值.
SERVER: 显示玩家连接到当前所在的服务器的延迟.
4.这个选项是用来穿透BC直接获取后端服务器ping信息,例如motd和人数等。开启后将无视BC端设置的motd等信息(你可以在你的默认服务器设置好motd,然后bungeecord会读取那个motd而不是配置文件里的那个连双行都不支持的简易motd)(或者你可以直接安装Colormotd到BungeeCord进行配置,同时关闭这一项)
5.如果设置为true,玩家每次登陆到BC群组时,都会进入你设置的默认服务器(一般是登陆服);如果设置为false,那么玩家加入BC群组时会进入上次退出的服务器,为了安全请设置true
6.是否启用真实IP和UUID转发功能。本功能需要后端的子服务器为spigot服务端或者cauldron(MCPC+)服务端,并且在其“spigot.yml”中设置“bungeecord: true”。两边都开启后,后端服务器可以获得玩家的真实IP和UUID,两边任何一边没开启,将导致后端服务器获取的IP全部是127.0.0.1,UUID是离线模式下的UUID(不利于banip)
四.配置子服务器(转自天空学院)
  • 请将你子服务端目录下的“bukkit.yml”中的“connection-throttle”一项的数值修改为“-1”
  • 请将你子服务端目录下的“server.properties”中的“server-ip”一项的值修改为“127.0.0.1”(原因请参见另一篇关于漏洞解析的帖子)
  • 为了提高安全性,请确保你的服务器防火墙阻断了玩家直接连入后端服务器的请求(最好只给你的BC端开放唯一一个外网端口)
  • 添加服务器列表页图标的方式和普通服务器一样,放一个64*64像素的png文件到BC端文件夹即可,图片名称是“server-icon.png”
  • 如果你想获取到正版玩家的UUID,请在BungeeCord的“config.yml”中设置“ip_forward: true”,并使用spigot/cauldron作为子服务端,然后在“spigot.yml”中设置“bungeecord: true”