Docker一键部署DNF私服完整指南:支持局域网与外网联机
本教程旨在分享一个便捷项目,即通过Docker容器技术实现地下城与勇士(DNF)私服的一键化部署。该方法简化了传统搭建流程,无论是局域网内部联机还是外网访问,均可轻松实现。项目设计初衷是避免复杂的依赖环境配置、手动编译源码或编写大量脚本,只需利用Docker即可快速启动服务,方便与朋友偶尔聚会娱乐。
对于地下城与勇士这款经典游戏,众多老玩家都承载着深厚的情感与记忆。尽管可能因各种原因早已离开官方服务器,但那些游戏时光依然令人怀念。在此,让我们共同回顾一些过往的游戏画面。





项目概述与特性
项目的完整名称为1995chen/dnf,可以在GitHub平台直接搜索找到。该项目将地下城与勇士(常被称为毒奶粉、DNF或DOF)的游戏服务端整合为一个独立的Docker镜像。它以官方CentOS-5/6/7系统镜像作为基础,通过预设环境变量和初始化脚本,实现了应用的快速部署与运行。
该镜像对CPU资源需求不高,内存占用处于合理范围,大约2GB至4GB内存即可流畅运行。当前镜像版本基于85级游戏内容,处于安图恩团队副本上线前的过渡阶段。如果希望体验其他版本,后续可以自行替换相应的PVF文件。项目维护者更新较为频繁,感兴趣的用户可以持续关注其动态。
重要提示:尽管此项目技术支持外网访问,但严禁用于商业开服或任何盈利性运营。仅供个人学习、测试及非商业性质的娱乐用途。
详细部署步骤
本文以威联通NAS设备为例,演示通过Docker Compose方式部署服务。部署代码已预设为外网访问模式,若仅需局域网使用,只需将IP地址替换为内部网络地址即可。
以下为Docker Compose部署代码。建议初次尝试时,除IP地址外,先保持其他默认配置不变,待成功运行后,再清理数据库文件并修改个性化设置重新部署:
services:
dnf:
image: 1995chen/dnf:centos7-latest # 推荐使用此版本
container_name: dnf
hostname: dnf
cap_add:
- NET_ADMIN
environment:
- PUBLIC_IP=xxx.xxx.xxx.xxx # 替换为你的公网或内网IP
- WEB_USER=root # 自定义Web管理用户名
- WEB_PASS=123456 # 自定义Web管理密码
- DNF_DB_ROOT_PASSWORD=88888888 # 自定义数据库root密码,需与后续设置对应
- GM_ACCOUNT=gmuser # 自定义游戏管理员账号
- GM_PASSWORD=gmpass # 自定义游戏管理员密码
- CLIENT_POOL_SIZE=10
ports:
- "180:180" # supervisor web管理端口
- "3306:3306" # MySQL数据库端口
- "7600:7600" # 统一登录器端口
- "881:881" # 统一网关端口
- "7001:7001" # df_channel_r TCP端口
- "7001:7001/udp" # df_channel_r UDP端口
- "30011:30011" # df_game_r[ch.11] TCP端口
- "31011:31011/udp" # df_game_r[ch.11] UDP端口
- "30052:30052" # df_game_r[ch.52] TCP端口
- "31052:31052/udp" # df_game_r[ch.52] UDP端口
- "7300:7300" # df_relay_r TCP端口
- "7300:7300/udp" # df_relay_r UDP端口
- "2311-2313:2311-2313/udp" # df_stun_r UDP端口范围
volumes:
- /share/Container/dnf/log:/home/neople/game/log
- /share/Container/dnf/mysql:/var/lib/mysql
- /share/Container/dnf/data:/data
shm_size: 8g
restart: always
在威联通NAS的Container Station中,选择创建新的应用程序,并将上述代码粘贴至配置区域。

启动前配置指南
首先,需要在路由器或防火墙中映射一系列必要的端口,以确保外部连接能够成功建立。这些端口涵盖了大区登录、频道通信等关键功能,更多频道端口可根据文档在上方部署代码中自行添加并映射。

接下来,访问项目主页下载以下三个必需的压缩文件包。

将所有压缩包解压到本地目录。

进入「DO补丁大合集V7.6」文件夹,其中包含三个关键文件。使用文本编辑器(推荐VSCode,避免使用Windows记事本)打开DNF.toml文件,将其中的IP地址修改为与部署代码中PUBLIC_IP变量一致的值。

然后将该文件夹内的三个文件全部复制到「地下城与勇士」游戏客户端文件夹中,遇到文件重复时选择覆盖替换。

随后打开「统一网管在线管理工具」文件夹,运行其中的可执行文件。该工具兼具网关管理和部分游戏管理功能,可用于发放装备、材料及进行增幅强化等操作,部署完成后可自行探索使用。

在工具界面点击「网关设置」。网关地址填写为PUBLIC_IP,网关端口为881,登录账号密码与部署时设定的GM_ACCOUNT和GM_PASSWORD一致,通信密钥固定为763WXRBW3PFTC3IXPFWH,登录器端口为7600。填写完毕后,点击网关端口旁的连接按钮,若参数正确则会显示连接成功,接着点击底部的「参数设置内容立刻生效」按钮保存配置。

接着切换至顶部的「登陆器设置」标签页。自定义服务器名称,登陆器版本选择20180307。然后填写线路名称、登录器端口7600、游戏地址和网关地址(均与PUBLIC_IP相同)。点击「添加」按钮后,填入相同的通信密钥,最后点击「生成登陆器」。

生成成功后,会弹出提示窗口。关闭管理工具进程后,会发现文件夹内新生成了一个Config.ini配置文件。将此新生成的两个文件也复制到「地下城与勇士」客户端文件夹中,同样覆盖已有文件。

至此,所有配置工作均已完成,可以启动游戏进行体验。
实际游玩展示
运行登录器,首先需要注册一个新的游戏账户。按照提示填写任意信息即可完成注册。

注册成功后,使用账户密码登录游戏。

选择并进入可用的游戏频道。

创建全新的游戏角色。


完成初始的新手引导任务。

经过简单体验后的角色站街画面。

总结与建议
对于希望重温旧日游戏时光的玩家,此部署方案提供了一个相对简便的途径。通过容器化技术,大大降低了自建游戏服务器的门槛。请注意始终遵守相关法律法规,仅将资源用于合法的学习与娱乐目的。