当前位置:
文章详情

关于用 Docker 免费搭建 DNF 台服这件事

2021-12-13 19:30:45 449点赞 2383收藏 346评论

前言

事情是这样的,前段时间在值得买看到了一篇如何搭建 DNF 台服的文章,看了之后心中的勇士之魂蠢蠢欲动,于是自己的搭了一个玩玩。但是搭建 DNF 台服是有系统限制的,只有在 centOS 上能用,而且还有版本限制,网上大多都是使用 centOS 5.8 系统,我实测 cetnOS 6.11 也行。但这两个系统已经廉颇老矣,特别是 cetnOS 5.8,官方早已停止维护,各大云服务厂商甚至都不会提供这个系统,就算能安装,更新源文件也麻烦。

就在这个时候,突然就想到还有 Docker 这么好用的玩意,上 Docker Hub 一搜,果然有镜像,马不停蹄的搭了一个试试。顺便分享一下教程。

这篇文章就可以帮助你在任何支持 Docker 的机器上搭建一个免费的 DNF 台服。本文需要用到 SSH 命令行操作,可能会劝退一部分人,但我还是建议你看完,纯命令行的搭建难度也不是很高,如果你用群晖之类的 Linux 系统的 NAS 完全可以用纯 UI 界面搭建。

需要准备的东西

建议可以先开始下载,一边下载一边看教程。

理论上所有能够运行 Docker 的 Linux 系统都能安装(WINDOWS 没测试过),包括那些 NAS 系统,比如:群晖 DSM、威联通 QNAP、UNRAID、TrueNAS 等等。这里我用 Ubuntu 2104 虚拟机来演示。

SSH 登陆

打开 PUTTY,输入服务器的 IP 和用户名密码的参数,点击登陆。

输入 IP 地址输入 IP 地址

依次输入用户名和密码

关于用 Docker 免费搭建 DNF 台服这件事

更新以及安装 Docker

连接到服务器第一件事获取 root 权限和更新一下软件源。

  • sudo -i

  • apt update

先安装一个 Docker,下面用到官方的脚本进行安装。

  • curl -sSL <https://get.docker.com/> | sh

  • docker --version #如果有版本信息反馈表示安装成功

安装成功后的反馈安装成功后的反馈

设置 SWAP 虚拟内存

因为这个 DNF 台服容器非常消耗内存,作者推荐设置 8G SWAP 虚拟内存,所以我们这就来设置一下。如果你的机器已经大于 8G 内存,可以跳过这一步。

先输入下面命令

  • swapon --show

Ubuntu 默认创建的 SWAPUbuntu 默认创建的 SWAP

从返回的命令可以看到现在系统内已经有 4G SWAP,存储在 /swap.img 文件里,显然只有 4G 是不够的,我们要把它删了重新新建一个。

删除 SWAP

  • swapoff -v /swap.img

删除 fastab 文件最后一行 swap 的配置文件下,命令如下:

  • nano /etc/fstab

删除最后一行所有内容删除最后一行所有内容

删除完后按 Crtl + X 推出,Y 保存,回车确定。

  • rm /swap.img

这里就已经成功把 SWAP 卸载。

创建 SWAP

下面创建一个文件并设置为 swap。

  • fallocate -l 8G /swapfile

  • chmod 600 /swapfile

  • mkswap /swapfile

  • swapon /swapfile

  • nano /etc/fstab

在最后一行粘贴以下内容,然后按 Crtl + X ,再按 Y ,再按回车。

/swapfile swap swap defaults 0 0

把上面的代码粘贴到最后一行把上面的代码粘贴到最后一行

最后输入命令看一下返回信息,如果和我下面一样就表示成功了。

  • swapon --show

最下面的返回结果已经显示 8G最下面的返回结果已经显示 8G

创建数据库

首先创建一个文件夹用于存放数据库和日志等文件。

  • mkdir /dnf

把镜像拉回到本地并初始化数据库 (下面一整段复制粘贴到终端)。

docker run --rm -v /dnf/log:/home/neople/game/log -v /dnf/mysql:/var/lib/mysql -v /dnf/data:/data 1995chen/dnf:stable /bin/bash /home/template/init/init.sh

