搭建某二次元游戏私服后端

搭建某二次元游戏私服后端

伍陆柒 1,512 2022-05-07

如果您没有基础的 IT 知识和 / 或利用搜索引擎的能力甚至不懂提问的艺术

请现在放弃使用的想法并关闭此文档,不用浪费时间

仅供学习交流使用,严禁用于非法活动,请在24小时内删除

Linux部署与Windows部署差别在于JDKMongodb数据库的安装

总体来说参考GenshinTJ - 荼蘼博客 (tomys.top)

如果不想自己动手,也可以请我帮忙(评论区留言)不接受白嫖

Linux部署

安装Mongod

MongoDB 提供了 linux 各个发行版本 64 位的安装包,你可以在官网下载安装包。

安装前我们需要安装各个 Linux 平台依赖包。

  1. MongoDB 源码下载地址:https://www.mongodb.com/download-center#community

  1. 选择对应系统的版本

  1. 选择 tgz 下载,下载完安装包
  2. 随便上传到服务器某个地方,推荐当前用户/root/目录,并解压 tgz
cd /root
tar -zxvf mongodb-linux-xxxxxxxxxxxxx.tgz //推荐4.2以上的版本

#将解压包拷贝到指定目
mv mongodb-xxxxxxxxxxx  /usr/local/mongodb
  1. 添加环境变量,MongoDB 的可执行文件位于 bin 目录下,将其添加到 PATH 路径中:
vim /etc/profile
#末尾添加如下信息,vim用法自行百度,这不会应该选择windows服务器

#mongod环境
export MONGOD=/usr/local/mongodb

export PATH=${MONGOD}/bin:$PATH
  1. 使配置文件立即生效
source /etc/profile
  1. 创建数据库配置文件,和db存放地址,日志输出目录
cd /usr/local/mongodb

mkdir conf && mkdir data && mkdir logs
cd conf && touch mongod.conf
  1. 编辑数据库配置文件,vim mongod.conf
# db存放的目录
dbpath=/usr/local/mongodb/data

# 后台启动需要配置日志输出
logpath=/usr/local/mongodb/logs/mongodb.log

# 端口
port=27017
bind_ip = 127.0.0.1 #只允许本地连接,一般就这样
#bind_ip=0.0.0.0 #远程管理,就选这个

# 设置成后台启动
fork=true
journal=false
logappend = true
  1. 启动Mongod服务
mongod --config /usr/local/mongodb/conf/mongodb.conf
  1. 检查是否成功运行,/usr/local/mongodb/logs/mongodb.log
#出现以下字样则代表启动成功,如果启动失败,请根据log进行百度
2022-05-10T22:15:48.291+0800 I  NETWORK  [listener] Listening on /tmp/mongodb-27017.sock
2022-05-10T22:15:48.291+0800 I  NETWORK  [listener] Listening on 127.0.0.1
2022-05-10T22:15:48.291+0800 I  NETWORK  [listener] waiting for connections on port 27017

安装JDK 17

  1. 首先下载安装包:jdk-17.0.3.1_linux-x64_bin.tar.gz
放到目录下
cd /usr/local
  1. 解压
tar -zxvf jdk-17.0.2_linux-x64_bin.tar.gz

#得到一个文件夹
#jdk-17.0.2
  1. 添加到环境变量,末尾添加,vim /etc/profile
#Java17
export JAVA_HOME=/usr/local/jdk-17.0.2

#PATH
export PATH=$PATH:${MONGOD}/bin:${JAVA_HOME}/bin
  1. 是配置文件立即生效
source /etc/profile
  1. 检查java -version
java version "17.0.2" 2022-01-18 LTS
Java(TM) SE Runtime Environment (build 17.0.2+8-LTS-86)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.2+8-LTS-86, mixed mode, sharing)

终端输入 java -version 出现上面版本信息,即为安装成功

下载整合包

下载地址:Grasscutter2.7-Extrwave

cd /root
tar -zxvf grasscutter.tgz && cd grasscutter	
  1. 如果启动不成功,请依次输出以下命令逐个排错
