dnf登陆界面源文件 复兴阿拉德大陆!用 Docker 免费搭建 DNF 台服(干货):手把手教程
复兴阿拉德大陆!用 Docker 免费搭建 DNF 台服(干货):手把手教程
前言
事情是这样的,前段时间在值得买看到了一篇如何搭建 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 --showUbuntu 默认创建的 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 /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授权转载,文章内容仅代表作者观点,与本站立场无关,未经授权请勿转载。
wegame:地下城游戏的实用设置
地下城游戏的一些实用设置。游戏启动速度慢,可以检查一下游戏源文件是否存放在固态硬盘中。将其移动到固态硬盘中,启动速度可以提升一倍。在打团时,可以通过调整角色轮廓和怪物轮廓的颜色来确保自己的位置不易被忽略。帧数关闭垂直同步,将每秒帧数设置为300,可以解决游戏卡顿的问题。降低角色效果、调整画面比例、开启ui清晰化和画质提升等设置可以让画面更加清晰。将捡物品的快捷键设置为双斜杠加移动物品,可以实现一键捡物。在wegame中打开游戏辅助设置,可以设置自动补药的功能。选择好角色、设置好药品类型和血量阈值后,可以在HP低于35%时自动补充药品。如果角色伤害不足,可以通过氪金来解决。开启wegame中的游戏辅助设置,选择角色后,可以设置在HP低于一定值时自动补充MP或SP。
听说yum已死,那么就在centos7上使用dnf包管理工具
前言
dnf目前已经在Fedora上是默认的包管理器了,所以未来yum真的会被替代。今天来看看dnf好不好用。在 Fedora Core 22 中只有 DNF,官方不会提供 Yum 了。当然,如果你愿意,可以自己下载它。这个包仍然可以如同以往一样调用, Python API 也没变化,只是 yum 程序的名称被改名为 yum-deprecated 了,而且从命令行调用 yum 会被重定向到 DNF。这样,你就可以在系统上同时维持 Yum 和 DNF 了。同时dnf的所有参数命令和配置基本与yum没有区别,所以不用担心。
配置
RHEL8中默认使用的软件批量管理工具由原版本的yum换成了速度更快的dnf,原有的yum命令仅为dnf的软链接,当然依旧可以使用的。
dnf源文件所在目录依旧为/etc/yum.repos.d/下,但官方在发布Beta版本时并没有为此系统自带源文件,需要我们自行下载,和yum配置相同,此处省略。
安装dnf
yum install -y dnf
dnf help
[root@test ~]# dnf help
usage: dnf [options] COMMAND
主要命令列表:
alias List or create command aliases
autoremove 删除所有原先因为依赖关系安装的不需要的软件包
check 在包数据库中寻找问题
check-update 检查是否有软件包升级
clean 删除已缓存的数据
deplist 列出软件包的依赖关系和提供这些软件包的源
distro-sync 同步已经安装的软件包到最新可用版本
downgrade 降级包
group 显示或使用组信息
help 显示一个有帮助的用法信息
history 显示或使用事务历史
info 显示关于软件包或软件包组的详细信息
install 向系统中安装一个或多个软件包
list 列出一个或一组软件包
makecache 创建元数据缓存
mark 在已安装的软件包中标记或者取消标记由用户安装的软件包。
module 与模块交互。
provides 查找提供指定内容的软件包
reinstall 重装一个包
remove 从系统中移除一个或多个软件包
repolist 显示已配置的软件仓库
repoquery 搜索匹配关键字的软件包
repository-packages 对指定仓库中的所有软件包运行命令
search 在软件包详细信息中搜索指定字符串
shell 运行交互式的DNF终端
swap 运行交互式的 DNF 终端以删除或者安装 spec 描述文件
updateinfo 显示软件包的参考建议
upgrade 升级系统中的一个或多个软件包
upgrade-minimal 升级,但只有“最新”的软件包已修复可能影响你的系统的问题
可选参数:
-c [config file], --config [config file]
配置文件位置
-q, --quiet 静默执行
-v, --verbose 详尽执行
--version 显示 DNF 版本信息并退出
--installroot [path] 设置目标根目录
--nodocs 不要安装文档
--noplugins 禁用所有插件
--enableplugin [plugin]
启用指定名称的插件
--disableplugin [plugin]
禁用指定名称的插件
--releasever RELEASEVER
覆盖在配置文件和仓库文件中 $releasever 的值
--setopt SETOPTS 设置任意配置和仓库选项
--skip-broken 通过跳过软件包来解决依赖问题
-h, --help, --help-cmd
显示命令帮助
--allowerasing 允许解决依赖关系时删除已安装软件包
-b, --best 在事务中尝试最佳软件包版本。
-C, --cacheonly 完全从系统缓存运行,不升级缓存
-R [minutes], --randomwait [minutes]
最大命令等待时间
-d [debug level], --debuglevel [debug level]
调试输出级别
--debugsolver 转储详细解决结果至文件
--showduplicates 在 list/search 命令下,显示仓库里重复的条目
-e ERRORLEVEL, --errorlevel ERRORLEVEL
错误输出级别
--obsoletes 对 upgrade 启用 dnf 的过期处理逻辑,或对 info、list 和 repoquery
显示软件包过期的功能
--rpmverbosity [debug level name]
rpm调试输出等级
-y, --assumeyes 全部问题自动应答为是
--assumeno 全部问题自动应答为否
--enablerepo [repo]
--disablerepo [repo]
--repo [repo], --repoid [repo]
启用指定 id 或 glob 的仓库,可以指定多次
--enable, --set-enabled
enable repos with config-manager command
(automatically saves)
--disable, --set-disabled
disable repos with config-manager command
(automatically saves)
-x [package], --exclude [package], --excludepkgs [package]
用全名或通配符排除软件包
--disableexcludes [repo], --disableexcludepkgs [repo]
禁用 excludepkgs
--repofrompath [repo,path]
指向附加仓库的标记和路径,可以指定多次。
--noautoremove 禁用删除不再被使用的依赖软件包
--nogpgcheck disable gpg signature checking (if RPM policy allows)
--color COLOR 配置是否使用颜色
--refresh 在运行命令之前将元数据标记为过期。
-4 仅解析 IPv4 地址
-6 仅解析 IPv6 地址
--destdir DESTDIR, --downloaddir DESTDIR
设置软件包要复制到的目录
--downloadonly 仅下载软件包
--comment COMMENT 为事务添加一个注释
--bugfix 在更新中包括与 bug 修复有关的软件包
--enhancement 在更新中包括与功能增强有关的软件包。
--newpackage 在更新中包括与新软件包有关的软件包
--security 在更新中包括与安全有关的软件包
--advisory ADVISORY, --advisories ADVISORY
在更新中包括修复指定公告所必须的软件包
--bzs BUGZILLA 在更新中包括修复给定 BZ 所必须的软件包
--cves CVES 在更新中包括修复给定 CVE 所必须的软件包
--sec-severity {Critical,Important,Moderate,Low}, --secseverity {Critical,Important,Moderate,Low}
在更新中包括匹配给定安全等级的安全相关的软件包
--forcearch ARCH 强制使用一个架构
安装包
例如安装mlocate
dnf: dnf install -y mlocate
yum: yum install -y mlocate
卸载包
dnf: dnf remove mlocate
yum: yum remove mlocate
查看包信息
yum info 包名
dnf info 包名
查看系统中可用的 DNF 软件库
dnf repolist
yum repolist
列出所有安装了的 RPM 包
dnf list installed
yum list installed
列出包的依赖关系
dnf deplist package
yum deplist package
搜索仓库中的包是否存在
dnf search nano
yum search nano
升级软件包
yum update 包名
dnf update 包名
删除所有原先因为依赖关系安装的不需要的软件包
dnf autoremove
yum autoremove
删除缓存的无用软件包
yum clean all
dnf clean all
查看包管理的历史操作
yum history
dnf history
发表评论