找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 623|回复: 14

小白搭建Docker服务端的采坑日记(教程向)

[复制链接]

4650

主题

4万

回帖

14万

积分

出神入化

积分
148764
发表于 7 小时前 | 显示全部楼层 |阅读模式
Docker部署的优点:不挑系统,即不用专门找一台CentOS的服务器进行部署
1995chen/dnf镜像下载(为无法连接Docker Hub的同学提供):
CentOs7版:https://pan.baidu.com/s/1t13YBtxD2sRpbBgkIRmqrA?pwd=twty
CentOs5版:https://pan.baidu.com/s/1NRI2_QqTHb9vJgrvcPyqdg?pwd=brcg
当然,如果Docker Hub连接正常的,也可以通过【docker pull 1995chen/dnf:centos7-latest】或【1995chen/dnf:centos5-2.1.9.fix1】获取
==============================
Q:两个版本有什么区别?
A:CentOS5适用于大部分Linux底层架构系统,如群晖NAS。而CentOS7更适用于相对新一点的Linux底层和Win10/11的Linux子系统底层。CentOS5版本需要的配置要求更低一点儿,CentOS7配置要求会更高。
阿荣社区欢迎你(bbs.vul7.com)
回复

使用道具 举报

4650

主题

4万

回帖

14万

积分

出神入化

积分
148764
 楼主| 发表于 7 小时前 | 显示全部楼层
一、部署
不论是Windows、Linux,通过Docker部署前,需要创建3个文件夹,data、log和mysql
Linux(群晖)
【docker run -d -e PUBLIC_IP=192.168.1.100 -e WEB_USER=game -e WEB_PASS=88888888 -e DNF_DB_ROOT_PASSWORD=88888888 -e GM_ACCOUNT=game -e GM_PASSWORD=88888888 -v /volume1/docker/dnf/data/log:/home/neople/game/log -v /volume1/docker/dnf/data/mysql:/var/lib/mysql -v /volume1/docker/dnf/data/data:/data -p 2000:180 -p 3000:3306/tcp -p 7600:7600/tcp -p 881:881/tcp -p 7001:7001/tcp -p 7001:7001/udp -p 30011:30011/tcp -p 31011:31011/udp -p 30052:30052/tcp -p 31052:31052/udp -p 7300:7300/tcp -p 7300:7300/udp -p 2311-2313:2311-2313/udp --cap-add=NET_ADMIN --hostname=dnf --memory=4g --memory-swap=-1 --shm-size=8g --name=dnf 1995chen/dnf:centos5-2.1.9.fix1】
配置说明:
-e PUBLIC_IP=192.168.1.100
## 固定的公网IP或内网IP,一般用于局域网游戏,或具有不会变更的公网IP时配置。如果是随机公网IPv4地址,需要通过域名访问的,请不要配置这条环境变量。域名配置方法之后会有说明
-e WEB_USER=game
## 服务端server管理的web页面用户名,可以改
-e WEB_PASS=88888888
## 服务端server管理的web页面密码,可以改
-e DNF_DB_ROOT_PASSWORD=88888888
## 数据库root用户的密码,可以改,最好改掉
-e GM_ACCOUNT=game
## 网关登录用户名,可以改,统一网关在线管理工具配套配置,很好用
-e GM_PASSWORD=88888888
## 网关登录密码,可以改
-v 三条记录
## 对应创建的data、log、mysql文件夹,必须,路径要写完整路径,为 真机目录/容器目录,需要按照自己创建的路径修改
-p 十三挑条记录
## 对应服务端开放的端口,除180、3306以外,其他的映射不能改
--shm-size=8g
## 必须,不能少,尽量不要改
--memory=4g
## 内存限制,根据需要可以改,群晖系统最低2G,不限制的情况下会跑到8G左右,根据需要进行限制
其他内容不用改。
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

4621

主题

4万

回帖

14万

积分

出神入化

积分
148462
发表于 7 小时前 | 显示全部楼层
不明觉厉

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

4650

主题

4万

回帖

14万

积分

出神入化

积分
148764
 楼主| 发表于 7 小时前 | 显示全部楼层
