智辉科技

智辉科技

复兴阿拉德大陆!用 Docker 免费搭建 DNF 台服(干货):手把手教程

admin
前言复兴阿拉德大陆!用 Docker 免费搭建 DNF 台服(干货):手把手教程-第1张-游戏相关-智辉科技

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

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

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

需要准备的东西一个装有 Linux 系统的电脑/服务器/VPSDNF 台服客户端(链接私聊) 提取码:fybn网关文件(链接私聊) 提取码:2333PUTTY会用键盘的人需要把网关文件补丁覆盖到客户端文件夹内(链接私聊),提取密码:2333

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

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

SSH 登陆

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

输入 IP 地址

依次输入用户名和密码

更新以及安装 Docker

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

sudo -iapt update

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

curl -sSL <https://get.docker.com/> | shdocker --version #如果有版本信息反馈表示安装成功

安装成功后的反馈

设置 SWAP 虚拟内存

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

先输入下面的命令

swapon --show

Ubuntu 默认创建的 SWAP

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

删除 SWAPswapoff -v /swap.img

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

nano /etc/fstab

删除最后一行所有内容

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

rm /swap.img

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

创建 SWAP

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

fallocate -l 8G /swapfilechmod 600 /swapfilemkswap /swapfileswapon /swapfilenano /etc/fstab

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

/swapfile swap swap defaults 0 0

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

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

swapon --show

最下面的返回结果已经显示 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 ps

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

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

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

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

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

客户端设置

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

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

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

通讯密钥: 763WXRBW3PFTC3IXPFWH登录器端口: 7600网关端口:881GM账户: gm_userGM密码: gm_pass登陆器版本:20180307

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

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

同上

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

依次点击按键,生成 PVF

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

登陆器主界面

注册账号

输入刚创建的账号和密码稍等片刻就可以看到耳熟能详的掉线 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 子系统搭建,反正路子很广,多花一点点时间学习,不比去淘宝花钱买一个好?

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

本文经“什么值得买”社区作者@Hikarunara授权转载,文章内容仅代表作者观点,与本站立场无关,未经授权请勿转载。

标签 dnf完整客户端