友情提醒:游玩 Grasscutter 请记得屏蔽 log-upload-os.mihoyo.com
,或者全程不要关闭代理,否则会上传 device_id
给官方,存在未知风险。
上述问题解决办法:修改hosts文件进行屏蔽
hosts文件位置:
Windows: C:\Windows\System32\drivers\etc\hosts
Linux: /etc/hosts
将下列五个复制粘贴到hosts文件保存即可
0.0.0.0 log-upload-os.mihoyo.com
0.0.0.0 overseauspider.yuanshen.com
0.0.0.0 log-upload.mihoyo.com
0.0.0.0 log-upload-os.hoyoverse.com
0.0.0.0 uspider.yuanshen.com
如果不会更改并保存hosts文件的自行百度
如果还要玩官服的话,玩官服之前删除掉hosts文件中的这几行,再玩Grasscutter的时候重新加上。
目前本教程基于腾讯云的CentOS 8.2镜像制作,Ubuntu系列随缘更新。
部署在服务器上只可用服务器的公网IP进行游戏,使用域名访问不了,会报错,而且未进行备案的域名会被拦截,所以,在分享你服务器的公网IP的时候请三思,不要将其分享给不认识的人,以免服务器被攻击。
本教程适合有一定计算机基础知识的和会利用百度的人使用,没有上述基础的人请关闭本教程并放弃使用Linux服务器搭建Grasscutter。不会用Linux的vim编辑文件的也请放弃搭建的想法。
部署前准备
1.一台云服务器
建议使用国内或香港的云服务器,其他地区的云服务器(比如新加坡、硅谷、法兰克福、孟买等地的服务器)丢包率和延迟可能较大,影响游戏体验,不建议使用,最好还是使用国内的。
2.一个远程SSH会话软件
比如Xshell,不过本文推荐使用免费开源的Tabby。本文教程所用的为Tabby。
部署运行环境
首先通过Tabby远程连接服务器终端。
安装JDK-17
首先,输入 rpm -qa | grep java
查看自己系统是否有已经安装的 jdk。
如果有跟上图一样以java开头的(注意:并不是名字里含有java的),即为系统预装的jdk,输入以下命令将其卸载:
yum -y remove java-xxx-xxxxx(填写上一步中所列出来的以java开头的jdk包的名称)
全部卸载完成后即可进行下一步的安装。
方法一(推荐):利用 yum 源来安装 jdk17(此方法不需要配置环境变量)
输入以下命令,查看云端 yum 库中的 java 安装包
yum -y list java*
浏览列表中是否有 java-17-openjdk 字样,如果有,则可以进行下一步安装,如果没有,请跳转方法二。
以上图为例,我们选第一个 java-17-openjdk.x86_64
安装就行,执行以下命令:
yum -y install java-17-openjdk.x86_64
等待其安装完成后,输入 java -version
查看版本号,并确认是否安装成功。
使用此方法安装完成后 JDK 的默认安装路径为 /usr/lib/jvm内
安装并配置MongoDB
第一步,输入以下命令,将MongoDB的路径增加到系统配置
vi /etc/yum.repos.d/mongodb-org-5.0.repo
然后将以下代码编辑进该文件中(不会vim编辑的自行百度,本教程不再提及,实在不会就放弃部署):
[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc
确认无误后,退出编辑并保存文件。
下一步输入以下命令安装MongoDB:
yum install -y mongodb-org
这一步可能服务器会显示连接超时,可以多试几次。
输入以下命令以启动MongoDB:
systemctl start mongod
然后输入 mongo
,如果出现以下内容则证明安装没有问题
输入 show dbs
,查看默认的库,确认后按Ctrl+C退出。
安装Grasscutter
在 Tabby 点击 SFTP
,点击 root 文件夹
,点击 上传
,将本地已经下载好的 Grasscutter-dev-22.04.29.zip
(下载链接在文末)上传至 root 文件夹。
上传成功之后返回命令输入界面,依次输入以下命令,将 Grasscutter.zip 解压进 /root/Grasscutter
:
mkdir /root/Grasscutter
unzip Grasscutter-dev-22.04.29.zip -d /root/Grasscutter
配置 json 文件
运行 jar 包,使其生成 .json:
cd /root/Grasscutter
java -jar grasscutter.jar
然后按Ctrl+C结束运行,输入 vi config.json
,编辑 config.json ,修改文件中的两个PublicIP和PublicPort,然后保存并退出。
PublicIP:"你服务器的公网IP"
PublicPort:"跟Port一致"
例如下图中第一个跟20102一致,第二个跟443一致。
下一步,在你的云服务器控制台防火墙页面开放对应端口。
以上图为例,该服务器需要开放的端口是22102和443端口。
注意:22102端口开放协议必须为UDP,不是TCP,如果你开放的是TCP的话,会导致进入游戏以后出现白屏,连接超时的情况。还有就是,服务器安装有宝塔的,记得在宝塔上也将443跟22102端口进行放行,否则照样进不了游戏。
运行Grasscutter
初次使用Grasscutter时需要创建账号,所以依次输入以下命令启动:
cd /root/Grasscutter
java -jar grasscutter.jar
待启动成功后创建账号即可。
之后想要服务器上的服务端一直运行可用以下命令使 jar 包保持后台运行:
nohup java -jar /root/Grasscutter/grasscutter.jar &
如果想要关闭后台运行可输入以下命令查看使用java的进程:
ps -ef | grep java
然后在列表中找到 grasscutter.jar ,输入kill pid grasscutter.jar的ID
即可结束运行。
更新
由于框架已经基本部署完整,所以更新时只用替换 grasscutter.jar 文件并删除掉 config.json 即可,如果你在 config.json 文件中更改了端口或者IP的话,需要重新进入 config.json 文件进行配置。
文末链接会不定时更新最新的grasscutter.jar的Dev开发版,放在云盘中的Dev开发版文件夹中,需要可自取。
版本号区分:Grasscutter-X月X日X时.zip
下载
Grasscutter-dev-22.04.29.zip:点此下载
Dev开发版:国内点此下载
写在最后
如果部署过程中出现问题,欢迎留言或者加群反馈。
如果此教程有帮到你的话,可以打赏一只鸡腿嘛QAQ
服务端已经跑起来了,但是不知道为啥客户端总是连不上(Clipper X1.0.0),跳国服界面,之前的本机部署就没有这个问题。
确定Clipper X1.0.0设置对吗? 我之前Clipper X1.0.0设置完还是会自动跳回127.0.0.1 然后我就删了重新解压一个
按上一篇的设置来的,就是把127.0.0.1改成外网IP,其他都是一样的
俺也一样,我GrassClipper用的是0.85版本。。。不知道是为啥
此 Clipper X1.0.0 非彼 GrassClipper 不过我这里昨晚上玩的时候都正常
你好,有排查出问题吗 我这边也是 服务器上的没问题 客户端连接不上 两个代理软件都试过了 都不可以
无从排查阿,我都不知道哪里的问题
找到问题了,我没关系统防火墙
请问,我已经在liunx上运行好了,用ios的wifi代理 公网ip+端口是22102连上去,一直卡门进不去登陆页面 是端口有问题吗
iOS的话好像是要代理证书 但是目前我还不知道怎么搞
连接服务器失败是什么原因大佬