这里如果显示出这个数据库正在启动的界面就代表成功了,这里会在前台跑一个生成数据库的脚本,并不是卡住了,要耐心等大概 10 分钟就行了。

容器创建成功,数据库正在启动容器创建成功,数据库正在启动

显示这个界面就代表初始化已经完成了(主要看最后三行)。初始化完成后容器会自动删除。

数据库创建成功数据库创建成功

搭建服务器端

接下来第二步就是重新启动容器并加上其他一些必要的参数。命令我放到下面,如果前面你的文件路径设置和我完全一样,下面这些命令直接复制粘贴,如果修改了位置,那下面的三个 -v 参数前面的路径请替换成自己设置的路径。

docker run -d --name=dnf -e PUBLIC_IP=192.168.5.235 -e DNF_DB_ROOT_PASSWORD=88888888 -e GM_ACCOUNT=gm_user -e GM_PASSWORD=gm_pass -v /dnf/log:/home/neople/game/log -v /dnf/mysql:/var/lib/mysql -v /dnf/data:/data -p 3000:3306/tcp -p 7600:7600/tcp -p 881:881/tcp -p 20303:20303/tcp -p 20303:20303/udp -p 20403:20403/tcp -p 20403:20403/udp -p 40403:40403/tcp -p 40403:40403/udp -p 7000:7000/tcp -p 7000:7000/udp -p 7001:7001/tcp -p 7001:7001/udp -p 7200:7200/tcp -p 7200:7200/udp -p 10011:10011/tcp -p 31100:31100/tcp -p 30303:30303/tcp -p 30303:30303/udp -p 30403:30403/tcp -p 30403:30403/udp -p 10052:10052/tcp -p 20011:20011/tcp -p 20203:20203/tcp -p 20203:20203/udp -p 30703:30703/udp -p 11011:11011/udp -p 2311-2313:2311-2313/udp -p 30503:30503/udp -p 11052:11052/udp --cpus=1 --memory=1g --memory-swap=-1 --shm-size=8g --restart always 1995chen/dnf:stable

PUBLIC_IP 等号后面填你服务器的公网 IP,我已经在命令行上用粗字标注了,如果你是局域网内搭建的,可以和我一样填内网 IP。(这个一定要改)

-e 参数可以自行设置数据库账号密码

-v 参数可以自行设置数据库等位置

输入完命令之后会有一个反馈提示。

关于用 Docker 免费搭建 DNF 台服这件事

我们先用命令查看容器有没有在后台运行,如果有返回结果表示容器在后台运行。

  • docker ps

可以看到容器在后台运行中可以看到容器在后台运行中

稍稍等候两到三分钟后,输入下面的命令查看日志。

  • grep -rHi 'GeoIP Allow Country Code' /dnf/log

如果没有返回信息稍等片刻再输入一次试试,直到有反馈信息为止。看到这里有返回了地区信息,就代表服务端已经搭建并启动成功了。

出现多个区域代码表示服务器成功搭建并启动出现多个区域代码表示服务器成功搭建并启动

客户端设置

离成功就差最后一步了。现在的操作就要回到我们熟悉的桌面操作了。下载并解压文章前面给的网关文件。

打开前面下载的统一网关,点到第二项,把你的服务器地址填上,如果你上面没有修改 Docker 参数的话,可以直接抄我的作业(IP 除外)。确保服务器防火墙放行了对应端口和所有参数都填好了以后点击一下连接。

复制下面参数按照截图填到对应的位置复制下面参数按照截图填到对应的位置

  • 通讯密钥: 763WXRBW3PFTC3IXPFWH

  • 登录器端口: 7600

  • 网关端口:881

  • GM账户: gm_user

  • GM密码: gm_pass

  • 登陆器版本:20180307

如果没有返回错误信息就代表连接网关成功,接下来就是生成启动器。

点到第一页,把版本号、IP 地址、密钥等参数填到对应的地方,点击增加,再点击生成,然后程序就会帮你生成一个独一无二的登陆器,把登陆器复制到 DNF 台服客户端的根目录。

同上同上

再点击最后一页,依次“获取当前密码→生成随机密码→应用当前密码”,再点击打开文件,把解压文件里面的 Script.pvf 文件选上,然后点击应用,得到一个新的 Script.pvf 文件,把这个文件放回 DNF 台服客户端内即可。

