当前位置 : 145z游戏站 | 诛仙 | 技术教程 | 

诛仙单机PING通但通讯错误排查 服务端端口数据库全解

热度:
诛仙单机启动器显示 PING 但又报“通讯错误/LINK 服务器间网络通讯错误”,本质是客户端连不上本机服务端。单机环境绝大多数不是网络坏了,而是服务端没完全起来、IP/端口对不上、网关或数据库没通、被杀软防火墙拦了。按下面顺序查,基本能定位。

一、先确认服务端是不是真全起了
单机架设通常不是点一个图标就完事,后端会有数据库、认证、网关、世界/游戏主程序等多个窗口。常见现象是前端登录器能出服务器列表、能 PING,但点进入就通讯错误,因为后端只起了一半。
1. 看启动顺序:一般先起数据库(MySQL/SQL,按你用的端而定)→再起 authd/认证→再起 gateway/网关→再起 gamed/主世界。很多一键端有批处理,但要等所有命令行窗口不再刷报错、出现 listening/ready 之类再开客户端。
2. 等 1–3 分钟再登,诛仙类服务端加载地图、角色、NPC 数据较慢,没完全起来就登必通讯错误。
3. 看各窗口有没有红字:db connect fail、failed to bind port、cannot connect mysql、auth error、gateway exit,这些直接决定后面查数据库还是查端口。

二、用 netstat 看端口有没有监听
本机单机默认常看 29000,有些端用 29100、29001、10001、10101 等,以你服务端配置为准。
管理员 CMD 执行:
netstat -ano | findstr "29000"
如果没任何返回,说明服务端没监听,客户端再怎么配都通讯错误。
再查你实际配置的其他端口,比如:
netstat -ano | findstr "29100"
netstat -ano | findstr "10001"
有返回且状态 LISTENING 才正常。
若提示端口被占用,用:
netstat -ano | findstr "29000"
记下 PID,任务管理器详细信息按 PID 找占用程序,关掉再重启服务端;不要随便换端口,换端口就要客户端、服务端一起改。

三、核对服务端 IP 配置(单机全部走 127.0.0.1)
单机本机玩,所有服务端配置里的 IP 统一填 127.0.0.1 或 localhost,不要混外网 IP、不要混局域网 IP。混用最容易 LINK 通讯错误。
按你端类型检查这些位置(文件名不同以实际端为准):
authd 配置:authd.conf / authd.ini 里监听 IP、数据库 IP、区服回调 IP,单机填 127.0.0.1。
网关 gateway 配置:gateway.conf / 线路配置里的 listen IP、game IP,单机填 127.0.0.1。
gamed/serverinfo:serverinfo.conf、ptemplate.conf、gamed.conf 里 addr/public ip/port,单机填 127.0.0.1 和对应端口。
数据库配置:dblink.ini、authd 里 db 账号密码、ServerIP,本机填 127.0.0.1;MySQL 用 root 还是独立账号,密码必须和 authd 调用的一致。
全服务端搜一遍其他配置里的 IP,避免一个文件 127.0.0.1、另一个文件填了 192.168 或公网,这种“半内半外”必通讯。

四、核对客户端登录器配置
客户端路径一般类似:
诛仙\element\userdata\server\serverlist.txt
单机写法示例:
测试区 1 127.0.0.1 29000 1
前面是区名,中间 IP,中间端口,最后 1 显示。端口必须和服务端 gamed/网关实际监听一致。
若服务端改用 29100,这里也改 29100,别只改一边。
再检查:
element\userdata\currentserver.ini
[Server]
CurrentServer=测试区 1
这个名字要和 serverlist.txt 第一列完全一致,不然登录器不读列表。
如果登录器是独立patcher/登录器配置器生成的,里面 auth 地址、game 地址、端口也要填 127.0.0.1 和同端口,不能登录器指向 127.0.0.1、底层 list 又指向别的。

五、防火墙和杀软拦截
单机也可能被拦,尤其是 Win10/11 自带 Defender 和 360、火绒、电脑管家。
临时处理:把服务端整个目录加杀软白名单;Windows 防火墙对 zx.exe/elementclient.exe、authd、gateway、gamed、mysqld 放行,或直接临时关防火墙测试。
端口放行:29000 游戏端口、你实际网关端口、数据库端口(MySQL 常 3306,SQL Server 常 1433,按你端来)都放行。
测试通过后别长期关防火墙,重新加规则:高级防火墙→入站→新建规则→程序→选服务端各 exe→允许;端口规则再补 29000/29100/数据库端口。

六、数据库没通也会表现成通讯错误
很多新手以为“通讯错误”只是网络,其实 authd 连不上库、角色库没初始化,登录阶段就会 LINK/通讯失败。
检查:
数据库服务是否启动:Win 服务里看 MySQL/SQL Server,或用 net start 看对应服务名。
账号密码:authd 调用库的 user/password、库名要和实际一致;导入 SQL 是否成功,有没有建 account、character、game 等库表。
端口:MySQL 3306 被占用或改了默认,authd 里也要同步改。
日志:authd.log、gdeliveryd.log、gamed 目录下 gamesys.log 看 db connect、access denied、unknown database。
如果服务端起得来但一登录就报错,而 netstat 端口也在,优先看 authd 日志和数据库账号。

七、hosts、兼容、运行库补充
hosts 路径 C:\Windows\System32\drivers\etc\hosts,用记事本管理员打开。单机一般保留:
127.0.0.1 localhost
若被人加过 pwtorch 等诛仙相关域名指向、或加了异常 127 规则,先备份再删掉非系统条目,重启再试。
客户端右键属性→兼容性→以管理员运行,Win10/11 可试 Windows 7 兼容;缺少 VC++ 运行库、DirectX 9 会闪退或登录异常,补装常用运行库。
若之前打过第三方补丁、精简版修改版,容易改坏登录配置;用纯净客户端重配 serverlist 比继续修补丁更快。

八、按报错阶段快速判断
能出列表、点连接立刻通讯错误:端口没监听/服务端没全起→netstat 查端口、看各后端窗口。
出账号密码、验证后通讯错误:authd 或数据库问题→查 authd.log、dblink、MySQL 账号权限。
能进选角、进游戏读条后掉通讯:gamed/gateway 与后端 delivery 不通→查 gdeliveryd.log、serverinfo、网关 IP 端口。
PING 有延迟但进不去:本机 127 一般不该有延迟,若启动器 PING 是假显示,仍按上面端口/auth/网关查,不要只信 PING 通。

把你用的端名(比如“诛仙FF端/某硬盘版/某一键端”)、服务端有哪些窗口、serverlist 当前内容、netstat 29000 有没有监听、authd 日志前几行报错发出来,可以直接按文件定位。
[顶部]