DNF 服务端完整诊断报告
./run 的完整启动流程
run 文件位置:/root/run(不在 /home/neople 下)
启动顺序如下(严格按照序):
| 序号 | 目录 | 命令 | 说明 |
|---|---|---|---|
| 1 | /home/neople/stun | ./df_stun_r start & | STUN 穿透服务(UDP 2311-2313) |
| 2 | /home/neople/monitor | ./df_monitor_r mnt_cain start & | 监控服务(UDP/TCP 30303) |
| 3 | /home/neople/manager | ./df_manager_r manager start & | 管理服务(UDP/TCP 40401) |
| 4 | /home/neople/relay | ./df_relay_r relay_200 start & | 中继服务(UDP/TCP 7200) |
| 5 | /home/neople/bridge | ./df_bridge_r bridge start & | 网桥(UDP/TCP 7000) |
| 6 | /home/neople/channel | ./df_channel_r channel start & | 频道服务(UDP/TCP 7001) |
| 7 | /home/neople/dbmw_guild | ./df_dbmw_r dbmw_gld_cain start & | 公会数据库中间件(TCP/UDP 20403) |
| 8 | /home/neople/dbmw_mnt | ./df_dbmw_r dbmw_mnt_cain start & | 监控数据库中间件(TCP/UDP 20203) |
| 9 | /home/neople/dbmw_stat | ./df_dbmw_r dbmw_stat_cain start & | 统计数据库中间件(TCP/UDP 20303) |
| 10 | /home/neople/auction | ./df_auction_r cfg/auction_cain.cfg start & | 拍卖行(UDP/TCP 30803) |
| 11 | /home/neople/point | ./df_point_r cfg/point_cain.cfg start & | 点券服务(UDP/TCP 30603) |
| 12 | /home/neople/guild | ./df_guild_r gld_cain start & | 公会服务(UDP/TCP 30403) |
| 13 | /home/neople/statics | ./df_statics_r stat_cain start & | 统计服务(UDP 30503) |
| 14 | /home/neople/coserver | ./df_coserver_r coserver start & | 协同服务(UDP 30703) |
| 15 | /home/neople/community | ./df_community_r community start & | 社区服务(TCP 31100) |
| 16 | /home/neople/secsvr/gunnersvr | ./gunnersvr -t30 -i1 & | 安全模块 - gunner |
| 17 | /home/neople/secsvr/zergsvr | ./secagent & + ./zergsvr -t30 -i1 & | 安全模块 - zerg(反作弊) |
| 18 | /home/neople/game | ./df_game_r siroco11 start & | 游戏主逻辑服务器 |
每个子服务启动前都会执行 chmod 777 *、清理 pid 和 log 文件。
服务端主要目录
/home/neople (6.1 GB) 包含 19 个子目录:
/home/neople/
├── auction/ # 拍卖行服务
├── bridge/ # 网桥
├── channel/ # 频道
├── community/ # 社区
├── coserver/ # 协同服务
├── dbmw_guild/ # 公会 DB 中间件
├── dbmw_mnt/ # 监控 DB 中间件
├── dbmw_stat/ # 统计 DB 中间件
├── game/ # ★ 游戏核心(36M df_game_r + Script目录)
│ ├── cfg/ # siroco06~siroco56 配置文件
│ └── Script/ # 游戏脚本
├── guild/ # 公会
├── manager/ # 管理器
├── monitor/ # 监控
├── point/ # 点券
├── relay/ # 中继(relay_200~relay_224)
├── secsvr/ # 安全模块
│ ├── gunnersvr/ # gunner 反作弊
│ └── zergsvr/ # zerg 反作弊(1622万字节二进制)
├── statics/ # 统计
└── stun/ # STUN 穿透
当前监听端口
目前服务没有运行(停止状态),当前仅监听了系统服务:
| 端口 | 协议 | 进程 |
|---|---|---|
| 22 | TCP | sshd |
| 25 | TCP | master(Postfix) |
| 3306 | TCP | mysqld(MySQL 数据库) |
如果所有服务启动,将监听以下端口(来自配置文件):
| 端口范围 | 端口号 | 服务 | 协议 |
|---|---|---|---|
| 系统 | 3306 | MySQL | TCP |
| 游戏频道 | 10006~10056 * | df_game_r (TCP) | TCP目前仅11频道生效,也就是10011端口 |
| 游戏频道 | 11006~11056 * | df_game_r (UDP) | UDP目前仅11频道生效,也就是11011端口 |
| 中继 | 7200(~7224) | df_relay_r | TCP/UDP目前仅配置7200端口也可用 |
| 网桥 | 7000 | df_bridge_r | TCP/UDP |
| 频道 | 7001 | df_channel_r | TCP/UDP |
| 监控 | 30303 | df_monitor_r | TCP/UDP |
| 管理 | 40401 | df_manager_r | TCP/UDP |
| 拍卖 | 30803 | df_auction_r | TCP/UDP服务端没监听,暂不配置 |
| 点券 | 30603 | df_point_r | TCP/UDP服务端没监听,暂不配置 |
| 公会 | 30403 | df_guild_r | TCP/UDP |
| 统计 | 30503 | df_statics_r | UDP |
| 协同 | 30703 | df_coserver_r | UDP |
| DB中间件 | 20203、20303、20403 | df_dbmw_r | TCP/UDP |
| 社区 | 31100 | df_community_r | TCP |
| STUN | 2311~2313 | df_stun_r | UDP |
| 交换 | 20006~20056 * | df_game_r (exchange) | TCP目前仅11频道生效,也就是20011端口 |
| IPG | 9006 * | IPG/nxj_ipg | - |
重要
每个 siroco 频道配置不同端口,上述以频道 11(端口号末尾为11) 为例
MySQL 依赖
版本:MySQL 5.1.73 (Red Hat),正在运行
数据目录:/var/lib/mysql (43 MB)
配置:/etc/my.cnf — 字符集 latin1,datadir=/var/lib/mysql
涉及的数据库(来自配置文件):
| 数据库 | 用途 | 出现位置 |
|---|---|---|
| d_taiwan | 主游戏数据库 | game, dbmw_mnt, dbmw_guild, dbmw_stat 配置 |
| d_channel | 频道数据库 | bridge 配置 |
| taiwan_cain_2nd | 游戏辅助库 | auction, point 配置 |
| taiwan_cain_auction_gold | 拍卖行金币库 | auction 配置 |
| taiwan_cain_auction_cera | 拍卖行点券库 | point 配置 |
数据库访问凭证:
- 用户:game
- 密码(已混淆/哈希):20e35501e56fcedbe8b10c1f8bc3595be8b10c1f8bc3595b
- Bridge 另有密码:uu5!^%jg
写死 IP 的配置文件
192.168.200.131 出现在以下关键配置中(需修改):
| 文件 | 硬编码 IP |
|---|---|
| /home/neople/game/cfg/siroco*.cfg (23个文件) | 192.168.200.131 |
| /home/neople/bridge/cfg/bridge.cfg | 192.168.200.131 |
| /home/neople/channel/cfg/channel.cfg | 192.168.200.131 |
| /home/neople/relay/cfg/relay_200.cfg | 192.168.200.131 |
| /home/neople/auction/cfg/auction_cain.cfg | 192.168.200.131 |
| /home/neople/point/cfg/point_cain.cfg | 192.168.200.131 |
| /home/neople/guild/cfg/gld_cain.cfg | 192.168.200.131 |
| /home/neople/monitor/cfg/mnt_cain.cfg | 192.168.200.131 |
| /home/neople/coserver/table/server_config.tbl | 192.168.200.131 |
| /home/neople/dbmw_/cfg/.cfg (3个文件) | 192.168.200.131 |
另外还有 192.168.1.200 和 192.168.1.99 出现在 relay_201~relay_224 配置中(可能是其他中继配置,当前主用的是 relay_200 即 192.168.200.131)。
二进制文件也包含该 IP:
- /home/neople/monitor/df_monitor_r
- /home/neople/coserver/df_coserver_r
迁移到云服务器应打包的目录
| 优先级 | 目录 | 大小 | 原因 |
|---|---|---|---|
| 必须 | /home/neople | 6.1 GB | 所有服务端程序、配置、脚本 |
| 必须 | /var/lib/mysql | 43 MB | MySQL 数据文件 |
| 必须 | /root/run | — | 启动脚本 |
| 建议 | /etc/my.cnf | — | MySQL 配置 |
| 可选 | /etc/hosts | — | 只需确认无特殊条目(目前无) |
迁移步骤概述:
1. 将 /home/neople 和 /var/lib/mysql 打包为 tarball,传输到云服务器
2. 云服务器需安装 CentOS 6 x86_64(因为 df_game_r 是 32-bit ELF,依赖 glibc 2.6+,CentOS 6 兼容性最好)
3. 安装 MySQL 5.1/5.5/5.6
4. 恢复 MySQL 数据到 /var/lib/mysql
5. 全局替换配置文件中 192.168.200.131 为新的云服务器 IP
6. 修改 /home/neople/relay/cfg/relay_200.cfg 等配置中的 IP
7. 修改 /home/neople/coserver/table/server_config.tbl 中的 IP 和端口映射
8. 云服务器安全组放通所有端口(iptables 为空,无需特殊规则)
提示
启动整个服务约需要 7.5G 物理内存。
- 实际测试给vmware虚拟机分配2G内存,在配置swap分区的情况下,只要物理磁盘没占满,也是可以正常使用的。