关于用 Docker 免费搭建 DNF 台服这件事

打开客户端目录中的统一启动器,如果没有报错,证明正常连上服务器,点击右下的账号注册,信息随便填,账号和密码记住就好。

登陆器主界面登陆器主界面

注册账号注册账号

输入刚创建的账号和密码稍等片刻就可以看到耳熟能详的掉线 BGM 了

熟悉的界面熟悉的界面

创建角色创建角色

正常游玩正常游玩

容器默认会随着系统开启而打开,如果容器进程被杀或者启动失败,可以用下面的命令:

  • docker stop dnf #关掉 DNF 容器

  • docker start dnf #打开 DNF 容器

  • docker restart dnf #重启 DNF 容器

至此,Docker 搭建 DNF 台服是成功了, 感谢镜像作者提供了另一种搭建方法,摆脱了 CentOS 系统的束缚,其他 Linux 系统也可以用 Docker 灵活搭建。容器还有其他可自定义选项,更加详细的文档请访问作者的 Github 中查看,有搭建方面的问题也可以留言或者去作者的群里面询问一下。

总的来说 Docker 对比虚拟机搭建还是有着不少优势的,Docker 不怎么挑系统,对硬件的使用率也要高于虚拟机。而且就向开头所说,如果你用的群晖、威联通等带 Docker UI 的 NAS 系统,搭一个这样的私服也非常简单方便。如果服务器、NAS 这些你都没有,那你还能用 WIN10 自带的 WSL 子系统搭建,反正路子很广,多花一点点时间学习,不比去淘宝花钱买一个好?

关于用 Docker 免费搭建 DNF 台服这件事

