热爱技术
专注分享

在centos上搭建原神服务器之一:搭建服务端

前言

前几天群里有个兄弟给我发了个链接,是github上的一个原神服务端的开源项目。

链接地址:Grasscutters/Grasscutter: A server software reimplementation for a certain anime game. (github.com)

这是一个模拟的服务端,大概两周前上线的。这几天搭建上手体验了一下,虽然有些bug,但感觉基础功能上已经比较完善了,登录、战斗、培养、抽卡、联机等方面没有太大的问题,并且作者更新频率非常快,基本保持一天8-9更,再过段时间差不多就能赶上官服了。

整体教程步骤虽然偏多(要兼顾小白的感受),但是并不复杂。只要一步一步跟着做,肯定可以成功的。

2022.5.20更新Windows搭建方法:在centos上搭建原神服务器之三:补充windows搭建方法

话不多说,我们直接开始今天的正题吧。

Step1. 准备工具
25%

这个端在Windows、Linux系统上都可以跑,本次教程基于Linux。准备如下工具:

        1. 服务器1台 centos7 系统 最低配置2核2G 如需公网联机可用云服务器
        2. 手
        3. 保证云服务器的443端口未使用(服务器上没有网站)
Step2. 环境配置
50%

安装系统软件

				
					yum -y install wget git zsh tmux vim
				
			

安装java SE 17

注意:如果想要使用最新版的服务端,必须安装这个版本的java

				
					cd ~
wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/Adoptium/17/jdk/x64/linux/OpenJDK17U-jdk_x64_linux_hotspot_17.0.3_7.tar.gz
tar zxvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.3_7.tar.gz
mv jdk-17.0.3+7 /usr/local/java
vim /etc/profile
# 按 i 进入编辑 在文件末尾添加以下内容
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin;
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar;
# 添加完成后按 esc 输入 :wq 保存
source /etc/profile
# 验证是否安装成功
java -version

				
			

安装Mongodb

Mongodb作为服务端的数据库使用,我们这里安装最新版的Mongodb5

				
					wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-5.0.8.tgz
tar zxvf mongodb-linux-x86_64-rhel70-5.0.8.tgz
mv mongodb-linux-x86_64-rhel70-5.0.8 /usr/local/mongodb
vim /etc/profile
# 按 i 进入编辑 在文件末尾添加以下内容
export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
# 添加完成后按 esc 输入 :wq 保存
source /etc/profile
# 验证是否安装成功
mongo -version
				
			

接下来,在 /usr/local/mongodb 目录建立 data log 2个文件夹和1个 mongod.conf配置文件

				
					cd /usr/local/mongodb
mkdir data
mkdir log
vim mongod.conf
# 按 i 进入编辑 添加以下内容
dbpath=/usr/local/mongodb/data
logpath=/usr/local/mongodb/log/mongodb.log
logappend=true
port=27017
auth=false
fork=true
bind_ip=127.0.0.1
# 添加完成后按 esc 输入 :wq 保存
# 以后台方式启动数据库
mongod -f /usr/local/mongodb/mongod.conf
				
			

至此,服务端所需要的运行环境全部配置完成。

Step3. 服务端准备、编译
75%

项目的稳定版分支提供了编译好的服务端程序,但是博主觉得还是用dev版本的比较好。稳定版的到目前为止只发布了一次,功能上落后dev版太多了。dev版本需要自己编译的,不要听到编译这两个字就头大,相反,这个服务端的编译相当简单。

clone、编译服务端程序

				
					cd ~
使用代理clone项目
git clone -b development https://ghproxy.com/https://github.com/Grasscutters/Grasscutter
cd Grasscutter
./gradlew jar
# 编译完成后会在当前目录下生成 grasscutter-1.0.0-dev.jar 文件

				
			

下载服务端资源文件(2022.5.20更新,直接使用整合资源文件)

				
					git clone https://ghproxy.com/https://github.com/Koko-boya/Grasscutter_Resources
cd Grasscutter_Resources
cp -r Resources ~/Grasscutter/resources
				
			

完成后,你的resources文件夹下应该有这么6个文件夹:

圣遗物词条修复(2022.5.20更新:这一步可省略)

资源库有点小问题,会导致圣遗物没有任何词条,我们只要把其中两个配置文件回滚到前面版本就以了。

 

Step4. 服务端配置、运行、更新
100%

修改配置文件

				
					# 先运行一下服务端
