当前位置 : 145z游戏站 | 魔域 | 技术教程 | 

魔域架设注册失败:端口冲突与注册页配置修复

热度:
魔域服务端架设后,网页或登录器注册提示“服务器连接失败”,但GM工具能正常添加账号并进游戏,核心原因是注册页面的端口配置错误或AccountServer服务未对注册页面开放连接权限。GM工具通过直连数据库写入账号,绕过了服务端的网络验证,故能成功。

一、 核心原因:注册端口未开放或配置错误

网页注册功能依赖 AccountServer 服务监听 9958 端口(默认登录端口)和 9865/9870 端口(计点/列表端口)。若这些端口被占用或配置不一致,注册请求无法到达服务端。

1. 端口占用检查
打开CMD,输入 netstat -ano | findstr "9958" 和 netstat -ano | findstr "9865"。若显示有PID占用,说明端口被其他程序(如IIS、迅雷)占用。解决方案:修改 AccountServer/config.ini 中的 LOGINLISTENPORT 和 POINTLISTENPORT 为未被占用的端口(如 9959、9866),并同步修改注册页面源码中的连接端口。

2. 注册页源码端口配置
网页注册页面(通常为PHP文件)中,连接服务端的端口必须与 config.ini 中的 POINTLISTENPORT 严格一致。检查 reg.php 或 conn.php 中的 $port 变量,确保其值为 9865(或你修改后的端口)。

二、 关键配置:AccountServer的IP绑定与数据库连接

AccountServer 服务启动时需正确绑定IP并连接数据库,否则注册页面无法通过TCP协议写入账号。

1. IP绑定设置
检查 AccountServer/config.ini 中的 SERVERIP 参数。单机架设必须设置为 127.0.0.1;若设置为局域网IP或外网IP,本地注册页面可能无法连接。同时确认 GAMESERVER_IP 指向正确的游戏服务器IP。

2. 数据库连接验证
虽然GM工具能连,但需确认 AccountServer 使用的数据库账号是否有写入权限。检查 config.ini 中的 DB_USER(通常为 root)和 DB_PW(密码)是否正确。若密码错误,服务端能启动但注册会失败。

三、 防火墙与杀毒软件拦截

Windows防火墙或杀毒软件可能拦截注册页面对 AccountServer 端口的TCP连接。

• 临时测试:完全关闭Windows防火墙和杀毒软件,尝试注册。若成功,说明是被拦截。

• 解决方案:在防火墙高级设置中,为 AccountServer.exe 和 MSGServer.exe 添加入站规则,允许TCP端口 9958、9865、5816 通过。

四、 注册页面环境缺失(PHPStudy)

部分服务端自带注册页面需PHP环境支持。若未搭建环境,网页注册会直接报错。

• 检查:访问 http://127.0.0.1/reg.php,若显示“无法连接”或空白页,说明PHP环境未启动。

• 解决:安装PHPStudy,将注册页面文件放入WWW根目录,启动Apache/Nginx和MySQL服务。

五、 快速验证与替代方案

1. 验证服务端状态
打开 AccountServer 窗口,查看是否有“Account Server Running”提示,且无“Connect Database Fail”错误。若服务端未完全启动,注册必然失败。

2. 使用GM工具替代
若无法修复注册页面,可继续使用GM工具(如“魔域GM管理器”)直接添加账号。工具通过ODBC直连 my 数据库的 account 表,绕过服务端网络验证,是最稳定的单机账号管理方式。

通过修正 config.ini 端口、同步注册页源码、关闭防火墙拦截,可解决绝大多数“注册连接失败”问题。若仍无效,建议检查服务端版本是否完整(是否存在注册页文件缺失)。
[顶部]