-全套DNF服务端部署教程-
文档仅供参考,有不对的地方欢迎批评指正,不懂的可以留言询问。
服务器推荐
0.下载并安装Xterminal
PS:个人感觉这个软件挺不错的,其他命令行输入的时候会太长被删减
1.先升级yum源
yum update -y
2.安装1Panel面板(小白推荐)
RedHat / CentOS
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sh quick_start.sh
Ubuntu
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh
Debian
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh
3.配置docker镜像加速
配置加速地址:
https://spp-docker.asia
https://wc-docker.asia
https://k-docker.asia
https://hj-docker.asia
https://lq-docker.asia
3.关闭防火墙
# 关闭宿主机防火墙
# Centos5-6
service iptables stop
chkconfig iptables off
# Centos7
systemctl disable firewalld
systemctl stop firewalld
systemctl disable firewalld.service
systemctl stop firewalld.service
# ubuntu
sudo ufw disable
4.关闭SELINUX
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
5.创建swap(如果内存足够可以直接忽略)
/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=8000
mkswap /var/swap.1
swapon /var/swap.1
sed -i '$a /var/swap.1 swap swap default 0 0' /etc/fstab
查看操作系统是否打开swap的使用(如果内存足够可以直接忽略) sudo vim /etc/sysctl.conf 将vm.swappiness的值修改为100(优先使用swap),没有该配置就加上
Linux下设置swappiness参数来配置内存使用到多少才开始使用swap分区(转) - EasonJim - 博客园
vm.swappiness = 100
6.拉取镜像
docker pull 1995chen/dnf:stable
docker pull 1995chen/dnf:centos6-2.1.2
docker pull 1995chen/dnf:stable
docker pull 1995chen/dnf:centos5-2.1.2
docker pull 1995chen/dnf:centos6-2.1.2
如何您需要使用centos7作为基础镜像的特殊需求,可以使用:
docker pull 1995chen/dnf:centos7-2.1.2
所有镜像版本列表请参考[记得点赞三连,帮助更多的人了解该镜像]:
https://hub.docker.com/repository/docker/1995chen/dnf
7.创建一个目录用于持久化存储 服务端的日志、pvf、数据库文件
mkdir -p /dnf
8.初始化数据(第一次时间较长,可能会超过10分钟请耐心等待)
初始化数据库以及基础数据文件
该初始化容器是个一次性任务,跑完会在dnf目录下创建初始化文件,程序运行完成后自动退出,不会留下任务容器残留如果要重新初始化数据,则需要删除data目录下的 data、mysql、 log三个文件夹, 重新运行该初始化命令,注意:如果目录没有清空是不会执行任何操作的
docker run \
-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
9.启动服务
PUBLIC_IP=xxxxx为公网IP地址,如果在局域网部署则用局域网IP地址,按实际需要替换xxxxx为ip
GM_ACCOUNT为登录器用户名,建议替换(可以随便定义)
GM_PASSWORD为登录器密码,建议替换(可以随便定义)
DNF_DB_ROOT_PASSWORD为mysql root密码,容器启动是root密码会跟随该环境变量的变化自动更新
docker run -d -e PUBLIC_IP=xxxxx -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 --name=dnf 1995chen/dnf:stable
10.确实是否启动成功
1.查看日志 log,log名字为当天日期
├── siroco11
│ ├── Log20211203-09.history
│ ├── Log20211203.cri
│ ├── Log20211203.debug
│ ├── Log20211203.error
│ ├── Log20211203.init
│ ├── Log20211203.log
│ ├── Log20211203.money
│ └── Log20211203.snap
└── siroco52
├── Log20211203-09.history
├── Log20211203.cri
├── Log20211203.debug
├── Log20211203.error
├── Log20211203.init
├── Log20211203.log
├── Log20211203.money
└── Log20211203.snap
查看Logxxxx.init文件,五国的初始化日志都在这里
成功出现五国后,日志文件大概如下,五国初始化时间大概1分钟左右,请耐心等待
[root@centos-02 siroco11]# tail -f Log20211203.init
[09:40:23] - RestrictBegin : 1
[09:40:23] - DropRate : 0
[09:40:23] Security Restrict End
[09:40:23] GeoIP Allow Country Code : CN
[09:40:23] GeoIP Allow Country Code : HK
[09:40:23] GeoIP Allow Country Code : KR
[09:40:23] GeoIP Allow Country Code : MO
[09:40:23] GeoIP Allow Country Code : TW
[09:40:32] [!] Connect To Guild Server ...
[09:40:32] [!] Connect To Monitor Server ...
2.查看进程
在确保日志都正常的情况下,需要查看进程进一步确定程序正常启动
ps -ef |grep df_game
如上结果df_game_r进程是存在的,代表成功.如果不成功可以重启服务
11.重启服务
docker restart dnf
12.默认的网关信息
网关端口: 881
通讯密钥: 763WXRBW3PFTC3IXPFWH
登录器版本: 20180307
登录器端口: 7600
GM账户: gm_user
GM密码: gm_pass
Z.架设完成常用命令
docker stop dnf #关掉 DNF 容器
docker start dnf #打开 DNF 容器
docker restart dnf #重启 DNF容器
X.问题排查
查看处理器架构命令(必须使用X86架构)
arch
https://docs.qq.com/doc/DUm5RbnVLU25OVkpa
评论区