原神服务端配置教程

前面几句废话

Grasscuter 是一个Java语言开发的开源项目,Github 上可以找到,如果你也是这个动画游戏的爱好者,可以看看学习一下。

由于是Java 项目,不挑运行环境,使用 Windows 或者 Linux 均可。本文记录Centos 7.6 环境下安装和配置该服务的过程。其他系统上大同小异。

如果你想搭建一个单机版本的,只需要把这个服务端配置在自己的PC机上就可以了。亲测成功。

本教程需要一点儿软件安装配置的基础,如配置过程中遇到问题,可以私信帮助解决。

材料准备

  • gradle 自动构建工具,如果你准备自己编译 Grasscutter 的话,需要这个软件,如果不准备自己编译,直接使用编译好的就不需要下载这个软件了。

  • Grasscutter 服务端模拟程序(Github上有源码也有release版本)

以上程序均可在官方地址或Github 上找到,如果懒得找,也可以到关注公众号《小七爱折腾》,发送“原神服务端资料”留言获取。

安装步骤

前置条件

配置 Grasscutter 服务

  • 上传 Grasscutter_server.zip 到/root家目录,并解压。

  • 文件夹中,还有一个资源包需要解压。

1
2
3
4
5
6
7
8
cd /root

unzip Grasscutter_server.zip

cd Grasscutter_server

unzip resources.zip

  • 修改配置文件内容。

打开 config.json,将配置文件里面的 IP 地址 101.43.189.156 ,替换你自己服务器的 IP 地址或者域名。如果是本地搭建,就用127.0.0.1。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
{
"folderStructure": {
"resources": "./resources/",
"data": "./data/",
"packets": "./packets/",
"scripts": "resources:Scripts/",
"plugins": "./plugins/",
"cache": "./cache/"
},
"databaseInfo": {
"server": {
"connectionUri": "mongodb://localhost:27017",
"collection": "grasscutter"
},
"game": {
"connectionUri": "mongodb://localhost:27017",
"collection": "grasscutter"
}
},
"language": {
"language": "zh_CN",
"fallback": "en_US",
"document": "EN"
},
"account": {
"autoCreate": false,
"EXPERIMENTAL_RealPassword": false,
"defaultPermissions": [],
"maxPlayer": -1
},
"server": {
"debugWhitelist": [],
"debugBlacklist": [],
"runMode": "HYBRID",
"logCommands": false,
"fastRequire": true,
"http": {
"startImmediately": false,
"bindAddress": "0.0.0.0",
"bindPort": 443,
"accessAddress": "101.43.189.156",
"accessPort": 0,
"encryption": {
"useEncryption": false,
"useInRouting": false,
"keystore": "./keystore.p12",
"keystorePassword": "123456"
},
"policies": {
"cors": {
"enabled": true,
"allowedOrigins": [
"*"
]
}
},
"files": {
"indexFile": "./index.html",
"errorFile": "./404.html"
}
},
"game": {
"bindAddress": "0.0.0.0",
"bindPort": 22102,
"accessAddress": "101.43.189.156",
"accessPort": 0,
"useUniquePacketKey": true,
"loadEntitiesForPlayerRange": 300,
"enableScriptInBigWorld": true,
"enableConsole": true,
"kcpInterval": 20,
"logPackets": "NONE",
"isShowPacketPayload": false,
"isShowLoopPackets": false,
"cacheSceneEntitiesEveryRun": false,
"gameOptions": {
"inventoryLimits": {
"weapons": 2000,
"relics": 2000,
"materials": 2000,
"furniture": 2000,
"all": 30000
},
"avatarLimits": {
"singlePlayerTeam": 4,
"multiplayerTeam": 4
},
"sceneEntityLimit": 1000,
"watchGachaConfig": false,
"enableShopItems": true,
"staminaUsage": true,
"energyUsage": true,
"fishhookTeleport": true,
"trialCostumes": false,
"questing": {
"enabled": true
},
"resinOptions": {
"resinUsage": false,
"cap": 160,
"rechargeTime": 480
},
"rates": {
"adventureExp": 1.0,
"mora": 1.0,
"leyLines": 1.0
},
"handbook": {
"enable": false,
"allowCommands": true,
"limits": {
"enabled": false,
"interval": 3,
"maxRequests": 10,
"maxEntities": 25
},
"server": {
"enforced": false,
"address": "101.43.189.156",
"port": 443,
"canChange": true
}
}
},
"joinOptions": {
"welcomeEmotes": [
2007,
1002,
4010
],
"welcomeMessage": "Welcome to a Grasscutter server.",
"welcomeMail": {
"title": "Welcome to Grasscutter!",
"content": "Hi there!\r\nFirst of all, welcome to Grasscutter. If you have any issues, please let us know so that Lawnmower can help you! \r\n\r\nCheck out our:\r\n<type=\"browser\" text=\"Discord\" href=\"https://discord.gg/T5vZU6UyeG\"/>\n",
"sender": "Lawnmower",
"items": [
{
"itemId": 13509,
"itemCount": 1,
"itemLevel": 1
  • 开放端口

如果使用的阿里云或者腾讯云之类的云服务器,需要在安全规则里面放行端口,可以简单粗暴的全放行1-65535,也可以针对性的只放行配置文件中配置的443、22102、1111这几个。

  • 关闭操作系统的防火墙
1
2
systemctl stop firewalld 
systemctl disable firewalld

启动 Grasscutter 服务

启动服务命令如下:

1
java -jar grasscutter-1.7.4.jar

如果没有报错,应该会直接进入到启动状态。这时候命令行会阻塞,可以使用 tmux 创建一个后台终端,持续运行。这个东西挺有意思,后面单独写一个介绍。

本地搭建的话,直接在一体化启动器里面配置这个 grasscutter-1.7.4.jar ,然后直接启动就行了,现在的一体化启动器已经做的非常简单了。

创建账户

运行启动命令后,会进入到服务端的命令行状态。这里可以运行服务端命令。执行 help 可以查看这里的帮助。第一组就是创建账户。

HELP

创建账户:

1
account create username password UID

其中username 写你登录用的用户名,password 写对应账户的密码,UID 选填,写用户ID,这个ID后面在GM工具里需要用,不填就用默认的,起始值是10001。

客户端配置

前面有一篇讲客户端配置的。客户端配置

结束

真的非常佩服搞这个项目的人,能把一个模拟器做到这个程度,非常棒了。