1
0
0

传奇世界开外网,到底改哪些文件?

2026-10-31
2026-10-31
传奇世界开外网,到底改哪些文件?
文章摘要
|

实战总结。目标:让一台只有局域网/单机配置(所有配置文件 IP 全是 127.0.0.1)的星河引擎(传奇世界系)服务端,通过 Tailscale 虚拟组网 让其他电脑远程登录游玩。 文中 IP:100.94.135.103 为本机 Tailscale 地址,100.120.199.120 为远程测试电脑的 Tailscale 地址。服务器名以「凡尘问道」为例,请替换为你自己的。


一、先说结论:核心原则只有一条

客户端要连的地址 → 用 Tailscale IP;进程之间的内部通信 → 永远保持 127.0.0.1。

很多人开外网失败,就是"把所有 127.0.0.1 全部替换成外网 IP"。这是大错。 星河引擎是"多进程 + 网关"架构,LoginSrv / DBServer / Mir200(M2) / 三个 Gate 全部跑在同一台机器上,它们之间的连接必须走 127.0.0.1(本机回环);只有下发给客户端、以及客户端主动来连的地址,才需要填 Tailscale IP。


二、架构与登录链路(搞懂这个,配置就不会乱)

客户端(登录器) ──Tailscale──> 100.94.135.103:7001 LoginGate(登录网关)
                                   │ 内部:127.0.0.1:5501
                                   ▼
                              LoginSrv(账号/登录服务器) ──> IDDB 账号库
                                   │ 下发服务器路由表 addrtable
客户端 ──> 100.94.135.103:7101 SelGate(角色网关) ──内部:127.0.0.1:5101──> DBServer(数据库)
客户端 ──> 100.94.135.103:7201 RunGate(游戏网关) ──内部:127.0.0.1:5001──> Mir200(M2 引擎)

端口算法(官方说明书):登录器列表端口 = 基础通讯端口 + 端口ID + 7000

  • 基础通讯端口 BaseProt=0 → 登录网关 7001、角色网关 7101、游戏网关 7201。

对客户端而言,整个链路就是三个端口:7001 登录 → 7101 选角色 → 7201 进游戏。


三、重点:逐个文件的改动清单

A. 必须改成 Tailscale IP 的文件(对外下发/客户端直连)

# 文件 字段 改法
1 根目录 Config.ini ExtIPaddr 填 Tailscale IP。这是源头:GameCenter"一键设置 → 服务器线路设置 → 游戏服务器IP地址"保存后写到这里
2 根目录 serverlist.ini Server= / ServerIP= / ServerPort= 服务器名、IP、端口三项全改(见第四节客户端说明)
3 LoginSrv\!addrtable.txt 路由表行 服务器名 路由标识 内部IP 外部IP 网关IP:端口 → 凡尘问道 Title1 127.0.0.1 100.94.135.103 100.94.135.103:7101。注意:第 3 列内部 IP 保持 127.0.0.1,只改第 4、5 列为 TS IP
4 Dbserver\!serverinfo.txt 单行配置 127.0.0.1 100.94.135.103 100.94.135.103 7201。同样:第 1 个 127.0.0.1 是内部地址别动,后两个填 TS IP
5 LoginSrv\!serveraddr.txt 允许连接的 IP 白名单 写成两行:127.0.0.1 + 100.94.135.103(本机 + TS 地址都要,缺一不可)

引擎在启动时,会依据根 Config.ini 的 ExtIPaddr 自动回写 addrtable / serverinfo / 各网关配置。所以第 1 步一定先做,后面几个文件核对即可。

B. 必须保持 127.0.0.1 的文件(内部通信,千万别改成 TS IP)

文件 关键字段 说明
LoginSrv\Logsrv.ini GateAddr / ServerAddr / DBCServerAddr 及各 Server= 登录服务器监听本机
LoginGate\Config.ini ServerAddr1=127.0.0.1 登录网关→登录服务器(5501),对外 GatePort1=7001 监听 0.0.0.0
SelGate\Config.ini ServerAddr1=127.0.0.1 角色网关→数据库(5101),对外 GatePort1=7101
RunGate\Config.ini ServerAddr1=127.0.0.1 游戏网关→M2(5001),对外 GatePort1=7201
Mir200\!Setup.txt DBAddr / IDSAddr / MsgSrvAddr / LogServerAddr / DBCServerAddr M2 引擎全部内部连接,一律 127.0.0.1
Dbserver\dbsrc.ini ServerAddr / GateAddr / IDSAddr 数据库服务器内部连接
Mir200\!runaddr.txt、Mir200\!Servertable.txt 127.0.0.1 引擎内部回环文件

C. 踩坑:这两个地方反而要"改回" 127.0.0.1

文件 情况 处理
Mir200\!Setup.txt 启动器一键设置会把外网 IP 回写进 IDSAddr / MsgSrvAddr / LogServerAddr / DBCServerAddr 四项 若发现这四项是 TS IP(或任何外网 IP),改回 127.0.0.1。否则 M2 连不上登录服务器 → 玩家"登录成功但卡在登录界面"
LoginSrv\Logsrv.ini DBCServerAddr 残留过期局域网 IP(如 192.168.1.117) 改回 127.0.0.1,清除指向不存在机器的地址

四、防火墙(最容易漏的一步)

  • Windows 默认入站拦截,服务端三个对外端口必须放行,且规则要同时覆盖 Private 和 Public 配置文件(Tailscale 虚拟网卡可能被归为 Public/Private 任一类别):
