阿荣社区采集员 发表于 2024-6-22 09:34:22

DNF架设史上的颠覆

1.首先准备一台Linux机器,最好是服务器,因为服务器IP不会变,如果会从路由器设置电脑的固定IP,那也就无所谓了,服务器的优势主要就是大家不在一起也能一起玩游戏
2.这里我准备的是Centos 7,因为要安装docker,Centos 6以下的版本要升级内核,太麻烦了,所以我们选择Centos 7以上,Ubuntu系统可以选择16.04以上都是可以的,只要能成功安装docker,对了我选的是64位,大家最好都64位吧
3.服务器配置 1核2G1M带宽,很便宜的配置了,我在淘宝买的,注册一个新的腾讯云账号,淘宝买只要66一年,大家自行研究
4.安装docker,运行以下命令
先升级yum源
yum update -y
下载docker安装脚本
curl -fsSL https://get.docker.com -o get-docker.sh
运行安装docker的脚本
sudo sh get-docker.sh
启动docker
systemctl enable docker
systemctl start docker
5.关闭防火墙
systemctl disable firewalld
systemctl stop firewalld
systemctl disable firewalld.service
systemctl stop firewalld.service
6.关闭selinux
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
这个是关闭selinux的详细文档
https://jingyan.baidu.com/article/7e4409537177d32fc0e2efe9.html
最好永久关闭吧,然后重启服务器
7.创建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
8.判断docker是否安装成功
docker ps
出现以下结果就是成功了
# docker ps
CONTAINER ID      IMAGE               COMMAND                  CREATED             STATUS            PORTS               NAMES
9.拉取镜像
docker pull 1995chen/dnf:85.1
10.启动
在根下创建一个文件夹
mkdir -p /data
启动
docker run -d -e IP=你的外网IP -v /data/root:/root -v /data/neople:/home/neople --net=host --privileged=true --memory=8g --oom-kill-disable --shm-size=8g 1995chen/dnf:85.1
11.判断是否出现5国
cd/data/neople/game/log/siroco11/
然后里面会有类似Log20201103.init的文件,我写这个帖子的时候刚好是11月03,所以大家自己对号入座
tail -f Log20201103.init
会出现下面结果
- GuildLevelUp : 0
- GuildSkillUp : 0
- GuildBreak : 0
- CreateCharacter : 0
- LoginChannel : 0
Mobile Auth End
[!] Service Restrict List ...
Security Restrict Begin
- RestrictBegin : 1
- DropRate : 0
Security Restrict End
GeoIP Allow Country Code : CN
GeoIP Allow Country Code : HK
GeoIP Allow Country Code : KR
GeoIP Allow Country Code : MO
GeoIP Allow Country Code : TW
[!] Connect To Monitor Server ...
[!] Connect To Guild Server ...
说明成功了
12.判断进程是否存在
ps -ef |grep df_
会出现下面结果
# ps -ef |grep df_
root   12024 119180 11:37 ?      00:00:01 ./df_stun_r start
root   12089 119180 11:37 ?      00:01:12 ./df_community_r community start
root   12090 11918 36 11:37 ?      01:57:47 ./df_coserver_r coserver start
root   12091 119183 11:37 ?      00:10:42 ./df_statics_r stat_siroco start
root   12092 119180 11:37 ?      00:00:01 ./df_relay_r relay_200 start
root   12104 119186 11:37 ?      00:21:25 ./df_dbmw_r dbmw_mnt_siroco start
root   12105 119186 11:37 ?      00:21:24 ./df_dbmw_r dbmw_gld_siroco start
root   12106 119186 11:37 ?      00:21:25 ./df_manager_r manager start
root   12107 119183 11:37 ?      00:10:44 ./df_dbmw_r dbmw_stat_siroco start
root   12108 119186 11:37 ?      00:21:25 ./df_monitor_r mnt_siroco start
root   12109 119183 11:37 ?      00:10:49 ./df_channel_r channel start
root   12110 119186 11:37 ?      00:21:25 ./df_guild_r gld_siroco start
root   12111 119183 11:37 ?      00:11:27 ./df_bridge_r bridge start
root   12183 119346 11:38 ?      00:22:04 ./df_game_r siroco11 start
root   12212 119346 11:38 ?      00:22:03 ./df_game_r siroco52 start
root   30721 278990 16:57 pts/0    00:00:00 grep --color=auto df_
有df_game_r代表没毛病,老铁可以连接客户端登录了
13.服务挂了怎么启动
这个简单,先运行docker ps -a查看docker容器的id
# docker ps -a
CONTAINER ID      IMAGE               COMMAND                  CREATED             STATUS            PORTS               NAMES
f37360fd1c76      1995chen/dnf:85.1   "/bin/bash /docker-e…"   6 hours ago         Up 5 hours                              suspicious_spence
#
在这里f37360fd1c76就是容器的id,我们只需要运行
docker restart f37360fd1c76就可以了
14.电脑IP变了怎么办
这真是个伤心的事,因为如果你需要连接mysql,把d_taiwan数据库下的db_connect 表里的db_ip字段全部改成正确的ip才行,但这个肯定是不够的,你还需要运行下面命令
sed -i "s/你上次指定的IP/你这次的IP/g" `find /data/neople -type f -name "*.cfg"`
sed -i "s/你上次指定的IP/你这次的IP/g" `find /data/neople -type f -name "*.tbl"`
很难受吧,所以大家路由器啥的配置好,IP最好不要变。
15.我是Windows电脑怎么办
真的很抱歉,docker在windows下不能开启宿主机网络host模式,浪费了很多时间看这个文档,话说我为啥不把这个放在最前面,,,,windows还是用虚拟机吧,那也更快,更方便。祝大家游戏愉快
16.别问我为啥还有第16条
我们用的网关是DnfGateServer,没错,就是大家最常用的那款登录器。主要是用那个统一网关管理器生成登录器。配置都在/data下的root目录里,里面有Config.ini有网关的所有配置。如果是在不会这个就不要找我啦,因为真的比较复杂,前人积累的东西太多,不是一天两天能讲完的,是在不行就私信我吧,我直接发你们一个客户端,和我一起玩吧,买一个服务器就架设这个服务,整个区没人,我也希望有更多的人在里面完,PK!去实现那些曾经未曾做的事。
17.后续会放出客户端的地址供大家下载

阿荣社区采集员1 发表于 2024-6-22 09:34:52

看到你说了统一,是的配置确实都在root里面。只需要配置好一次,配置文件导出来,然后在run脚本集成启动命令就可以做到。run的时候开登录器网关。stop关网关顺便关服。

阿荣社区采集员 发表于 2024-6-22 09:35:43

统一登录器
链接: 网页链接 提取码: u86h 复制这段内容后打开百度网盘手机App,操作更方便哦

阿荣社区采集员 发表于 2024-6-22 09:35:52

1nJY3BP5BkBPTuwbvgIBv_A
提取码: he2s

阿荣社区采集员 发表于 2024-6-22 09:36:30

阿荣社区采集员 发表于 2024-6-22 09:37:01

老牛客户端
1roOxDI4tyfBvvcUQTjCimA 提取码: bwcy

阿荣社区采集员1 发表于 2024-6-22 09:37:54

亲测可用,什么系统都可以run了。。。但是如果不太懂服务器什么的,还是不要折腾了, 更换版本稍麻烦一点

阿苏 发表于 2024-6-22 09:38:21

整挺好!
换了个pvf,正在跑,不知道怎么样

阿荣社区采集员1 发表于 2024-6-22 09:38:34

mysql的端口大佬会改吗

阿荣社区采集员 发表于 2024-6-22 09:38:58

我不会,我只会架设

阿荣社区采集员1 发表于 2024-6-22 09:39:41

之前也是自己用docker做一直提示core dump 后面看了楼主的run参数后受到启发 之前自己做的镜像也能成功在docker下跑出5国了

阿荣社区采集员3 发表于 2024-6-22 09:39:54

没听懂啥意思

阿荣社区采集员3 发表于 2024-6-22 09:40:52

秀啊

阿荣社区采集员1 发表于 2024-6-22 09:41:38

仔细看了下,容器启动时没有指定端口映射,这样服务压根就没办法被访问到啊

阿荣社区采集员2 发表于 2024-6-22 09:42:18

按照步骤走 关了防火墙
docker 里面 一直卡在
CONNECTION FAIL IP =127.0.0.1, PORT =40403, reason =Connection refusedtcpSoc
页: [1]
查看完整版本: DNF架设史上的颠覆