DNF私服跑不出五国排查修复图文攻略(8H8G香港机实战)

DNF私服「跑不出五国」排查修复图文攻略

实战机:公益云-香港 8H8G(GYY-XG-8H8G) · 系统 CentOS 7 · DP无脑一键端 · 全程真实命令与输出

故障现象:网关正常,客户端拉不出频道列表根因:服务端进程全部未运行修复耗时:约20分钟

〇、故障现象与结论速览

✗ 故障现象BaoYu 网关正常(Gateway run ok),MySQL 正常,但客户端登录后选区列表空白,五个国家频道一个都出不来。
✓ 排查结论游戏服务进程(df_stun_r / df_manager_r / df_game_r 等十几个)一个都没在运行。网关有自启,但 ./run 不会开机自动执行,上一次手动启动的进程也没有存活。

一句话根因:“五国”就是 df_game_r 跑起来的国家频道进程。网关只是门卫,门卫活着不代表里面的服务在营业——没有执行 ./run(或执行后进程未存活),频道列表自然是空的。

一、六步排查全过程(附真实输出)

1

体检系统环境:先排除机器本身的问题

$ cat /etc/os-release | head -3; free -h; df -h / | tail -1
NAME=”CentOS Linux” VERSION=”7 (Core)” ← 教程要求7系 ✓
Mem: 7.6G total / 6.8G free ← 内存充足 ✓
/dev/vda1 40G 9.2G 31G 23% / ← 磁盘正常 ✓
系统、内存、磁盘全部正常 → 问题方向锁定服务端自身。

2

查进程:全军覆没的 df_xxx_r(关键一步)

$ ps -ef | grep -iE ‘game|dof|bywg|mysql’ | grep -v grep
mysql 3688 … /usr/local/mysql/bin/mysqld … ← 只有 MySQL 活着
(过滤 df_stun_r / df_manager_r / df_channel_r / df_game_r …)
→ 结果:游戏进程一个都没有!
$ ls -la /home/neople/game/ | grep -E ‘df_game_r|Script’
-rwxr-xr-x df_game_r 36360954 ← 主程序在(今天13:22刚更新过)
-rwxr-xr-x Script.pvf 603850517 ← 600MB PVF 也在
文件齐全但进程全无 → 这就是”跑不出五国”的直接原因。继续往下查为什么没跑。

3

查端口:佐证服务端没营业

$ ss -tulnp | grep -E ‘8188|3306|10012|10052|10056|11012|7000|7001|7200’
tcp *:8188 users:((“BaoYu”,…)) ← 网关活着(难怪能登录到选区界面)
tcp :::3306 users:((“mysqld”,…)) ← 数据库活着
→ 10012/10052/10056/11012/7000/7001/7200 全部没有监听
网关 8188 只是”登录通道”,频道列表靠 df_game_r 在 10012/10052/10056 上注册。端口空 = 频道空。

4

单跑 df_game_r 抓现场:发现”静默退出”陷阱

$ cd /home/neople/game
$ timeout 15 env LD_PRELOAD=”/dp2/libdp2pre.so” ./df_game_r siroco12 start
ERROR: ld.so: object ‘/dp2/libdp2pre.so’ … cannot be preloaded: ignored.
**********************************************************
* DUNGEON & FIGHTER Open Beta Test on 2005.08.10~ *
**********************************************************

[!] Check Args Success
[!] Server key Check OK
[!] Init Log Success ← 然后……进程直接退出(exit 0),没有任何报错!
大坑:df_game_r 依赖 run 脚本里先启动的十几个基础服务(monitor/manager/relay/bridge/channel/dbmw/guild/auction/point/statics/coserver/community/gunnersvr/zergsvr)。基础服务没起来时单跑 df_game_r,它不会报错,只会静默退出——很多人在这里误以为”服务端坏了”。

5

完整执行 ./run:全套服务拉起

$ cd /root && nohup ./run > /tmp/run.out 2>&1 & ← nohup 防止 SSH 断开杀进程
$ sleep 30; ps -ef | grep df_ | grep -v grep
df_stun_r / df_monitor_r / df_relay_r / df_manager_r / df_channel_r
df_bridge_r / df_dbmw_r ×3 / df_guild_r / df_statics_r / df_coserver_r
df_community_r / gunnersvr / secagent … 全部拉起!
df_game_r siroco12 start
df_game_r siroco52 start
df_game_r siroco56 start ← 三国频道开始加载
run 脚本会先起基础服务,最后 sleep 1 秒一个地拉起三个 df_game_r。此时还没有上线,因为 600MB 的 PVF 才刚开始读。

6

耐心等 15 分钟,看日志等上线(不是卡死!)

$ tail -f /home/neople/game/log/siroco12/Log*.init
[13:54:13] – All DB Open Success ← 14个数据库全连上
[13:54:53] – Loading Skills Success
[13:54:54] – Loading Items …
[13:57:07] – Loading Avatar Roulette Success ← 中间2分钟一行没有,其实在狂算CPU
[14:08:41] GeoIP Allow Country Code : CN/HK/KR/MO/TW
$ ss -tlnp | grep -E ‘10012|10052|10056’
LISTEN *:10012 df_game_r (siroco12) ← 上线!
LISTEN *:10052 df_game_r (siroco52)
LISTEN *:10056 df_game_r (siroco56) ← 五国全部注册完成
修复成功。top 里能看到 siroco12 吃满一核(nice -20 最高优先级)、另两个各 50%+,三实例并发加载 600MB PVF 就是要 15 分钟左右。CPU 拉满 + 日志在动 = 正常加载,别手贱重启。

二、本端实际端口表(安全组照这个开,别照教程抄!)

端口 协议 归属 说明
10012 / 11012 TCP / UDP df_game_r (siroco12) 1区2频道 主频道
10052 / 11052 TCP / UDP df_game_r (siroco52) 5区2频道
10056 / 11056 TCP / UDP df_game_r (siroco56) 5区6频道
7000 TCP / UDP df_bridge_r 桥接
7001 TCP df_Script_r 频道脚本
7200 TCP df_relay_r 中继
2311 / 2312 / 2313 UDP df_stun_r 打洞
8188 TCP BaoYu 网关 登录网关
重要:网上教程通篇让你开 11011/10011,但本端频道端口是 10012/10052/10056 + 11012/11052/11056。安全组没开对,就算五国跑起来客户端也连不上——这是第二个大坑。31003/9006 本端并未使用,不用开。

三、避坑清单(本次实战踩过的坑)

坑 现象 正确姿势
只跑了网关 能登到选区界面但列表空白 网关≠服务端,每次开机后必须 cd /root && ./run
以为卡死就重启 日志停在 Loading 十几分钟不动 top 看 df_game_r 在吃 CPU 就是正常加载,等够 15 分钟
单跑 df_game_r 静默退出,毫无报错 必须用 run 全套启动,基础服务是前置依赖
SSH 断开杀进程 跑完关窗口,回来进程全没了 用 nohup ./run > /tmp/run.out 2>&1 & 启动
端口照抄教程 服务起来了还是连不上 ss -tlnp 看实际监听端口,安全组照实开
DP 插件缺失 LD_PRELOAD 报 cannot be preloaded 不影响跑五国;要镶嵌/14键功能需补回 /dp2 目录
内存不够 三频道跑满后 7.1G/7.6G 8G 机器别再叠服务;free -h 里 available 低于 300M 要警惕

四、日常运维命令速查

# 启动全套服务端(含五国)
cd /root && nohup ./run > /tmp/run.out 2>&1 &

# 看加载进度(判断卡没卡)
tail -f /home/neople/game/log/siroco12/Log*.init

# 确认五国进程(应看到 siroco12 / siroco52 / siroco56 三行)
ps -ef | grep df_game_r | grep -v grep

# 确认频道端口上线(应有 10012/10052/10056)
ss -tlnp | grep df_game_r

# 看内存与CPU
free -h; top -bn1 | grep df_game_r

# 重启网关(只动网关,不影响频道)
cd /root && ./Restart

开机自启建议:把 nohup /root/run >> /var/log/dof-run.log 2>>&1 & 写入 /etc/rc.local 并 chmod +x /etc/rc.d/rc.local,重启后服务端自动拉起(网关 BaoYu 已有自启)。
DNF私服运维实战系列 · GYY-XG-8H8G 实机排查记录 · 数据均来自服务器真实输出
© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容