New-NetFirewallRule -DisplayName "游戏网关TCP-7001" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 7001 -Profile Any -Enabled True
New-NetFirewallRule -DisplayName "游戏网关TCP-7101" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 7101 -Profile Any -Enabled True
New-NetFirewallRule -DisplayName "游戏网关TCP-7201" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 7201 -Profile Any -Enabled True
  • 非管理员 PowerShell 直接建规则会报"拒绝访问",需以管理员身份运行(或触发 UAC 提权)。

五、客户端:登录器列表(本次最终卡住的元凶)

引擎官方说明书原话:"启动器中的服务器名字和 IP 必须和登录器列表中的服务器名字和 IP 一致,否则无法进入游戏。"

客户端登录器目录下的 serverlist.ini 内容必须为(保存为 ANSI/GBK 编码,无 BOM):

[凡尘问道]
Server=凡尘问道
ServerIP=100.94.135.103
ServerPort=7001

三个关键点:

  1. 服务名必须和服务端启动器一致(本例「凡尘问道」)。只改了 IP 没改名字 → 表现是"提示登录成功,然后卡住",和 M2 回写坑的症状一模一样。
  2. 端口是 7001 不是 7000:按端口算法,登录网关 = 7000 + 端口ID(1) = 7001。
  3. 给多台电脑开服:把服务端根目录这份已改好的 serverlist.ini 直接拷到每台客户端登录器目录覆盖即可。

六、标准操作顺序(从全 127.0.0.1 到开服成功)

  1. 停止服务端(改配置时服务必须停止,否则启动器/引擎回写会覆盖你的修改——本次实战就因此被覆盖过一次)。
  2. 开 GameCenter.exe → 一键设置 → 服务器线路设置 → 游戏服务器IP地址填 Tailscale IP → 保存配置(写根 Config.ini 的 ExtIPaddr)。
  3. 核对 A 表第 2~5 项(serverlist.ini / addrtable / serverinfo / serveraddr)。
  4. 核对 C 表(!Setup.txt 四项内部地址、Logsrv.ini 残留 IP 是否为 127.0.0.1)。
  5. 添加防火墙 3 条入站规则(管理员)。
  6. 启动服务端。
  7. 客户端登录器 serverlist.ini 改为同名 + TS IP + 7001。
  8. 测试登录。

验证手段(服务端运行中执行):

  • netstat -ano | findstr 7001 → 应为 0.0.0.0:7001 监听;
  • 客户端登录过程中,应依次看到它对 7001 的连接建立、随后对 7101 的连接建立——卡在 7001 不继续,就是列表/名字问题或 M2 未注册。

七、排障速查表

现象 根因 处理
完全连不上、超时 防火墙未放行 / IP 端口写错 放行 7001/7101/7201;核对 serverlist.ini
登录成功 → 卡在登录界面 ① M2 的 !Setup.txt 四项内部地址被回写成外网 IP(M2 未注册进登录服务器)② 客户端列表服务名与启动器不一致 ① 改回 127.0.0.1 并重启服务端 ② 客户端列表改为「凡尘问道」同名
能进选区/选人但进不了游戏 游戏网关 7201 防火墙未放行,或 serverinfo 网关字段错误 放行 7201;核对 !serverinfo.txt 第 4 列为 TS IP:7201

八、经验小结

  1. 分清"对外"与"对内":所有 ServerAddr / GateAddr / IDSAddr 这类"进程连进程"的字段保持 127.0.0.1;只有 addrtable / serverinfo / serverlist.ini 中下发给客户端的字段用 TS IP。
  2. 启动器会回写:ExtIPaddr 是一键设置的源头,会在启动时把 IP 写进多个文件;同时它也可能把外网 IP 误写进 M2 的内部地址——所以"启动后再检查一遍 !Setup.txt"是好习惯。
  3. 服务名一致性是星河引擎的铁律,改完 IP 一定要同步检查服务名。
  4. 全程配置编码用 GBK/ANSI(无 BOM),UTF-8 带 BOM 会让引擎读乱。
凡尘问道 Tailscale 登录链路与改动
凡尘问道 · Tailscale 登录链路(100.94.135.103)
其他 TS 电脑 → Tailscale 隧道 → 本机网关端口 → 进入游戏
客户端
其他 TS 电脑(登录器)
目标 100.94.135.103:7001
本次改:serverlist.ini
IP+端口+服务名
→
登录网关 LoginGate
端口 7001(对外监听)
内部 → 登录服务器 LoginSrv :5501
原有正确:外部IP/网关
100.94.135.103:7101 下发客户端
本次改:Logsrv.ini 清除
过期局域网 IP
→
角色网关 SelGate
端口 7101(对外监听)
内部 → 数据库服务器 DBServer :5101
原有正确:!serverinfo.txt
100.94.135.103:7201 下发客户端
→
游戏网关 RunGate
端口 7201(对外监听)
内部 → M2 引擎 Mir200 :5001
→
M2 游戏引擎
GateAddr=0.0.0.0(原有正确)
✔ 进入游戏
防火墙(本次新增): 入站 TCP 7001 / 7101 / 7201 全部放行(之前为 0 条放行规则,远程连接被默认拦截)
本次改动 原有已正确
本次改动明细
① serverlist.ini:ServerIP 127.0.0.1→100.94.135.103;ServerPort 7000→7001;服务名 传奇世界→凡尘问道
② LoginSrv\Logsrv.ini:DBCServerAddr 192.168.1.117→127.0.0.1(清过期局域网IP)
③ Windows 防火墙:新增「凡尘问道-游戏网关TCP-7001/7101/7201」入站放行规则

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或者给予支持!

传奇世界开外网,到底改哪些文件?
/archives/wei-ming-ming-wen-zhang-bHXRchfO
作者
宅女之友
发布于
2026-10-31
许可协议
CC BY-NC-SA 4.0

评论