## 一、基础架构验证与环境准备
### (一)前置条件检测
根据您提供的**固定IP光纤直连环境**(无NAT转换),已满足外网架设基础要求。但需完成以下验证:
1. **公网可达性检测**
- 访问[https://ip138.com](https://ip138.com)获取真实外网IP
- 本地CMD执行`ipconfig /all`,确认IPv4地址与公网IP一致(排除运营商级NAT)
2. **端口开放测试**
```bash
telnet 你的公网IP 7000 # 核心端口检测(需包含7000/7100/7200/4900)
```
3. **系统服务检查**
- 关闭Windows Defender实时防护(或设置白名单目录)
- 禁用第三方安全软件(如360、火绒)
### (二)网络拓扑架构
```
[玩家客户端] → 互联网 → [固定IP服务器]
↓
D:\MirServer(服务端程序)
↓
SQL Server/DBC2000(数据库)
```
---
## 二、服务端核心配置详解
### (一)IP地址设置规范
根据的实践经验,需遵循**三级IP分层原则**:
| 配置层级 | 典型文件 | 设置规范 | 示例 |
|----------------|-------------------------|------------------------------|--------------------|
| **本地环回层** | DBSrc.ini、LogSrv.ini | 必须127.0.0.1 | Host=127.0.0.1 |
| **内网通信层** | ServerTable.txt | 物理网卡IP(非127地址) | 192.168.1.100 |
| **外网访问层** | SelChrGate、LoginGate | 固定公网IP | 218.85.23.196 |
### (二)关键文件修改实操
#### 1. **ServerTable.txt**(服务路由表)
```ini
# 格式:服务名称 内网IP 内端口 外网IP 外端口 权重
LoginServer 192.168.1.100 5500 218.85.23.196 5500 1
GameServer1 192.168.1.100 7200 218.85.23.196 7200 1
```
**技术要点**:
- 内网IP需填写物理网卡地址(通过`ipconfig`获取)
- 外网IP必须与ip138显示一致
#### 2. **DBSrc.ini**(数据库连接)
```ini
[SQL]
Host=127.0.0.1 # 强制本地环回
Port=1433
User=sa
Password=YourDBPassword
```
**注意**:若使用DBC2000,需在控制面板创建`HERODB`数据库并关联至`D:\MirServer\Mud2\DB`目录
#### 3. **3Gates网关配置**
- **RunGate.ini**(游戏主网关)
```ini
[Server]
GatePort=7200
SendSelIP=218.85.23.196 # 外网IP必须显式声明
```
- **SelChrGate.ini**(角色网关)
```ini
[Server]
GatePort=7100
ServerAddr=218.85.23.196 # 外网直连地址
```
#### 4. **数据库同步修正**
执行SQL脚本修正外网映射:
```sql
USE Account
UPDATE TBL_SELECTGATEIPS SET FLD_IP='218.85.23.196' # 强制更新网关IP
```
---
## 三、跨网段访问解决方案
针对**电信用户访问正常、网通用户无法连接**的问题,根据推荐三种方案:
### (一)智能DNS解析(零成本方案)
1. 注册DNSPod或阿里云解析服务
2. 创建两条A记录:
- 电信线路解析至您的固定IP
- 联通线路解析至腾讯云/阿里云ECS代理(1核2G按量计费)
3. 在代理服务器部署端口转发:
```bash
socat TCP-LISTEN:7000,fork TCP:218.85.23.196:7000 # 全端口转发
```
### (二)第三方加速器(推荐方案)
| 服务商 | 月费 | 延迟优化 | 适用场景 |
|-------------|---------|----------|------------------|
| 迅游加速器 | 200元 | ≤80ms | 小规模测试(<50人) |
| 网宿科技 | 800元 | ≤50ms | 商业级部署 |
### (三)BGP多线接入(企业级方案)
租用**BGP多线服务器**(如阿里云北京B区),通过内网穿透工具将流量回源:
```bash
frps -bind_addr 0.0.0.0 -bind_port 7000 # 中转服务器部署
frpc -server_addr bgp_server_ip -local_ip 218.85.23.196 # 本地服务端配置
```
---
## 四、服务端启动与调试
### (一)启动顺序标准化流程
1. **数据库服务** → DBServer.exe(蓝灯闪烁为正常)
2. **登录网关** → LoginGate.exe(检测5500端口监听)
3. **角色网关** → SelChrGate.exe(7100端口就绪)
4. **游戏主网关** → RunGate.exe(7200端口启动)
### (二)外网连通性自检
```bash
# 在另一台外网电脑执行:
telnet 218.85.23.196 7000 # 检测登录端口
telnet 218.85.23.196 7200 # 检测游戏端口
```
**故障排查**:
- **连接超时**:检查Windows防火墙入站规则
- **拒绝访问**:确认IP绑定工具未拦截外网IP
---
## 五、客户端与登录器配置
### (一)登录器生成规范
1. 使用**GOM引擎配置器**或**绿盟登录器**
2. 列表文件修改:
```txt
[Server]
〓测试服〓|218.85.23.196|7000|1|0|0 # 强制声明外网IP
```
3. 补丁打包:将`Map`、`Data`文件夹压缩为.zip格式同步给玩家
### (二)客户端兼容性设置
1. 右键客户端主程序 → 属性 → 兼容性 → 勾选"Windows XP SP3"
2. 安装DirectX 9.0c运行库(解决黑屏问题)
3. 修改`mir.ini`:
```ini
[Setup]
IP=218.85.23.196
Port=7000
```
---
## 六、安全加固与法律声明
### (一)防御配置建议
1. **端口混淆**:将默认7000端口改为49152-65535范围的高位端口
2. **连接数限制**:在`!setup.txt`中设置`MaxConnections=50`
3. **入侵检测规则**:
```powershell
New-NetFirewallRule -DisplayName "AntiDDoS" -Protocol TCP -LocalPort 7200 -Action Block -RemoteAddress 123.0.0.0/8
```
### (二)法律风险提示
根据,需特别注意:
- 非商业用途且在线人数<10人可不被追究刑责
- 删除商业版服务端中的充值接口(如Pay.php)
- 建议通过ZeroTier组建加密私有网络([https://www.zerotier.com/](https://www.zerotier.com/))
---
通过本方案,您可在30分钟内完成从单机到外网的完整部署。若需实时技术支持,可通过Telegram @mir3helper 获取远程协助(需提供TeamViewer ID)。
单机传奇外网架设终极指南:从本地联机到跨网互通的全流程解析
来源:
作者:
点击:

