Velocity 代理核心配置子服教程

使用 Velocity 代理核心时,你需要同时配置代理服务器(Velocity)和后端的子服务器(通常是 Paper、Spigot 等)。以下是配置 Velocity 代理和子服务器的基本步骤:

1. 配置 Velocity 代理服务器

首先,打开 Velocity 的配置文件 velocity.toml,该文件通常位于 Velocity 服务器的根目录中。

velocity.toml 示例配置:

[servers]
# 在此配置您的服务器。每个键代表服务器的名称,值代表要连接的服务器的IP地址。
lobby = "127.0.0.1:25565"
survival = "127.0.0.1:25566"
creative = "127.0.0.1:25567"

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

# 在此配置您的强制主机。
[forced-hosts]
"lobby.example.com" = ["lobby"]
// 你也可以这样 "lobby.example.com" = ["lobby", "survival"]

[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"

# 是否默认在查询响应中显示插件
show-plugins = false

2. 配置子服务器

在每个后端子服务器上,你需要配置以下几项:

server.properties

  • 确保 server-port 设置为正确的端口,与 Velocity 配置中的端口一致。

spigot.yml

  • 确保 bungeecord 设置为 true

bukkit.yml

  • 确保 connection-throttle 设置为 -1

paper.yml

  • 确保 use-native-transport 设置为 true(可以提高性能)。

config.yml(BungeeCord IP Forwarding):

  • 在 Spigot 或 Paper 服务器中,你需要确保安装了协议支持插件,如 ProtocolLib。
  • 打开 spigot.yml,设置 bungeecordtrue
  • 打开 server.properties,确保 server-ip 留空。

示例 spigot.yml

settings:
bungeecord: true

3. 启用 IP 转发(在 Velocity 和子服务器中)

  • velocity.toml 中设置 player-info-forwarding-modeMODERN
  • 生成一个 forwarding.secret 文件并将密钥放入其中。确保每个子服务器也使用相同的密钥。

示例 forwarding.secret 文件:

your-very-secret-forwarding-key

4. 重启服务器

在修改完配置文件后,重启所有的子服务器和 Velocity 代理服务器以使配置生效。

5. 测试连接

确保代理服务器和子服务器都在运行,并尝试通过代理服务器 IP 连接到你的服务器。

错误排查

  • 如果遇到问题,查看 Velocity 和子服务器的日志文件,找出详细错误信息。
  • 确保子服务器的防火墙设置允许代理服务器的 IP 访问相应的端口。
阅读剩余
THE END