- 打卡等级:虹膜套勇士
- 打卡总天数:80
- 打卡月天数:4
- 打卡总奖励:9832
- 最近打卡:2025-07-04 00:00:04
管理员
本站站长
- 积分
- 6708
|
配置 GOM 引擎的主网关(LoginSrv)和从网关(GateServer)是构建高性能传奇服务器的核心步骤,直接影响玩家连接稳定性和服务器负载能力。以下是基于实战经验的详细配置指南:
一、主网关(LoginSrv)配置详解
主网关负责账号验证、服务器列表分发和玩家到从网关的路由,需配置以下核心参数:
1. 基础网络配置
ini
[LoginServer]
ListenPort=666 ; 主网关监听端口(登录器连接此端口)
MaxConnect=10000 ; 最大连接数(建议按服务器性能调整)
ServerName=热血传奇 ; 服务器名称(登录器显示)
注意事项:
若服务器有公网 IP,需确保此端口已在防火墙开放。
若登录器无法连接,优先检查此端口是否被占用(用netstat -ano | findstr 666)。
2. 从网关列表配置
ini
[GateServerList]
GateList=192.168.1.10:7000,192.168.1.11:7001,192.168.1.12:7002 ; 从网关IP:端口列表
LoadBalanceType=1 ; 负载均衡类型(0=随机,1=最少连接,2=性能权重)
配置技巧:
本地测试时,所有 IP 可填127.0.0.1,端口需不同。
线上环境需填写服务器真实内网 IP(非公网 IP),避免跨网络延迟。
LoadBalanceType=1为推荐配置,能自动将玩家导向连接数最少的从网关。
3. 账号安全配置
ini
[Account]
CheckVersion=1 ; 版本校验(1=开启,需与登录器版本匹配)
CheckMachineID=0 ; 检查机器码(1=开启,防多开但可能误封)
MaxLoginFail=5 ; 最大登录失败次数(超过则封禁IP)
避坑指南:
若玩家反馈 “版本不符”,检查LoginSrv\Version.dat是否与登录器版本一致。
CheckMachineID=1可能导致家用路由器下的多用户被误封,建议谨慎开启。
二、从网关(GateServer)配置详解
从网关负责游戏数据的实时传输,需根据服务器性能优化线程和网络参数:
1. 基础网络配置
ini
[GateServer]
Port=7000 ; 从网关端口(需与主网关GateList中对应)
MaxClient=3000 ; 单网关最大连接数(建议不超过4000)
ServerID=1 ; 服务器ID(需唯一,用于区分不同网关)
性能调优:
8 核 16G 服务器建议MaxClient=3500,更高配置可设 4000。
若玩家频繁遇到 “服务器已满”,增加从网关实例或调高此值。
2. 多线程配置
ini
[Thread]
WorkerThread=6 ; 工作线程数(推荐为CPU核心数-1)
PacketThread=2 ; 数据包处理线程数
UseUDP=1 ; 启用UDP协议(提升弱网体验)
配置逻辑:
8 核服务器设WorkerThread=6,保留 2 核给系统和其他进程。
UseUDP=1可降低移动网络玩家的延迟,但需确保防火墙开放 UDP 端口。
3. 网络优化配置
ini
[Network]
KcpMode=2 ; KCP加速模式(0=普通,1=快速,2=极速)
KcpInterval=40 ; KCP协议更新间隔(ms)
MaxPacketPerSecond=15 ; 每秒最大发包数(防加速挂)
实战经验:
弱网环境建议KcpMode=2+KcpInterval=30,但可能增加服务器 CPU 负载。
MaxPacketPerSecond=15可有效拦截加速挂,但需确保正常玩家操作不被误判。
三、配置实战案例
场景:部署 2 个从网关分担 1 万人在线压力
硬件配置:
主网关服务器:4 核 8G SSD,公网 IP:123.123.123.1
从网关 1:8 核 16G SSD,内网 IP:192.168.1.10
从网关 2:8 核 16G SSD,内网 IP:192.168.1.11
1. 主网关配置(LoginSrv.ini)
ini
[LoginServer]
ListenPort=666
MaxConnect=10000
ServerName=热血传奇尊享版
GateList=192.168.1.10:7000,192.168.1.11:7001
LoadBalanceType=1
[Account]
CheckVersion=1
CheckMachineID=0
MaxLoginFail=5
2. 从网关 1 配置(Gate1\GateServer.ini)
ini
[GateServer]
Port=7000
MaxClient=5000
ServerID=1
[Thread]
WorkerThread=7 ; 8核服务器设7个工作线程
PacketThread=2
UseUDP=1
[Network]
KcpMode=2
KcpInterval=40
MaxPacketPerSecond=15
3. 从网关 2 配置(Gate2\GateServer.ini)
ini
[GateServer]
Port=7001
MaxClient=5000
ServerID=2
[Thread]
WorkerThread=7
PacketThread=2
UseUDP=1
[Network]
KcpMode=2
KcpInterval=40
MaxPacketPerSecond=15
四、配置验证与排错
1. 启动顺序
启动主网关(LoginSrv.exe)。
依次启动从网关(GateServer.exe)。
启动游戏服务器(GameServer.exe)。
2. 验证方法
bash
# 1. 检查主网关端口是否开放
telnet 123.123.123.1 666
# 2. 检查从网关端口是否开放(内网测试)
telnet 192.168.1.10 7000
# 3. 查看主网关日志(LoginSrv\Log\LoginSrv.log)
是否有从网关连接成功的记录:
"GateServer connected: 192.168.1.10:7000"
# 4. 查看从网关日志(GateServer\Log\GateServer.log)
是否成功注册到主网关:
"Register to LoginServer success"
3. 常见问题排查
问题现象 可能原因 解决步骤
登录器无法连接 1. 主网关未启动
2. 防火墙未开放 666 端口
3. ListenPort 配置错误 1. 检查进程是否运行
2. 开放防火墙端口
3. 核对配置文件
登录后无法进入游戏 1. 从网关未启动
2. GateList 配置错误
3. 从网关端口被占用 1. 启动从网关
2. 检查 IP 和端口是否匹配
3. 用 netstat 命令检查端口占用
部分玩家延迟高 1. 从网关负载过高
2. UseUDP 未启用
3. KcpMode 配置不合理 1. 增加从网关实例
2. 启用 UDP
3. 调整 KcpMode 为 2
五、性能监控与优化
1. 关键监控指标
指标名称 健康阈值 优化措施
单网关连接数 <4000 超过则增加从网关实例
工作线程 CPU 占用率 <80% 降低 MaxClient 或增加 WorkerThread
网络吞吐量 < 网卡带宽 70% 升级网络或分流网关
2. 高级优化技巧
会话保持:
在LoginSrv.ini中添加:
ini
SessionKeepTime=300 ; 会话保持时间(秒),防止玩家频繁重连
IP 访问限制:
在GateServer.ini中添加:
ini
[IPFilter]
MaxConnectPerIP=5 ; 单个IP最大连接数,防DDOS
BlockIPList=1.2.3.4,5.6.7.8 ; 封禁特定IP
六、配置文件完整示例
主网关配置(LoginSrv.ini)
ini
[LoginServer]
ListenPort=666
MaxConnect=10000
ServerName=热血传奇
GateList=192.168.1.10:7000,192.168.1.11:7001
LoadBalanceType=1
SessionKeepTime=300
[Account]
CheckVersion=1
CheckMachineID=0
MaxLoginFail=5
[Security]
EncryptKey=ABCDEFG123456789 ; 通信加密密钥,需与登录器一致
从网关配置(GateServer.ini)
ini
[GateServer]
Port=7000
MaxClient=3500
ServerID=1
[Thread]
WorkerThread=6
PacketThread=2
UseUDP=1
[Network]
KcpMode=2
KcpInterval=40
MaxPacketPerSecond=15
[IPFilter]
MaxConnectPerIP=5
BlockIPList=
通过合理配置主网关和从网关,可构建支持万人同时在线的高性能传奇服务器。建议在压力测试阶段使用工具(如 LoadRunner)模拟 5000 + 并发连接,验证配置的稳定性,并根据测试结果调整参数。
|
|