Minecraft 我的世界 Velocity + paper + Multilogin插件 实现正版和第三方同时登陆

最近想做正版服务器,刚开始想使用bungeecord和spigot搭建服务,想了想还是用新一点的核心吧,网上关于paper+velocity的教程很少 自己做一个吧 另外加了一个 Multilogin的插件,他是支持velocity的 刚刚好能用,不多说了,进入教程

本文章所有的资源在文章末尾可以领取

一、安装配置velocity代理

去paper官网下载velocity,不过velocity的最新版本和multilogin有点不兼容,我试了好久最后用3.3的#339版本是成功的,原因应该是multilogin那里没有支持到最新的velocity

velocity下载连接:https://papermc.io/downloads/all

下载好jar包然后创建start.bat

内容:

@echo off
@title velocity_25565
java -Xms1G -Xmx1G -XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:+UnlockExperimentalVMOptions -XX:+ParallelRefProcEnabled -XX:+AlwaysPreTouch -jar velocity-3.3.0-SNAPSHOT-339.jar

运行后会有velocity.poml,这是veloccity的配置文件,注释我翻译了一下:

# 配置版本。不要更改此项
config-version = "2.6"

# 代理应该绑定到哪个端口?默认情况下,我们会绑定到所有地址的端口 25577。
bind = "0.0.0.0:25565"

# MOTD(服务器信息)应该是什么?当玩家将你的服务器添加到他们的服务器列表时会显示这个信息。只接受 MiniMessage 格式。
motd = "<#09add3>小<#FFFF00>鱼<#FF00FF>服<#F0F8FF>务<#00FF00>器 <#F8F8FF>| <#FFC0CB>欢迎光临 <#F8F8FF>| <#FFEFD5>本服务器正在建设阶段 <#F8F8FF>| <#00FFFF>欢迎赞助"

# 我们应该显示多少玩家作为最大玩家数量?(Velocity 不支持在线玩家数量上限。)
show-max-players = 100000

# 我们是否应该使用 Mojang 认证玩家?默认情况下,这是开启的。
online-mode = true

# 代理是否应该强制执行新的公钥安全标准?默认情况下,这是开启的。
force-key-authentication = true

# 如果客户端的 ISP/AS 与 Mojang 的认证服务器不同,玩家会被踢出。这会禁止某些 VPN 和代理连接,但这是一种较弱的保护形式。
prevent-client-proxy-connections = false

# 我们是否应该将 IP 地址和其他数据转发到后端服务器?
# 可用选项:
# - "none":不进行任何转发。所有玩家看起来都像是从代理连接的,并且会有离线模式的 UUID。
# - "legacy":以 BungeeCord 兼容的格式转发玩家 IP 和 UUID。如果你运行的是 Minecraft 1.12 或更低版本的服务器,请使用此选项。
# - "bungeeguard":以 BungeeGuard 插件支持的格式转发玩家 IP 和 UUID。如果你运行的是 Minecraft 1.12 或更低版本的服务器,并且无法实现网络级别的防火墙(在共享主机上),请使用此选项。
# - "modern":在登录过程中使用 Velocity 的原生转发方式转发玩家 IP 和 UUID。仅适用于 Minecraft 1.13 或更高版本。
player-info-forwarding-mode = "modern"

# 如果你使用的是 modern 或 BungeeGuard IP 转发,请在此配置一个包含唯一密钥的文件。
# 该文件应为 UTF-8 编码且不为空。
forwarding-secret-file = "forwarding.secret"

# 是否宣布你的服务器支持 Forge。如果你运行的是模组服务器,建议开启此选项。
# 
# 如果你的网络一直运行一个模组包,考虑使用 ping-passthrough = "mods" 来在服务器列表中显示更好看的信息。
announce-forge = false

# 如果开启(默认是关闭),并且代理处于在线模式,Velocity 将会在重复连接尝试时踢出任何已在线的玩家。
kick-existing-players = false

# Velocity 是否应该将服务器列表的 ping 请求传递给后端服务器?
# 可用选项:
# - "disabled":不进行传递。velocity.toml 和 server-icon.png 将决定初始服务器列表 ping 响应。
# - "mods":仅从后端服务器传递模组列表到响应中。尝试列表中的第一个服务器(或强制主机)将使用模组列表。如果无法联系到任何后端服务器,Velocity 将不会显示任何模组信息。
# - "description":使用后端服务器的描述和模组列表。响应使用尝试列表(或强制主机)中第一个响应的服务器的描述和模组列表。
# - "all":使用后端服务器的响应作为代理响应。如果无法联系到任何服务器,将使用 Velocity 配置。
ping-passthrough = "DISABLED"

# 如果未启用(默认是启用),玩家 IP 地址将在日志中被替换为 <ip address withheld>。
enable-player-address-logging = true

[servers]
# 在此配置你的服务器。每个键代表服务器的名称,值代表要连接的服务器的 IP 地址。
login = "127.0.0.1:25566"
factions = "127.0.0.1:30067"
minigames = "127.0.0.1:30068"