cd ~/Grasscutter
java -jar grasscutter-1.0.0-dev.jar -handbook
# 修改刚生成的配置文件
vim config.json

				
			

把文件中的两个IP地址127.0.0.1修改为你服务器的地址,修改完成后按 esc 输入 :wq 保存

后台运行服务端程序

				
					tmux new -s server
# 具体根据编译生成的jar文件名来
java -jar grasscutter-1.0.0-dev.jar
				
			

tmux可以保证你关掉控制台的时候,程序依然继续运行。用法如下:

1. 创建一个会话: tmux new -s 会话名

2. 进入会话: tmux a -t 会话名

3. 退出会话(不杀后台): ctrl+b 松开 按下d

更新程序

				
					tmux a -t server
# ctrl+c 结束掉程序
git pull
./ gradlew jar
# 具体根据编译生成的jar文件名来
java -jar grasscutter-1.0.0-dev.jar
				
			

后记

如果你觉得现在操作有点复杂了,那么也可以等一段时间项目完善了再去部署,目前也仅限于尝鲜。

客户端连接、卡池转换、GM命令使用,后续我会继续更新这个系列的文章的。

目前这个端可以支持联机的,博主在云服务器上做了一个端,每天更新两次,跟群友联机玩不亦可乎。

另外,这个项目是免费开源的,目前市面上已经有出现了小批量的倒卖情况,千万不要相信,也不要去买。这样会打击作者的创作热情,导致项目烂尾,大家谁都玩不上了。目前作者保持一天7-8个更新,star量也在飞速增长,如果有需求可以去项目主页提issue,有能力的可以自己写代码提pr。

如果遇到问题,可以加群大家一起讨论,群号在下方介绍中(573326421)。博主每篇文章都是一个字一个字码出来的,所有文章均为原创,没有任何广告、收费的套路。如果转载,请注明出处!

客户端教程已更新:在centos上搭建原神服务器之二:PC客户端连接

在centos上搭建原神服务器之二:PC客户端连接

前言 警告 文章仅供技术研究,技术交流。若您在研究过程中违反法律法规,本站不负任何责任!注意!禁止向公众提供私人游戏服务器服务!!! × 关闭警报 Step1. 准备工具 20% 上一篇文章请看:在centos上搭建原神服务器之

Read More »

在centos上搭建原神服务器之一:搭建服务端

警告 本文章及系列教程仅供个人技术研究使用,禁止向任何人提供私人游戏服务器服务!!若违反法律法规,本站概不负责!!! × 关闭警报 前言 前几天群里有个兄弟给我发了个链接,是github上的一个原神服务端的开源项目。 链接地址:

Read More »

安卓软路由方案

clash 此方法无需root,只能部分实现软路由功能 Xray4Magisk 此方法需要root并且安装面具,能完全实现软路由的功能 clash 可实现的功能: 开放http和socks端口,代理局域网内的设备,抖音,小红书,ins无法使

Read More »
赞(12) 打赏
未经允许不得转载:小伟博客 » 在centos上搭建原神服务器之一:搭建服务端

评论 5

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    编译完成后生成不了grasscutter-1.0.0-dev.jar文件

    小小怪4周前 (05-03)回复
  2. #2

    编译完成后就是这样子
    [root@VM-0-7-centos Grasscutter]# ./gradlew jar

    > Task :compileJava
    /root/Grasscutter/src/main/java/emu/grasscutter/scripts/serializer/LuaSerializer.java:73: warning: non-varargs call of varargs method with inexact argument type for last parameter;
    object = type.getDeclaredConstructor().newInstance(null);
    ^
    cast to Object for a varargs call
    cast to Object[] for a non-varargs call and to suppress this warning
    Note: Some input files use or override a deprecated API.
    Note: Recompile with -Xlint:deprecation for details.
    Note: Some input files use unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details.
    1 warning

    Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.

    You can use '–warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

    See https://docs.gradle.org/7.4.2/userguide/command_line_interface.html#sec:command_line_warnings

    BUILD SUCCESSFUL in 27s
    6 actionable tasks: 6 executed
    [root@VM-0-7-centos Grasscutter]#

    小小怪4周前 (05-03)回复
  3. #3

    博主,为什么一登陆,到门之后就会连接超时,进不去

    彦祖3周前 (05-07)回复
    • 同问

      测试3周前 (05-09)回复
    • 同问

      于晏1周前 (05-17)回复

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