能注册账号但卡在资源加载后提示“无法连接服务器”,是Sky引擎架设中最典型的“半连通”故障。能注册仅证明DBServer(数据库)和LoginGate(登录网关)存活,但负责游戏逻辑的GameSrv(游戏网关)或RunGate未成功握手。请按以下顺序锁定核心矛盾。
一、首要排查:GameSrv进程状态与端口
Sky引擎的注册与游戏登录是分离的。资源加载后的连接失败,90%是GameSrv(游戏服务)未启动或端口被占。
1. 检查进程存活:打开任务管理器(Ctrl+Shift+Esc),在“详细信息”中查找 GameSrv.exe 或 SkyGameSrv.exe。若不存在,说明游戏服务崩溃或未启动。需进入服务端目录的 SkyServer\Game 文件夹,双击运行启动脚本(如 StartGame.bat)。
2. 验证端口占用:Sky默认使用7100端口(游戏端口)。在CMD命令行输入 netstat -ano | findstr "7100"。若返回结果中的PID不是GameSrv的进程ID,说明7100端口被其他软件(如迅雷、IIS)占用。
3. 修改端口:若端口被占,打开 SkyServer\Config\GameConfig.ini,找到 GamePort=7100,改为未使用的端口(如7101)。同步修改登录器配置中的游戏端口并重新生成登录器。
二、登录器配置:IP列表与网关端口映射
“加载资源后断开”往往意味着客户端连接到了错误的网关端口。
1. IP列表一致性:检查客户端 serverinfo.txt 或 serverlist.txt 文件。格式必须为:服务器名称,127.0.0.1,7100,0。第三个数字必须与GameConfig.ini中的GamePort严格一致。若此处写错,客户端会尝试连接错误的网关导致超时。
2. 登录器配套性:严禁使用“万能登录器”或GOM引擎的登录器连接Sky服务端。必须使用服务端自带的Sky登录器生成器重新生成登录器,确保通信协议匹配。
3. 网关路径检查:部分Sky版本需要手动配置RunGate路径。确认 MirServer\RunGate\Config.ini 中的 GatePort(默认7200)未被修改,且 LoginGate\ServerAddr.txt 第一行指向 127.0.0.1 7200。
三、防火墙拦截与系统权限
Win10/Win11的Defender会静默拦截未知端口的出站连接。
* 关闭实时防护:进入Windows安全中心,临时关闭“实时保护”和“防火墙”。Sky引擎的GameSrv.exe和RunGate.exe常被误判为风险程序。
* 管理员权限:右键点击服务端控制器和登录器,选择“以管理员身份运行”。权限不足会导致GameSrv无法绑定系统端口,从而启动失败。
* 端口放行:若必须开启防火墙,需手动添加入站规则,放行7000(登录)、7100(游戏)、7200(网关)端口的TCP和UDP流量。
四、配置文件IP地址修正
单机环境必须锁定本地回环地址,任何一处外网IP都会导致连接重置。
1. LoginSrv.ini:检查 LoginSrv\LoginSrv.ini 中的 BindIP,单机建议设为 0.0.0.0(监听所有IP)或 127.0.0.1。
2. ServerInfo.txt:确认 Mir200\Config\ServerInfo.txt 中的服务器IP为 127.0.0.1。
3. 控制器设置:在GameCenter(游戏控制器)的配置向导中,“游戏服务器外网IP地址”必须填写 127.0.0.1,而非本机局域网IP(如192.168.x.x)。
五、极简修复流程(按顺序操作)
1. 重启服务:完全关闭所有服务端程序,先启动 LoginSrv.exe,再启动 GameSrv.exe,最后启动 M2Server.exe。
2. 换登录器:删除客户端现有登录器,用服务端自带的Sky登录器生成器重新生成,并核对端口。
3. 关杀软:彻底退出所有安全软件,重新启动服务端。
若仍提示“无法连接”,检查服务端 Log 目录下的错误日志(ErrorLog.txt),搜索“Port”或“Bind”关键字,定位具体的端口冲突或权限错误。Sky引擎对端口占用极为敏感,确保7000-7200端口区间无其他程序干扰是关键。

