单机已经能进游戏,说明 DBC、StdItems、M2Server、LoginGate 这条链是通的。局域网联机只做一件事:把“仅本机 127.0.0.1”换成“同网段内网 IP”,让其他电脑能摸到 LoginGate 的 7000 端口。42魔法、光通、Legend 系路径名略有差异,逻辑完全一致。
一、先定服务器主机内网 IP
服务器那台电脑 Win+R → cmd → ipconfig,看当前网卡的 IPv4,比如 192.168.1.100。
同局域网其他机器必须同网段(前三位 192.168.1.x 一致),互相 ping 192.168.1.100 能通再往下做。建议把服务器 IP 在网卡 IPv4 属性里设成静态,避免路由器重拨后 IP 变了全断。
二、服务端所有 127.0.0.1 改成内网 IP
以下文件都在 MirServer\ 下,用 Notepad++ 批量搜 127.0.0.1 替换成 192.168.1.100,逐一看别漏:
- Mir200\!Setup.txt:ServerIP / ServerAddr / GateAddr / DBAddr / MsgSrvAddr / LogServerAddr 全改内网 IP;GateAddr 也可写 0.0.0.0 表示监听所有网卡。
- LoginGate\LoginGate.ini(或 Config.ini):ServerAddr=192.168.1.100,GateAddr=0.0.0.0,Port=7000 不动。
• LoginSrv\Logsrv.ini:DBServer=192.168.1.100,ServerAddr=192.168.1.100。
- LoginSrv\!addrtable.txt:原 127.0.0.1 127.0.0.1 127.0.0.1:7100 改成 传奇3 42Magic 192.168.1.100 192.168.1.100 192.168.1.100:7100,末尾是 SelGate 端口 7100。
- LoginSrv\!serveraddr.txt:单行写 192.168.1.100。
• SelGate\Config.ini(或 SelGate.ini):ServerAddr=192.168.1.100,ListenAddr=192.168.1.100,ListenPort=7100。
- RunGate\Config.ini(或 RunGate.ini):ServerAddr=192.168.1.100,ListenAddr=192.168.1.100,ListenPort=7200。
- DBServer\dbsrc.ini:DBAddr / ServerAddr 改内网 IP,DBPort 6000 不动。
• 若用 GameCenter 配置向导,游戏服务器地址填 192.168.1.100,登录端口 7000,重新生成配置后上述文件会被覆盖写回,改完向导别再手改错版本。
端口三件套死值:LoginGate 7000 / SelGate 7100 / RunGate 7200。开了微端再加 8000。
三、登录器与列表文件给局域网客户端
服务端自带的传奇3登录器生成器(MakeLogin.exe / 登录器配置器):
- 服务器 IP:填 192.168.1.100(不能填 127.0.0.1,127 只对服务器本机生效)
• 网关端口:7000
• 生成 exe,把 exe + 配套 ServerList.txt / Pak.txt 一起拷到别的机器客户端根目录
手动改列表也行,客户端根目录 ServerList.txt 或 Config\ServerList.txt,ANSI 编码,格式:
传奇3局域网|192.168.1.100|7000
竖线分隔,第三列就是 LoginGate 端口。传奇3某些版是 服务器名 192.168.1.100:7000 空格格式,看你登录器读哪种,生成器导出的那份直接照抄最稳。
四、防火墙与启动顺序
服务器主机防火墙必须放行 TCP 7000、7100、7200(微端再加 8000)。控制面板 → 高级安全 → 入站规则 → 新建规则 → 端口 → TCP → 7000,7100,7200 → 允许连接。偷懒就临时关防火墙测,能进再细放开。
启动顺序不变:DBServer → LoginSrv → LoginGate(看黑窗“监听 7000”)→ SelGate(7100)→ RunGate(7200)→ M2Server。M2 控制台显示正常后,本机先用新 IP 登录器(填 192.168.1.100)自测一次,本机能进说明服务端监听对了,再让同网段其他机器连。
五、同网段连不上的拍错顺序
1. 客户端 cmd ping 192.168.1.100 不通 → 网段不对/WiFi 跨 VLAN/服务器 IP 变了。
2. ping 通但登录器“连接服务器失败” → 服务器 netstat -ano | findstr 7000 看 LoginGate 是否真在听;听了还连不上就是防火墙拦了 7000。
3. 能登录但选角色卡死 → SelGate 7100 没起或被拦。
4. 选完人黑屏 → RunGate 7200 没起,或客户端补丁没覆盖到根目录(局域网客户端也要放一份完整 Data/Map,不能空客户端连)。
5. 登录器列表空白 → ServerList.txt 编码不是 ANSI、或登录器不是同引擎生成(42魔法登录器不能套传奇2的 GOM 登录器)。
6. 账号不存在 → LoginSrv 的账号库是单机时建的,局域网连的是同一个 DBServer 没问题;若你换了 DBServer 目录才会查不到号。
路由器不用做端口映射,局域网是二层互通,映射是给公网用的,画蛇添足容易把 7000 转错。DHCP 只要保证同网段即可,服务器侧已经静态 IP 就更稳。
其他机器进游戏后,GM 命令、刷装备、QFunction 触发和单机完全一致,因为服务端进程没变,只是多几个 socket 连进来。

