velocity.toml
以下配置仅为汉化参考,请勿直接复制!!
Velocity-CTD 完全兼容标准 Velocity 配置,并在此基础上增加了许多新的配置选项。
# 配置版本。不要更改这个config-version = "2.7"
# 代理应该绑定到哪个端口?默认情况下,我们将绑定到 25565 端口的所有地址。bind = "0.0.0.0:25565"
# 应该显示什么 MOTD (服务器消息)?当玩家将你的服务器添加到他们的服务器列表时,会显示这个。只接受 MiniMessage 格式。motd = "<#09add3>一个 Velocity-CTD 服务器"
# 我们应该显示多少最大玩家数?(Velocity 不支持在线玩家数的限制。)show-max-players = 500
# 我们应该使用 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 = "NONE"
# 如果你使用 modern 或 BungeeGuard IP 转发,请在此处配置包含唯一密钥的文件。# 文件应该是 UTF-8 编码的,并且不为空。forwarding-secret-file = "forwarding.secret"
# 宣布你的服务器是否支持 Forge。如果你运行一个模组服务器,我们建议开启这个。# 如果你的网络持续运行一个模组包,考虑使用 ping-passthrough = "mods" 代替,以便在服务器列表中更好地显示。announce-forge = false
# 如果启用 (默认为 false),并且代理处于在线模式,Velocity 将踢出任何已在线的玩家,如果尝试进行重复连接。kick-existing-players = false
# Velocity 是否应该将服务器列表 ping 请求传递给后端服务器?# 可用选项:# - "disabled": 不会进行任何传递。velocity.toml 和 server-icon.png 将确定初始服务器列表 ping 响应。# - "mods": 仅将后端服务器的 mod 列表传递到响应中。将使用具有 mod 列表的后端服务器的第一个服务器。如果无法联系后端服务器,则 Velocity 不会显示任何 mod 信息。# - "description": 使用后端服务器的描述和 mod 列表。将使用响应的第一个服务器列表中的第一个服务器 (或强制主机) 进行描述和 mod 列表。# - "all": 将后端服务器的响应用作代理响应。如果无法联系服务器,则使用 Velocity 配置。ping-passthrough = "DISABLED"
# 如果启用 (默认为 false),那么当悬停在服务器列表中的玩家数量上时,代理上在线玩家的样本将可见。# 当 ping 传递设置为 "description" 或 "all" 时,这没有任何效果。sample-players-in-ping = false
# 如果未启用 (默认为 true),玩家 IP 地址将被替换为 <ip address withheld> 在日志中enable-player-address-logging = true
[servers]# 在此处配置你的服务器。每个键代表服务器的名称,值代表要连接到的服务器的 IP 地址。lobby = "127.0.0.1:30066"factions = "127.0.0.1:30067"minigames = "127.0.0.1:30068"
# 当玩家登录或从服务器被踢出时,我们应该尝试让他进入哪个服务器?try = [ "lobby"]
[forced-hosts]# 在此处配置你的强制主机。"lobby.example.com" = [ "lobby"]"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
# 允许通过 Transfer 数据包 (Minecraft 1.20.5) 从其他主机传输的玩家被接收。accepts-transfers = false
[query]# 是否启用对 GameSpy 4 查询响应的响应。enabled = false
# 如果查询已启用,查询协议应该在哪个端口上监听?port = 25577
# 这是向查询服务报告的名称。map = "Velocity-CTD"
# 默认情况下是否应该在查询响应中显示插件show-plugins = falseVelocity-CTD 特有配置
Section titled “Velocity-CTD 特有配置”Redis 配置
Section titled “Redis 配置”Velocity-CTD 内置了 Redis 支持,可以替代 RedisBungee 等插件。主要用于多代理服务器之间的数据同步:
[redis]# 是否启用 Redis 支持# 注意:只有在多代理服务器环境下才需要启用enabled = false
# Redis 服务器地址host = "localhost"
# Redis 服务器端口port = 6379
# Redis 密码(如果 Redis 设置了密码)password = ""
# Redis 数据库编号(0-15)database = 0
# 连接超时时间(毫秒)timeout = 2000
# 连接池最大连接数max-connections = 8
# 连接池最小空闲连接数min-idle = 0
# 连接池最大空闲连接数max-idle = 8
# Redis 键前缀,用于避免与其他应用冲突key-prefix = "velocity-ctd:"
# 是否启用 Redis 发布/订阅功能# 用于代理服务器之间的实时通信pubsub-enabled = true
# 发布/订阅频道前缀pubsub-prefix = "velocity-ctd:pubsub:"队列系统配置
Section titled “队列系统配置”Velocity-CTD 内置了高效的队列系统,当服务器满员时自动将玩家加入队列:
[queue]# 是否启用队列系统# 建议在有高负载服务器时启用enabled = true
# 队列更新间隔(毫秒)# 值越小更新越频繁,但会增加性能开销update-interval = 1000
# 是否允许玩家同时在多个队列中# 通常建议设为 false 避免混乱allow-multiple-queues = false
# 队列超时时间(秒)# 玩家离线后保留队列位置的时间timeout = 300
# 队列满时的行为# "kick" - 踢出玩家(不推荐)# "wait" - 让玩家等待(推荐)full-queue-behavior = "wait"
# 最大队列长度(0 为无限制)# 设置合理的上限避免队列过长max-queue-length = 0
# 队列位置更新消息间隔(秒)# 避免过于频繁的消息刷屏position-update-interval = 10
# 是否在玩家加入队列时发送消息send-join-message = true
# 是否在玩家离开队列时发送消息send-leave-message = true
# 是否在队列位置更新时发送消息send-position-updates = true
# 队列优先级系统# 启用后可通过权限设置玩家优先级priority-enabled = true
# 默认队列优先级# 数值越高优先级越高default-priority = 0Velocity-CTD 提供了丰富的内置命令:
[commands]# 启用/禁用各种 Velocity-CTD 命令alert = truealertraw = truefind = truehub = trueping = trueplist = truetransfer = truesudo = trueuptime = true
# 是否启用服务器命令的 Tab 补全server-tab-completion = true
# 是否允许通过命令重载配置reload-enabled = true
# 命令别名配置[commands.aliases]hub = ["lobby", "l", "spawn"]ping = ["latency", "ms"]find = ["locate", "where", "search"]plist = ["list", "players", "who"]
# 命令权限配置[commands.permissions]# 是否启用权限检查enabled = true
# 默认权限前缀prefix = "velocity.command."多转发系统配置
Section titled “多转发系统配置”Velocity-CTD 的独特功能:支持为不同服务器使用不同的转发模式。这在混合版本环境中非常有用:
[multi-forwarding]# 是否启用多转发系统# 注意:这是实验性功能,请谨慎使用enabled = false
# 为特定服务器配置不同的转发模式# 格式:服务器名 = "转发模式"# 可用的转发模式:none, legacy, bungeeguard, modernserver-specific-forwarding = { "legacy-server" = "legacy", # 1.12 及以下版本服务器 "modern-server" = "modern", # 1.13+ 版本服务器 "bungeeguard-server" = "bungeeguard" # 使用 BungeeGuard 的服务器}
# 默认转发模式(当服务器未在上面列表中时使用)# 建议设置为你最常用的转发模式default-forwarding-mode = "modern"
# 是否在日志中记录转发模式切换# 用于调试和监控log-forwarding-changes = trueVelocity-CTD 性能优化配置
Section titled “Velocity-CTD 性能优化配置”这些是 Velocity-CTD 特有的性能优化选项,需要添加到 [advanced] 部分:
[advanced]# ... 其他标准 Velocity 配置 ...
# === Velocity-CTD 特有的性能优化配置 ===
# 是否应该在 Velocity 中禁用 Forge 的入站握手处理?# 这对于不运行 Forge 或 NeoForge 的服务器很有用,可以提高性能。disable-forge-inbound-handshake = false
# 是否应该禁用无符号消息踢出/断开连接事件?# 这对于与某些插件的兼容性很有用。disable-unsigned-message-kick = false
# 是否应该禁用头部和页脚的翻译?# 这可以提高性能,特别是在使用 TAB 等插件时。disable-header-footer-translation = false
# 最小版本要求。阻止使用旧版本客户端的用户连接。# 格式:主版本.次版本.修订版本 (例如 "1.16.5")# 留空表示不限制版本minimum-version = ""
# 服务器品牌名称,将显示在 F3 调试屏幕中server-brand = "Velocity-CTD"
# 当客户端版本过旧时显示的 ping 消息outdated-ping-message = "请使用更新的客户端版本"
# 当回退服务器不可用时显示的 ping 消息fallback-ping-message = "服务器正在维护中"回退服务器配置
Section titled “回退服务器配置”Velocity-CTD 提供智能回退服务器选择:
[fallback]# 回退服务器选择模式# "least" - 选择人数最少的服务器# "most" - 选择人数最多的服务器# "random" - 随机选择# "cycle" - 循环选择selection-mode = "least"
# 动态回退服务器列表dynamic-fallbacks = ["lobby", "hub"]
# 是否启用负载均衡load-balancing = true
# 负载均衡检查间隔(秒)balance-check-interval = 30
# 服务器健康检查间隔(秒)health-check-interval = 10
# 服务器被认为不健康的超时时间(秒)unhealthy-timeout = 30Velocity-CTD 支持完全可配置的 MiniMessage 格式消息:
[messages]# 是否启用 MiniMessage 格式enable-minimessage = true
# 消息前缀prefix = "<gradient:blue:cyan>[Velocity-CTD]</gradient> "
# 队列相关消息queue-position = "<yellow>你在队列中的位置:<green>{position}</green>/<green>{total}</green>"queue-joined = "<green>已加入 <yellow>{server}</yellow> 的队列"queue-left = "<red>已离开队列"queue-timeout = "<red>队列超时,已被移除"server-full = "<red>服务器已满,已将你加入队列"
# 传送相关消息transfer-success = "<green>成功转移到 <yellow>{server}</yellow>"transfer-failed = "<red>转移失败:<yellow>{reason}</yellow>"hub-teleport = "<green>正在传送到大厅服务器..."hub-unavailable = "<red>大厅服务器暂时不可用"
# 查找相关消息player-found = "<green>玩家 <yellow>{player}</yellow> 在服务器 <yellow>{server}</yellow>"player-not-found = "<red>未找到玩家 <yellow>{player}</yellow>"
# 公告相关消息alert-format = "<red>[公告]</red> <white>{message}</white>"alert-sent = "<green>公告已发送到 <yellow>{count}</yellow> 个玩家"
# 权限相关消息no-permission = "<red>你没有权限执行此命令"command-disabled = "<red>此命令已被禁用"
# 错误消息server-not-found = "<red>服务器 <yellow>{server}</yellow> 不存在"player-offline = "<red>玩家 <yellow>{player}</yellow> 不在线"command-error = "<red>命令执行出错:<yellow>{error}</yellow>"小型服务器(< 100 玩家)
Section titled “小型服务器(< 100 玩家)”适合个人服务器或小型社区:
# 基础配置,保持简单bind = "0.0.0.0:25565"online-mode = false # 通常使用离线模式player-info-forwarding-mode = "modern" # 如果子服支持 1.13+
[queue]enabled = false # 小型服务器通常不需要队列
[redis]enabled = false # 单代理服务器不需要 Redis
[commands]# 启用常用命令hub = trueping = truefind = truealert = true
[advanced]# 基础性能优化compression-threshold = 256login-ratelimit = 1000中型服务器(100-500 玩家)
Section titled “中型服务器(100-500 玩家)”适合中等规模的服务器网络:
# 启用队列系统管理负载[queue]enabled = truetimeout = 300position-update-interval = 15priority-enabled = true
# 智能回退服务器[fallback]selection-mode = "least"load-balancing = truedynamic-fallbacks = ["lobby1", "lobby2"]
[commands]# 启用更多管理命令hub = trueping = truefind = truealert = trueplist = truetransfer = true
[advanced]# 性能优化disable-header-footer-translation = truecompression-level = 6大型服务器(500+ 玩家)
Section titled “大型服务器(500+ 玩家)”适合大型服务器网络或多代理环境:
# 启用 Redis 进行数据同步[redis]enabled = truehost = "your-redis-server"max-connections = 16timeout = 3000
# 完整的队列系统[queue]enabled = trueallow-multiple-queues = false # 避免复杂性priority-enabled = truetimeout = 600 # 更长的超时时间max-queue-length = 1000
# 高级回退配置[fallback]selection-mode = "least"load-balancing = truebalance-check-interval = 15health-check-interval = 5
# 启用所有命令[commands]hub = trueping = truefind = truealert = truealertraw = trueplist = truetransfer = truesudo = trueuptime = true
[advanced]# 高性能配置disable-header-footer-translation = truedisable-forge-inbound-handshake = true # 如果不使用 Forgecompression-level = 6connection-timeout = 3000read-timeout = 45000- 使用 modern 转发:为 1.13+ 服务器提供最高安全性
- 配置防火墙:限制子服务器的直接访问
- 定期更新:保持 Velocity-CTD 版本最新
- 监控日志:及时发现异常行为
性能优化建议
Section titled “性能优化建议”-
禁用不必要的功能:
disable-forge-inbound-handshake = true # 如果不使用 Forgedisable-unsigned-message-kick = true # 提高兼容性 -
调整连接参数:
connection-timeout = 3000read-timeout = 30000login-ratelimit = 1000 -
优化压缩设置:
compression-threshold = 256compression-level = 6
重要配置注意事项
Section titled “重要配置注意事项”转发模式配置
Section titled “转发模式配置”# 确保端口不冲突bind = "0.0.0.0:25565" # 代理端口# 子服务器使用不同端口,如 25566, 25567 等# 生产环境建议配置online-mode = true # 正版验证force-key-authentication = true # 强制密钥验证player-info-forwarding-mode = "modern" # 最安全的转发模式常见配置错误
Section titled “常见配置错误”1. 转发配置错误
Section titled “1. 转发配置错误”错误现象:玩家无法连接到子服务器,出现转发相关错误
解决方案:
- 检查代理的
player-info-forwarding-mode设置 - 确保子服务器正确配置了对应的转发模式
- 检查
forwarding.secret文件是否存在且内容正确
2. Redis 连接问题
Section titled “2. Redis 连接问题”错误现象:代理启动时 Redis 连接失败
解决方案:
[redis]enabled = false # 如果不需要 Redis,直接禁用# 或者检查 Redis 服务器配置host = "正确的Redis地址"port = 6379password = "正确的密码"3. 队列系统问题
Section titled “3. 队列系统问题”错误现象:队列不工作或玩家卡在队列中
解决方案:
[queue]enabled = truetimeout = 300 # 适当的超时时间update-interval = 1000 # 不要设置太小4. 性能问题
Section titled “4. 性能问题”错误现象:代理服务器延迟高或卡顿
解决方案:
[advanced]# 禁用不必要的功能disable-header-footer-translation = truedisable-forge-inbound-handshake = true # 如果不使用 Forge
# 优化连接参数compression-threshold = 512 # 增加压缩阈值compression-level = 4 # 降低压缩级别配置文件模板
Section titled “配置文件模板”基础模板(推荐新手使用)
Section titled “基础模板(推荐新手使用)”config-version = "2.7"bind = "0.0.0.0:25565"motd = "<blue>我的 Velocity-CTD 服务器</blue>"show-max-players = 100online-mode = falseplayer-info-forwarding-mode = "modern"
[servers]lobby = "127.0.0.1:25566"survival = "127.0.0.1:25567"
try = ["lobby"]
[advanced]compression-threshold = 256login-ratelimit = 1000
[commands]hub = trueping = truefind = true