Velocity-rcon

Velocity-rcon

Adds an RCON (Remote Console) server to a [Velocity],using the standard [RCON protocol]Connect with any standard RCON client and run proxy commands remotely.

6 downloads

English

Velocity RCON

Adds an RCON (Remote Console) server to a Velocity proxy, using the standard RCON protocol. Connect with any standard RCON client (mcrcon, py3rcon, …) and run proxy commands remotely — commands execute with console-level permissions.

Works on Velocity 3.3.x, 3.4.0, 3.5.1, and 4.0.0.

Features

  • Standard RCON protocol (little-endian packets, mcrcon-compatible), including the vanilla-compatible login handshake
  • Commands run through Velocity's CommandManager with console-level permissions
  • Source IP whitelist (exact IP + IPv4 CIDR)
  • Connection limit and idle timeout
  • /vrcon management command: reload config, status, start / stop
  • Auto-generates a default config file
  • Single source codebase builds for 3.3.x / 3.x / 4.0.0 via Maven profiles

Version support

The same source code produces three jars. All of them are functionally identical — the RCON protocol handling, commands, and configuration are exactly the same. They differ only in which Velocity proxy they run on and the required Java version:

Jar Velocity proxy Java Build command
velocity-rcon.jar 4.0.0 25+ mvn clean package
velocity-rcon-3.x.jar 3.4.0 / 3.5.1 17+ mvn clean package -P velocity3
velocity-rcon-3.3.x.jar 3.3.x (3.3.0-SNAPSHOT) 17+ mvn clean package -P velocity33

Key points:

  • Support: pick the jar that matches your proxy's Velocity version. Do not run the 4.0.0 jar on a 3.x proxy, or a 3.x jar on a 4.0.0 proxy — each jar is compiled against (and works with) one API generation.
  • The only real difference is the Java requirement. The 4.0.0 jar needs Java 25+ (Velocity 4.0.0 itself is built for Java 25); the 3.x jars run on Java 17+.
  • 3.3.x was never formally released by the Velocity team — it exists only as 3.3.0-SNAPSHOT. Its API is identical to 3.4.0/3.5.1, so the 3.3.x build works on that snapshot. The velocity33 profile depends on the snapshot artifact, which may be cleaned from the repository someday.
  • Features, config, /vrcon command, and RCON protocol behavior are identical across all three jars.

Requirements

Component Version
Velocity 3.3.x (SNAPSHOT), 3.4.0, 3.5.1, or 4.0.0
Java 17+; 4.0.0 needs Java 25+ (build JDK ≥ 25, e.g. JDK 26)

Installation

  1. Place velocity-rcon.jar (or velocity-rcon-3.x.jar for 3.x) into the proxy's plugins/ folder.
  2. Restart the proxy. The default config is created at plugins/velocity-rcon/config.yml.
  3. Edit the config and restart, or run /vrcon reload to hot-reload.

Configuration (plugins/velocity-rcon/config.yml)

enabled: true          # Whether the RCON server is enabled
host: "0.0.0.0"        # Bind address
port: 25575            # Listen port
password: "change_me"  # RCON password (required)
allowed-ips: []        # Source IP whitelist; empty = allow all
max-clients: 3         # Max concurrent connections
response-delay-ms: 100 # Extra wait (ms) to collect async command output

Usage

Manage via console (or with the velocityrcon.admin permission):

/vrcon reload   # Reload config and restart the RCON server
/vrcon status   # Show running state, port, connection count
/vrcon start    # Start the RCON server
/vrcon stop     # Stop the RCON server

Connect with mcrcon:

mcrcon --host 127.0.0.1 --port 25575 --password change_me "list"
mcrcon --host 127.0.0.1 --port 25575 --password change_me   # interactive console

Security

  • Never expose the RCON port to the public internet — the password is transmitted in plaintext and commands run with console-level permissions.
  • Bind to 127.0.0.1 and manage remotely via an SSH tunnel. If you must expose it, set allowed-ips and use a firewall.
  • Change the default password.

Building from source

# Velocity 4.0.0 (default)
mvn clean package
# Velocity 3.x releases (3.4.0 / 3.5.1)
mvn clean package -P velocity3
# Velocity 3.3.x (3.3.0-SNAPSHOT)
mvn clean package -P velocity33

Requires a JDK ≥ 25 (e.g. JDK 26) to build. Outputs: target/velocity-rcon.jar, target/velocity-rcon-3.x.jar, or target/velocity-rcon-3.3.x.jar (build one at a time — they overwrite target/).

Authors

LiquidTeam, YuHongChenGitHub repository


中文

Velocity RCON