#启动Mongod数据库
mongod --config /usr/local/mongod/conf/mongodb.conf

#启动Server
nohup java -jar grasscutter-dev.jar > /dev/null 2>&1 &

#或者

#使用整合包内的启动脚本(前提是你已经启动数据库)
./run.sh

#启动后查看日志logs文件夹下latest.log
#最后输出 Game Server started on port 22102 
#字样即为启动成功,有报错请参照常见问题处理
  1. 检查一下几个进程是否存在
ps -ef|grep java
ps -ef|grep mongod

Windows

下载JDK文件

下载地址:JDK-17

解压到你喜欢的目录,路径不要含有中文,别给自己找麻烦

环境变量配置

  1. 右键桌面上“我的电脑”的“属性”,在弹出的页面上点击“高级系统设置”。

  1. 在弹出的“系统属性”窗口中“高级”标签页下点击“环境变量”按钮。

  1. 添加环境变量

在弹出的“环境变量”窗口中,点击下方的“新建”按钮,

在弹出的“新建系统变量”窗口中,新建一个名为“JAVA_HOME”的环境变量,

变量值为Java的安装路径,比如:C:/JDK17

设置Path环境变量,如果该变量已经存在,

可以选择Path,点击下方的“编辑”按钮,在弹出的窗口中添加如下信息:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin,

然后点击“确认”按钮即可。

如果变量不存在,可以依照上述形式新建一个。

新建一个名为“classpath”的环境变量,变量值为:%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

  1. 验证JDK安装情况

打开cmd窗口,win+r 输入cmd 回车

输入 java -version 观察输出

安装Mongodb

下载地址:MongoDB Community Download | MongoDB

  1. 选择版本,下载后打开安装

  1. 装好后进入到安装目录下,\bin\mongo.exe

    运行mongo.exe查看是否连接成功

下载整合包

下载地址:Grasscutter2.7-Extrwave

解压到你喜欢的目录

运行目录里面的run.bat文件即可启动

打开防火墙端口

本项目如果没有自定义config,需要打开的端口有

  • 443 游戏连接端口,这个不确定,如果被占用请更改
  • 22102 进入游戏后使用的端口 是UDP,请注意

修改配置文件

参考⚙ config.json | GenKit Wiki (mhysb.xyz)

config.json

  • server.dispatch.bindAddress server.game.bindAddress 为监听的本地地址,建议保持 0.0.0.0
  • server.dispatch.accessAddress server.game.accessAddress 为服务器的 公网/内网IP (取决于你在公网 / 内网联机),默认为 127.0.0.1 即只允许本机连接
    server.dispatch.defaultName 为你的服务器名称
  • server.game.joinOptions.welcomeEmotes 为进入游戏的欢迎表情 id(int 数组)
  • server.game.joinOptions.welcomeMotd 为进入游戏的欢迎语
    server.game.joinOptions.welcomeMail 为进入游戏的欢迎邮件,成员有 title content sender itemsitems 成员有物品 id itemId 数量 itemCount 等级 itemLevel
    server.game.joinOptions.serverAccount 为游戏控制台的资料,成员有 avatarId 头像 (长的角色 id),nameCardId 名片 id,adventureRank 冒险等级, worldLevel 世界等级, nickName 昵称, signature 签名
  • account.autoCreate 为是否自动创建账号,默认为 false ,如修改为 true ,则允许登陆不存在的账号时自动创建 (不建议);account.defaultPermissions 为自动创建的帐号默认拥有的权限 (文本型数组)
    server.game.gameOptions.inventoryLimits 为库存上限
    server.game.gameOptions.avatarLimits 为单人 / 联机的队伍角色数量上限
    server.game.gameOptions.staminaUsage 为是否启用体力系

安卓免证书版本

安卓配置自定义服务器时候,请开启跳过ssl证书验证

客户端连接

MyServer使用教程 | GUIの小站 (ethreal.cn)

常见问题

[GenshinTJ - 荼蘼博客 (tomys.top)](GenshinTJ - 荼蘼博客 (tomys.top))

交流频道

【七七·枫叶丹】


# Java # Genshin