实现传奇禁止双开或多开,核心在于客户端进程检测与服务端登录限制的双重拦截。通过锁定IP、硬件码及账号关联,可有效阻断同一设备或网络下的多窗口操作。
一、登录器端:进程与硬件级拦截
登录器是防止双开的第一道防线,通过本地检测直接阻止多余客户端启动。
1. 进程互斥检测
在登录器配置器中启用“多开检测”或“禁止双开”功能。设置“允许启动数量”为1,并准确填写游戏主进程名(如Mir.exe、Client.exe)。当检测到同名进程已存在时,登录器将拒绝启动第二个窗口或直接关闭多余进程。
2. 硬件码(机器码)绑定
启用“硬件绑定登录”选项,通常绑定CPU序列号、主板ID或硬盘序列号。设置“单设备最大开号数=1”,确保同一台电脑无论更换多少个账号,都只能运行一个游戏实例。此方法比单纯检测进程更严格,能防止玩家通过多账号切换绕开限制。
3. 驱动级防护
部分高端登录器(如GEE引擎)支持驱动级检测,可勾选“禁止虚拟机登录”和“进程守护”。引擎会定期扫描客户端进程,发现多开立即踢下线,并能有效对抗简单的多开器工具。
二、服务端(M2引擎):IP与账号限制
若玩家绕过登录器(如使用第三方多开器),需在服务端进行二次拦截。
1. IP登录限制
进入M2Server → 系统设置 → 客户端管理 → 登录限制。启用“同一IP最大登录数”,数值设为1。此设置下,同一路由器或局域网内的所有设备共享一个登录名额,彻底杜绝家庭网络多开。
2. 机器码在线限制
在M2的登录限制中,同步启用“同一机器码最大登录数=1”。服务端会记录首次登录的硬件指纹,后续使用不同账号但同一设备的登录请求将被拒绝。这是目前最有效的防多开手段之一。
3. 账号关联限制
若开服时要求实名认证,可启用“同一身份证/手机号绑定账号仅允许1个在线”。配合IP和机器码,形成三重防护网,极大增加多开成本。
三、脚本层:上线触发检测
对于需要高度定制化限制的版本,可通过修改游戏脚本实现逻辑判断。
1. 机器码记录脚本
在 QManage.txt 的 [@Login] 段加入检测脚本。原理是玩家上线时,将其机器码写入一个文本列表;若检测到该机器码已存在于列表(即已在线),则执行 KICK 踢出或 MESSAGEBOX 提示禁止多开。玩家下线时通过 [@PlayOffLine] 段脚本清除对应的机器码记录。
2. IP封禁脚本
通过脚本检测短时间内同一IP的登录频率。若发现异常(如1分钟内同一IP登录3个不同账号),自动调用 @DenyIPLogon 命令将该IP加入临时封禁列表,阻止其继续创建连接。
四、防火墙与第三方工具
1. 端口级限制
在服务器防火墙(如Windows防火墙)中设置入站规则,限制同一源IP在特定时间窗口内对游戏端口(如7000、7100)的连接次数。虽然配置复杂,但能从网络层直接掐断多开连接。
2. 进程监控工具
在服务器上部署第三方进程监控程序(如MirMonitor),实时扫描 Mir.exe 进程数量。一旦发现某IP下进程数超过阈值,自动结束进程并记录日志。此方法独立于引擎,可作为兜底方案。
配置要点:建议采用“登录器硬件绑定 + M2机器码限制”的组合策略。对于必须允许双开的版本(如法师带战士),可将“单设备最大开号数”设为2,并在登录器配置中明确允许双开,避免误伤正常玩家。