Velocity 代理端提供标准 RCON(远程控制台) 能力,使用 RCON 协议。配合任意标准 RCON 客户端(mcrconpy3rcon 等)即可远程执行代理端命令,命令拥有控制台级权限

支持 Velocity 3.3.x、3.4.0、3.5.1、4.0.0

功能特性

  • 标准 RCON 协议(小端序数据包、兼容 mcrcon),含原版 Minecraft 兼容的登录握手
  • 命令通过 Velocity 的 CommandManager 执行,权限等同代理端控制台
  • 来源 IP 白名单(精确 IP + IPv4 CIDR)
  • 连接数上限、空闲超时
  • /vrcon 管理命令:重载配置、查看状态、启停服务
  • 自动生成默认配置文件
  • 一份源码通过 Maven profile 同时支持 3.3.x / 3.x / 4.0.0 构建

版本支持

同一份源码可产出三个 jar,功能完全相同——RCON 协议处理、命令与配置完全一致,区别仅在所适配的 Velocity 代理端版本所需的 Java 版本

jar 适配 Velocity Java 构建命令
velocity-rcon.jar 4.0.0 25+ mvn clean package
velocity-rcon-3.x.jar 3.4.0 / 3.5.1 17+ mvn clean package -P velocity3
velocity-rcon-3.3.x.jar 3.3.x(3.3.0-SNAPSHOT 17+ mvn clean package -P velocity33

要点:

  • 支持范围:按代理端的 Velocity 版本选择对应 jar。不要把 4.0.0 的 jar 放到 3.x 代理端,也不要把 3.x 的 jar 放到 4.0.0 代理端——每个 jar 都是针对对应一代 API 编译的。
  • 真正的区别只有 Java 版本要求:4.0.0 jar 需要 Java 25+(Velocity 4.0.0 本身即为 Java 25 构建);3.x jar 运行在 Java 17+
  • 3.3.x 从未由 Velocity 官方正式发布,只有 3.3.0-SNAPSHOT 快照;其 API 与 3.4.0/3.5.1 相同,因此 3.3.x 构建可用于该快照。velocity33 profile 依赖快照构件,日后仓库清理快照后可能失效。
  • 功能、配置、/vrcon 命令与 RCON 协议行为在三个 jar 中完全一致

环境要求

组件 版本
Velocity 3.3.x(SNAPSHOT)、3.4.0、3.5.1 或 4.0.0
Java 17+;4.0.0 需要 Java 25+(构建 JDK ≥ 25,如 JDK 26)

安装

  1. velocity-rcon.jar(3.x 用 velocity-rcon-3.x.jar)放入代理端 plugins/ 目录。
  2. 重启代理端,自动生成默认配置 plugins/velocity-rcon/config.yml
  3. 编辑配置后重启,或在代理端执行 /vrcon reload 热重载。

配置(plugins/velocity-rcon/config.yml)

enabled: true          # 是否启用 RCON
host: "0.0.0.0"        # 监听地址
port: 25575            # 监听端口
password: "change_me"  # RCON 密码(必填)
allowed-ips: []        # 来源 IP 白名单,空=全部放行
max-clients: 3         # 最大同时连接数
response-delay-ms: 100 # 额外等待毫秒数,用于收集异步命令输出

使用方法

控制台(或拥有 velocityrcon.admin 权限者)执行:

/vrcon reload   # 重新读取配置并重启 RCON 服务
/vrcon status   # 查看运行状态、端口、当前连接数
/vrcon start    # 启动 RCON 服务
/vrcon stop     # 停止 RCON 服务

mcrcon 连接示例:

mcrcon --host 127.0.0.1 --port 25575 --password change_me "list"
mcrcon --host 127.0.0.1 --port 25575 --password change_me   # 交互式控制台

安全注意事项

  • 不要把 RCON 端口暴露到公网——密码明文传输,且命令拥有控制台级权限。
  • 建议 host127.0.0.1,通过 SSH 隧道远程管理;如必须对外,请设置 allowed-ips 并配合防火墙。
  • 请务必修改默认密码。

从源码构建

# Velocity 4.0.0(默认)
mvn clean package
# Velocity 3.x 正式版(3.4.0 / 3.5.1)
mvn clean package -P velocity3
# Velocity 3.3.x(3.3.0-SNAPSHOT)
mvn clean package -P velocity33

构建需要 JDK ≥ 25(如 JDK 26)。产物:target/velocity-rcon.jartarget/velocity-rcon-3.x.jartarget/velocity-rcon-3.3.x.jar(一次构建一个,会互相覆盖 target/)。

作者

LiquidTeamYuHongChen —— GitHub 仓库