使用rcon连接游戏服务器#

rcon 是一种允许服务器管理员远程执行游戏命令的协议。

配置rcon#

Minecraft Server自1.9版本起已原生支持rcon协议,您可以在 server.properties 文件中配置开启rcon。

# 必须设置为true
enable-rcon=true

# 自行输入密码
rcon.password=password

# 不建议使用默认的端口号
rcon.port=9876

然后再设置WeAuth的 config,yaml 文件。

# 1 代表使用rcon连接Minecraft服务器  0 代表使用MCSManager连接
server_connect: 1

# 连接rcon所用IP地址或者域名,详细见下方介绍
rcon_host_adr: 127.0.0.1

# 端口号
rcon_port: 9876

# 密码
rcon_password: password

连接rcon的几种情况#

警告

将rcon端口直接开放至公网会给您的MC server带来不可控的风险。因此,我们提供了几种更加安全的连接方式供您参考。

1. WeAuth与MC Sever在同一个服务器#

如果WeAuth与Minecraft Server在同一个服务器,您无需将rcon端口开放至公网。

# 固定使用127.0.0.1
rcon_host_adr: 127.0.0.1

备注

如果您的MC服务器和WeAuth服务器是同一个云服务提供商的不同服务器实例,可以通过云服务商后台搭建内网实现类似功能。

2. WeAuth与MC Sever不在同一个服务器#

我们推荐使用 frp工具 搭建隧道,WeAuth通过隧道连接MC Server rcon。

这样既避免了rcon端口直接暴露至公网的风险,也可用于无固定公网IP情况下的连接。

下载frp#

fatedier/frp

解压后会需要四个文件。

文件名

用途

frps

frp的服务端程序

frpc

frp的客户端程序

frps.toml

frp服务端配置文件

frpc.toml

frp客户端配置文件

请将服务端及配置文件上传到运行WeAuth的服务器,客户端及配置文件上传到运行MC Server的服务器。

配置frp服务端#

打开并编辑 frps.toml

bindPort = 1234
token = "token123321"

bindPort 是frp服务端与客户端进行联系的端口,请在防火墙设置放行。

token 请自行设置并与客户端配置文件保持一致。

运行frp服务端#

./frps -c ./frps.toml

配置frp客户端#

打开并编辑 frpc.toml

serverAddr = "8.8.8.8"
serverPort = 1234
token = "token123321"


[[proxies]]

name = "rcon"
type = "tcp"
localIP = "127.0.0.1"
localPort = 9876
remotePort = 5432

其中 serverAddr 是frp服务端,即WeAuth运行服务器的公网地址。

serverPortbindPort 一致。

token 与服务端一致。

localIP 使用 127.0.0.1

localPortserver.properties 中的 rcon.port 保持一致。

remotePort 即在WeAuth服务器上访问rcon服务的端口,不冲突即可,且请勿设置防火墙放行(因为我们的目的就是不让rcon端口暴露到公网)。

配置config.yaml#

# 固定使用127.0.0.1,会自动通过frp连接到MC Server
rcon_host_adr: 127.0.0.1

# 端口号,使用前文提到的remotePort
rcon_port: 5432

测试连接#

您可以运行WeAuth的游戏端测试模式。(1.6.1起支持)

在测试之前,请开启MC Server。

weauth -gtest

如果配置正确,则会提示连接成功。MC Server的控制台也会提示有rcon连接。