Windows10/11
首先物理内存要高于12GB,其次需要开启 Linux子系统功能
控制面板→程序和功能→启用Windows功能
勾选 Hyper-V
勾选 Windows虚拟机监控程序平台
勾选 适用于Linux的Windows子系统
勾选 虚拟机平台
重启系统,在BIOS里开启CPU的虚拟化技术
安装Linux子系统,正常的Windows10/11版本可以在微软应用商店中下载安装ubuntu或debian,甚至kali
LTSC版本的Win10/11,需要在管理员身份的powershell窗口中运行wsl --install -d Ubuntu
一般安装好以后,WSL都是WSL2的版本,若不是,需在管理员身份的powershell窗口中设置wsl --set-default-version 2和wsl --update
安装Docker,直接从Docker官网下载安装包。
打开资源管理器,在地址栏中输入%UserProfile%,创建文件.wslconfig,输入以下内容
[wsl2]
memory=8GB
swap=0
localhostForwarding=true
将Linux子系统的内存修改为8G,默认的4G内存根本不够跑服务端
重启下系统,以下运行镜像以在D盘Server\dof下创建data、log、mysql文件夹为例
【docker run -d -e PUBLIC_IP=192.168.1.100 -e WEB_USER=game -e WEB_PASS=88888888 -e DNF_DB_ROOT_PASSWORD=88888888 -e GM_ACCOUNT=game -e GM_PASSWORD=88888888 -v D:\Server\dof\data\log:/home/neople/game/log -v D:\Server\dof\data\mysql:/var/lib/mysql -v D:\Server\dof\data\data:/data -p 2000:180 -p 2006:3306/tcp -p 7600:7600/tcp -p 881:881/tcp -p 7001:7001/tcp -p 7001:7001/udp -p 30011:30011/tcp -p 31011:31011/udp -p 30052:30052/tcp -p 31052:31052/udp -p 7300:7300/tcp -p 7300:7300/udp -p 2311-2313:2311-2313/udp --cap-add=NET_ADMIN --hostname=dnf --shm-size=8g --privileged=true --name=dnf 1995chen/dnf:centos7-latest】
配置说明请看2楼
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

4650

主题

4万

回帖

14万

积分

出神入化

积分
148764
 楼主| 发表于 7 小时前 | 显示全部楼层
飞牛fnOS
fnOS中,第一个创建的管理员用户,“我的文件”所在的路径为/vol1/1000,创建一个DNF文件夹,里面创建data、log、mysql目录,当然,也可以在文件管理窗口上方,复制具体所在路径
【docker run -d -e PUBLIC_IP=192.168.1.100 -e WEB_USER=game -e WEB_PASS=88888888 -e DNF_DB_ROOT_PASSWORD=88888888 -e GM_ACCOUNT=game -e GM_PASSWORD=88888888 -v /vol1/1000/DNF/log:/home/neople/game/log -v /vol1/1000/DNF/mysql:/var/lib/mysql -v /vol1/1000/DNF/data:/data -p 2000:180 -p 2006:3306/tcp -p 7600:7600/tcp -p 881:881/tcp -p 7001:7001/tcp -p 7001:7001/udp -p 30011:30011/tcp -p 31011:31011/udp -p 30052:30052/tcp -p 31052:31052/udp -p 7300:7300/tcp -p 7300:7300/udp -p 2311-2313:2311-2313/udp --cap-add=NET_ADMIN --hostname=dnf --shm-size=8g --memory=4g --memory-swap=-1 --privileged=true --name=dnf 1995chen/dnf:centos7-latest】
配置说明请看2楼
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

4650

主题

4万

回帖

14万

积分

出神入化

积分
148764
 楼主| 发表于 7 小时前 | 显示全部楼层
以下是踩坑
Q:我是公网随机IP地址,用域名访问,如何创建服务端容器?
A:将 -e PUBLIC_IP=192.168.1.100 修改为 -e DDNS_ENABLE=true -e DDNS_DOMAIN=xx.xx.com ,xx.xx.com改为你的域名地址。需要注意,若是fnOS使用此环境变量配置,需要将 --memory=4g 改为 --memory=6g 或以上,否则部分服务会重复被kill,无法启动
Q:我跑起来以后,想要修改IP地址,怎么操作?
A:修改起来十分的麻烦,且修改后大概率容器内的服务无法正常启动。只能将data、log、mysql文件夹下的所有文件全都删除,然后重新跑docker run命令。所以最好在跑容器前,确认好之后需要运行的环境,一次填写正确
Q:我想要玩其他版本,应该如何操作?
A:停止Docker容器,找到喜欢的DNF版本,将服务端的Script.pvf丢入服务器创建的data文件夹内覆盖原有Script.pvf,替换data文件夹内的df_game_r,然后启动容器
Q:dp2如何使用?
A:将dp2中的libdp2pre.so文件复制一份,重命名为libhook.so,之后将dp2所有的文件丢入data/dp目录内,重启容器
Q:在哪看五国代码以确认服务端运行成功?
A:下载log/siroco11目录下的Log20251206.init,查看文件最末尾。或是SSH连接服务器,通过cat .../log/siroco11/Log20251206.init查看。但需要注意,群晖NAS系统跑起来以后,大概率也是看不到五国代码的,但不影响服务端正常使用
Q:打开启动器以后,提示网关未开放怎么办?
A:使用统一网关在线管理工具v6.4.exe创建启动器时,确保填写的服务器地址和网关端口是正确的。确保服务器对应-p中映射的端口向外开放。尤其是Windows系统运行,虽然防火墙配置中大概率列入了docker.exe的入站规则,但排查通信时,最好还是手动加入端口入站放行的规则
Q:进入游戏后,选择服务器正常,双击频道后显示【正在连接服务器...】
A:排查PVF,服务器端与客户端PVF是否一致
A:排查端口,以下为端口表
数据库:3306/tcp
登录器端口:7600/tcp
网关:881/tcp
7001/tcp
7001/udp
频道:30011/tcp
频道:31011/udp
频道:30052/tcp
频道:31052/udp
7300/tcp
7300/udp
2311-2313/udp
A:排查使用的dnf.exe相对应的配置文件,需要将*.toml或*.ini中服务器的地址正确填写。若使用frps,需填写frps的服务器地址或域名
A:docker run创建容器时,配置的服务端IP地址与最终客户端连接时的IP地址不一致,即容器配置了内网地址如192.168.1.100,但客户端选择用dnf.wode.top域名为服务器连接,或使用了frp、nginx等内网穿透、端口转发、反向代理等功能进行了转发,导致配置不一致,需要删除容器和data、log、mysql中所有文件,重新创建容器,在-e配置IP或域名时,填写正确的信息
Q:按照你说的内容跑完以后,客户端进入游戏以后,服务器为什么是灰色的?
A:确认跑出五国代码后,若服务器内存不高,等待5-10分钟后再次尝试
A:部分服务未启动,例如bridge、monitor、gunnersvr等(netbird、zergsvr、monitor_ip未启动一般属于正常现象),重新./stop ./run重启服务器再试
Q:选择频道后,提示亲爱的玩家已被永久封禁等各式提示,确定后直接退出游戏
A:修改dnf.exe对应配置文件,需要将*.toml或*.ini中服务器的地址正确填写
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