# 在玩家登录或从服务器被踢出时,我们应该按什么顺序尝试服务器。
try = [
    "login"
]

[forced-hosts]
# 在此配置你的强制主机。
"lobby.example.com" = [
    "login"
]
"factions.example.com" = [
    "factions"
]
"minigames.example.com" = [
    "minigames"
]

[advanced]
# 一个 Minecraft 数据包在多大时需要压缩。设置为零将压缩所有数据包,设置为 -1 将完全禁用压缩。
compression-threshold = 256

# 压缩应该进行多少(从 0 到 9)。默认是 -1,使用默认级别 6。
compression-level = -1

# 客户端在上次连接后允许多快再次连接(以毫秒为单位)?默认是三秒。设置为 0 可禁用此功能。
login-ratelimit = 3000

# 在此指定连接超时的自定义超时时间。默认是五秒。
connection-timeout = 5000

# 在此指定连接的读取超时。默认是 30 秒。
read-timeout = 30000

# 启用与 HAProxy 的 PROXY 协议的兼容性。如果你不知道这是做什么的,请不要启用它。
haproxy-protocol = false

# 启用代理上的 TCP 快速打开支持。需要代理在 Linux 上运行。
tcp-fast-open = false

# 启用 Velocity 上 BungeeCord 插件消息通道支持。
bungee-plugin-message-channel = true

# 显示来自客户端的 ping 请求。
show-ping-requests = false

# 默认情况下,Velocity 将尝试优雅地处理用户意外断开连接的情况,通过尝试将用户回退,除了读取超时的情况。BungeeCord 将断开用户连接。你可以禁用此设置以使用 BungeeCord 的行为。
failover-on-unexpected-server-disconnect = true

# 向 1.13 及以上版本的客户端声明代理命令。
announce-proxy-commands = true

# 启用命令的日志记录
log-command-executions = false

# 启用玩家连接到代理时的连接、切换服务器和断开连接的日志记录。
log-player-connections = true

[query]
# 是否启用响应 GameSpy 4 查询响应。
enabled = false

# 如果启用查询,查询协议应该监听哪个端口?
port = 25577

# 这是向查询服务报告的地图名称。
map = "Velocity"

# 默认情况下是否显示查询响应中的插件
show-plugins = false

我这里改了一点内容:

1、修改了velocity的默认端口

bind = "0.0.0.0:25565"

2、代理服务器和子服务器的转发协议:

player-info-forwarding-mode = "modern"

3、子服务器的名称和地址

[servers]
# 在此配置你的服务器。每个键代表服务器的名称,值代表要连接的服务器的 IP 地址。
login = "127.0.0.1:25566"(这个是我登陆大厅的地址)
factions = "127.0.0.1:30067"(这个是velocity里面自带的例子,我没删掉,建议删除)
minigames = "127.0.0.1:30068"(这个也是velocity里面自带的例子,我没删掉,建议删除)

4、进服先连接哪个子服务器,可以多输入几个,代理服务器会依次按顺序尝试

try = [
    "login"
]

到此处,velocity的服务就算是配置好了,现在我们来安装multilogin插件

二、下载安装multilogin插件

此处使用v0.6.8-efd7c5f版本 这个和 velocity3.3#339 不冲突

项目github链接:

然后下这个velocity版本,下完后放进velocity的plugin文件夹里面,重启velocity

出现这个页面就是成功了

使用end命令关闭,然后去plugin\multilogin\server文件夹里添加你想要的外置登录服务器,我这里添加一个官方的和littleskin的,具体可以查看mutilogin的github项目wiki

Wiki链接:https://github.com/CaaMoe/MultiLogin/wiki

配置好后重新启动即可,multilogin支持mysql,可以去plugin\multilogin\config.yml文件里配置

我用的是雨云服务器,开的mysql,这里配置即可

这里推荐一下雨云服务器,性价比很高,我拿来开mysql刚刚好,我买的是2核2G的,如果开mysql的话,1核1G就够了

雨云服务器连接:点这里

开完mysql后就看到multilogin的数据库了,,这里面用户的uuid是加密的。注意记得craete一个叫multilogin的数据库,不然multilogin不知道你的数据要放哪里

 三、下载paper服务核心

去paper官网下载服务核心,我这里是1.20.4#497版本

paper:Build explorer | PaperMC

下载好后创建start.bat文件 跟spigot一样的操作,如果,开核心服务不懂的可以看我以前的文章:

http://t.csdnimg.cn/LpThB

同意完eula后开服,然后去config\paper-global.yml文件里将velocity服务打开,然后把secret值设置成你velocity里面forwarding.secret文件的值,记事本打开可以查看

到此,paper端的配置就好了,然后paper端的端口要和velocity配置文件夹里的端口对应即可,到此,我们的paper+velocity+multilogin插件的第三方和正版服务器就搭建好了,如果需要多服务就多搞几个paper服务器即可,我们运行两个start.bat测试一下,再进入启动器添加服务器地址

检测成功

进入成功,弹出multilogin的检测

雨云服务器的mysql也会出现对应的用户数据,到此就搭建完毕了

雨云UID:115483

  • 28
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值