最后希望大家都能搭建成功,复兴阿拉德大陆的重任就交给你们了。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
346评论

  • 精彩
  • 最新
  • 置顶 注意:Docker 安装脚本哪里要把 curl -sSL | sh 两边的括号去掉,变成 curl -sSL 去看看 | sh 。这个是值得买自己屏蔽网址的操作,大家务必记得改一改。

    校验提示文案

    提交

    Hikarunara

    作者

    Hikarunara

    作者
    勘误:最后客户端那里忘了一部,大家需要下载网关补丁,把所有文件都覆盖到客户端文件夹内。链接:去看看 提取码:2333

    校验提示文案

    提交

    Hikarunara

    作者

    Hikarunara

    作者
    如果最后卡在频道连接哪里,可以尝试一下把电脑的 hosts 修改一下,hosts 目录:C:\Windows\System32\drives\etc\hosts 用记事本打开,在最后一行添加你的服务器 IP 空格 start.dnf.tw 。比如我的 IP 是 192.168.5.235,就在最后一行添加 192.168.5.235 start.dnf.tw 。然后保存刷新一下 dns 缓存就行。

    校验提示文案

    提交
    还有18条回复
    收起所有回复
  • 毒奶粉,毁我青春,赔钱!

    校验提示文案

    提交
    这事你可能得找腾讯聊聊 [鼓掌]

    校验提示文案

    提交
    当年开罐子搞了个王者之星,卖了500

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 奇怪的知识增加了

    校验提示文案

    提交
    有用的知识增加了 [口水]

    校验提示文案

    提交
    这有啥用。。。

    校验提示文案

    提交
    收起所有回复
  • 去年也是自己搭建了一个私服,用的手上没用到的阿里云学生机。玩了几天索然无味。照着代码表把以前没玩过的各种装备体验了一下就完事了。跟小伙伴刷图的感觉再也回不去了。。 [无语]

    校验提示文案

    提交
    现在跟小伙伴一起回味一下 85 版本也是一次很好的尝试。没有打算花很长时间在里面,偶尔来劲了就叫上伙伴打两把。

    校验提示文案

    提交
    好几年前弄的台服。只有60级的上限。没想到后来更新了那么多。就算架设好,没人一起玩了啊

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • 搭建个壕宅?

    校验提示文案

    提交
    小区房住不起就自己搭一个别墅🏡

    校验提示文案

    提交
    收起所有回复
  • 这么说,DNF有私服了? [邪恶]

    校验提示文案

    提交
    挺早之前就有了

    校验提示文案

    提交
    好像7,8年了吧

    校验提示文案

    提交
    收起所有回复
  • 这个搭完有六字真言吗

    校验提示文案

    提交
    如果你开挂,那也有可能六字真言 [吃药]

    校验提示文案

    提交
    收起所有回复
  • 怎么给自己搞装备呢

    校验提示文案

    提交
    网关可以发装备,网上搜一下物品代码,复制到网关那里就行了

    校验提示文案

    提交
    收起所有回复
  • 可以一人搭建后几个人一起玩吗

    校验提示文案

    提交
    有公网 IP 或者你租一台服务器是可以的,防火墙放行对应端口就行了

    校验提示文案

    提交
    收起所有回复
  • 现在台服和国服有啥区别

    校验提示文案

    提交
    台服已经关服了,现在的私服都是基于台服关服前的版本改的。

    校验提示文案

    提交
    收起所有回复
  • 先收藏,明天搞一搞

    校验提示文案

    提交
    想要尝试搭建的朋友们务必看一下置顶,帖子里面有一个操作我忘了写,置顶上面补全了。真是不好意思

    校验提示文案

    提交
    为什么我服务器选择失败啊,输入查看/dnf/log失败

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • 职业平衡也是老版嘛 [脸红] 有点想试试异界套打打老乌龟。以前骚套路太多了。

    校验提示文案

    提交
    老版,甚至没有二觉,打异界和魂图挺有意思的

    校验提示文案

    提交
    [吐血] 无限怒气套 没爆出来独孤玄铁剑。。。。倒是冥炎刀强化13 [小怒] 平砍红眼 后面就没玩了

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 不错不错,虽然我不玩DNF,但你这曲线救国的方式我还是支持的。我其实并不喜欢docker,之前自己做个些简单的docker自用,发现这里面总有些不确定因素存在,也可能是我水平有限,技术不够强大。另外从维护角度来说,我还是倾向虚拟机,配置好了一个ovf保一万年。

    校验提示文案

    提交
    Docker 图个方便部署相对简单很多,另外DNF 私服要求的系统太挑剔,centOS 老版本官方早就不维护了,更新源又麻烦,只能另辟蹊径用 Docker 来实现。

    校验提示文案

    提交
    另外,感谢支持 [白菜君_给赞]

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 有无限游戏币点券吗?

    校验提示文案

    提交
    网关工具可以发金币点券,相当于自己就是 GM

    校验提示文案

    提交
    请问网关工具的名字叫啥?

    校验提示文案

    提交
    收起所有回复
  • 之前买了个vps需要啥配置2c750m可以带得动吗

    校验提示文案

    提交
    内存小了点,开 SWAP 也许可以

    校验提示文案

    提交
    收起所有回复
  • 我照着教程弄完了,但是最后用登录器复制到根目录一直弹“请将登录器放在游戏根目录”,这怎么破?

    校验提示文案

    提交
    网关布丁没有覆盖,看一下置顶评论有补充

    校验提示文案

    提交
    谢谢,能进了,但是在频道界面10就闪退,这个有办法解决吗?

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • 给个下载链接,一起玩

    校验提示文案

    提交
    搭建需要的所有软件都在文章里面了

    校验提示文案

    提交
    收起所有回复
  • 所以就是自己搞一个台服私服?能搞国服不?

    校验提示文案

    提交
    目前只有台服版本流出。Docker 这个版本是基于台服原版修改过来的,还是比较接近国服 85 版本的。

    校验提示文案

    提交
    100都出来几年了,这85版本不够玩啊,还有就是组队打团都困难啊 [喜极而泣]

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 技能太差了,

    校验提示文案

    提交
    我个人就是差不多这个版本退坑的,没有玩过后面的版本,重新体验一遍还是熟悉的味道

    校验提示文案

    提交
    拿可以试试看

    校验提示文案

    提交
    收起所有回复
  • [喜极而泣] openwrt里面的docker有大佬尝试过吗

    校验提示文案

    提交
    在镜像作者群里就有人用的 openWRT 搭的,你可以去问问

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章

Hikarunara

Ta还没有介绍自己

发文累计被2433人收藏

关注 打赏
作者其他文章
最新文章 热门文章
2.3K
扫一下,分享更方便,购买更轻松