4650

主题

4万

回帖

14万

积分

出神入化

积分
148764
 楼主| 发表于 7 小时前 | 显示全部楼层
工具、客户端程序下载:
统一网关在线管理工具v6.4: https://pan.baidu.com/s/1URfDNnbXhn_NpOP2qDP_Hg?pwd=kcpm
DNF客户端1031_新版女格斗修复_无启动器超级干净版:https://omv.lztxd.top:5001/sharing/4YTS6d1jt
## 启动器需要通过 统一网关在线管理工具v6.4 配置好 服务器地址 后 生成,根目录只有dnf.exe、DNF.toml、Script.pvf,其他pvf可能会导致女格斗动作出问题,请前往 @✨阿启丶 大佬的贴子,下载pvf导入文件:https://tieba.baidu.com/p/10197785148
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

4650

主题

4万

回帖

14万

积分

出神入化

积分
148764
 楼主| 发表于 7 小时前 | 显示全部楼层
其他工具:
DNF.exe:
5.4版:https://pan.baidu.com/s/1ZxXLfSSJBOcufFqCkNetdA?pwd=s3jy
7.4版:https://pan.baidu.com/s/1AOIxeQ3E90JilZkvQ-dvzA?pwd=a3vh
## 适用于tututu整合的台服原版客户端,或其他使用ijl15.dll指向服务端等无法修改dnf.exe指向服务器地址配置的客户端使用,内置部分修改器,按F3呼出、隐藏
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

4650

主题

4万

回帖

14万

积分

出神入化

积分
148764
 楼主| 发表于 7 小时前 | 显示全部楼层
用PVE部署会比Docker更方便点
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

发表于 7 小时前 | 显示全部楼层
这跟vm搭建的方式区别不大,本质上还是多跑了一个操作系统,docker的优势并没有体现出来,除非把那个centos中的所有dnf的服务提取出来直接在docker上跑,这样效率才高

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

5119

主题

4万

回帖

15万

积分

神功绝世

积分
158680
发表于 7 小时前 | 显示全部楼层
大佬 这种方法搭建好以后,想替换清风1031的版本要怎么做,他除了pvf和df_game_r还有个frida. js
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

4650

主题

4万

回帖

14万

积分

出神入化

积分
148764
 楼主| 发表于 7 小时前 | 显示全部楼层
我有做好的docker compose 在pve里部署  外网就用tailscale连接  速度也挺不错
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

5119

主题

4万

回帖

15万

积分

神功绝世

积分
158680
发表于 7 小时前 | 显示全部楼层
大佬 创建登录器以后可以登上但是显示接受频道信息失败是为什么
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

4621

主题

4万

回帖

14万

积分

出神入化

积分
148462
发表于 7 小时前 | 显示全部楼层
我用的iStoreOS,自带有docker,目前就用来跑青龙挂豆豆
配置是J4125+8G内存,就跑青龙挂豆豆和搭起梯子外,赶脚有点浪费
能跑DNF不?有没有详细点的教程?
感谢!
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

发表于 7 小时前 | 显示全部楼层
do you know this error?
./run >Load fail log
[GlobalData::Init] cg load font fail
captcha data initialization failed
[!] Init GlobalData Fail
--------------------------------------------------------------------------fd_on_unload
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表