传奇服务端启动报错10048:端口被占用解决方法

来源: 作者: 点击:
错误代码10048表示系统尝试绑定网络端口时失败,原因通常是该端口已被其他进程占用。SKY版M2服务端默认使用7000、7100、7200等端口,若这些端口中有任一被占用,启动时就会报“Windows socket error: 通常每个套接字地址只允许使用一次”。

首先确认端口占用情况。打开命令提示符,执行命令:netstat -ano | findstr :7000(依次替换为7100、7200等)。若返回进程PID,说明端口正在使用。再通过tasklist | findstr “PID号”查出对应程序名称。

常见占用源包括:残留的MirServer.exe进程、其他传奇服务端、IIS、SQL Server、迅雷、TeamViewer等软件。结束相关进程即可释放端口。若不确定是否可终止,重启电脑是最直接的清理方式。

若需保留占用程序,可修改M2配置文件更换端口。打开!Setup.txt或!ServerInfo.txt,找到Port=7000、LoginPort=7100、DBPort=7200等字段,将数值改为未被使用的端口(如8000、8100、8200)。注意客户端LoginGate.ini中的IP+端口也需同步修改,否则无法登录。

部分系统存在TIME_WAIT连接堆积问题。即使程序已关闭,端口仍处于等待状态。可在注册表HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters下新建DWORD值MaxUserPort=65534和TcpTimedWaitDelay=30,减少端口回收延迟。

检查是否重复启动M2。双击MirServer.exe多次会导致自身端口冲突。确保任务管理器中仅存在一个MirServer进程。若界面无响应但进程仍在,需强制结束后再重新启动。

防火墙或杀毒软件有时会虚拟占用端口。临时关闭Windows Defender防火墙或第三方安全软件,测试是否仍报错。若问题消失,将M2主程序添加至防火墙允许列表即可。

使用端口扫描工具如PortQuery或CurrPorts可批量检测7000-7300范围端口状态。绿色表示空闲,红色为占用。优先选择连续空闲端口段,避免分散配置。

修改端口后务必重启所有网关组件。LoginSrv、Logingate、RunGate等模块均依赖端口通信,任一未更新都会导致连接中断。建议修改后统一重启整个服务端套件。

若在云服务器部署,还需检查安全组规则是否放行新端口。本地能启动不代表外部可访问,需在控制台开放TCP协议对应端口。

最终验证方法:启动M2后立即执行netstat -an | findstr LISTENING,确认7000(或新端口)处于监听状态,且无重复条目。此时客户端应能正常连接登录。