【原神】windows下某款知名二次元游戏私服搭建过程--Grasscutter

某款知名二次元游戏私服搭建过程过程--Grasscutter

一、项目介绍

1. Grasscutter介绍:

​ 众所周知,原神在进入2.6版本后,因为一些不可抗力因素陷入了延迟更新,全球玩家完成版本任务之后就陷入了长久的长草项目,在这种情况写,一款名为Grasscutter的除草项目上线,此项目在不需要修改客户端数据的情况下,通过通信拦截(中间人攻击MITM)的方式仿照官方服务建立第三方私服接管其数据,本文章尽可能的为大家提供和介绍此项目的构建搭建方式。值得注意的是:本文章参考已有资料进行构建,用途仅限于学习相关技术,不允许私自搭建多人私服,更不允许通过此开源技术以任何借口的方式盈利,本文章仅仅整理和发表自己经验,不对其中的软件,系统,文件做任何的责任保证,知识无价,请遵守当地相关法律法规,遵守开源精神道德。

2. MITM介绍

​ MITM 即中间人攻击(Man-in-the-middle attack)。用于中间人攻击的代理首先会向正常的代理一样转发请求,保障服务端与客户端的通信,其次,会适时的查看、记录其截获的数据,或篡改数据,引发服务端或客户端特定的行为。
image-20220520153111214

二、通用准备工作

安装基础环境

项目要求环境必须有且不低于JDK17MongoDB 4.0+ Python3.10,服务端相关程序的安装请参考下面具体的安装过程
如果选择自编译的话,客户端环境必须保证有JDK17Java安装教程不在赘述,使用本站提供的软件下一步下一步即可
如果github的文件下载不下来,文末有国内加速下载地址

编译服务端文件

获取服务端源代码,如果电脑存在git,那么直接执行下面的命令即可获取到响应的分支,否则就需要直接访问https链接手动下载,我使用DEV开发分支,开发分支可能BUG较多,但是可以体验到最新更新,关于未安装git的下载方法请参考下方图片

# 稳定分支
git clone https://github.com/Grasscutters/Grasscutter
# 开发分支
git clone -b development https://github.com/Grasscutters/Grasscutter

下载示意图

在获取到源码之后,我们进入到源码目录,使用链接下载的会是一个压缩包,那我们将其解压后打开

目录结构

进入到目录之后我们在空的地方,右击菜单,在终端中打开。win10用户需要按住键盘Shift按键右击,选择再此使用命令提示行
win11

编译:在写这篇文章的时候,博主在家用电脑和服务器上均编译失败,提示JavaDoc错误,此时时间是2022年5月20日,此源码可能有编译BUG,所以你如果也遇到这个问题,可以使用我以前编译好的Dev1.1.2版本,或者加入相关TG群留意~~~

# Windows
.\gradlew.bat
.\gradlew jar

# Linux
cd Grasscutter
chmod +x gradlew
./gradlew jar

补全文件:编译结束之后,当前文件夹中会多一个以Jar结尾的包,此包就是服务端,为了方便,我们单独新建一个文件夹 Grasscutter ,以下补全操作均在我们新建的文件夹当中。再次打开上面提供的仓库链接,选择dev-world-script分支,下载资源包。资源包

下载之后解压,将里面的Keys, Data, Keystore.p12文件和文件夹复制到我们新建的文件夹 Grasscutter 中

获取resource资源,没有git就直接访问https链接下载

# 有git就直接在创建的文件夹下执行
git clone https://github.com/Koko-boya/Grasscutter_Resources.git resources
# 没有git的访问
https://github.com/Koko-boya/Grasscutter_Resources.git    

下载之后解压重命名为resource(全小写)放在我们新建的文件夹 Grasscutter当中

至此,服务端程序准备结束,你的目录结构应该为:

Grasscutter
 ├── data
 ├── keys
 ├── keystore.p12
 ├── grasscutter.jar
 └── resources
     ├── BinOutput
     ├── proto
     ├── ExcelBinOutput
     ├── Readable
     ├── Subtitle
     └── TextMap

​ 如果以上的文件下载失败,文末有我提供的完整文件

三、系统搭建过程

MongoDB数据库

前往MongoDB官网,在右侧下载 5.X版本的MongoDB,推荐使用msi方式安装MongoDB

JDK 17

  • 如果你是用我提供的Order JDK 17,那么就不需要任何配置
  • 如果你使用OpenJDK 17,那么:

    • 前往 Java 官网,下载 zip 文件,解压到一个平时不会动的位置(比如 C:\Program Files\Java)
    • 右键计算机 -> 属性 -> 高级系统设置 -> 高级 -> 环境变量
    • 点击系统变量中的新建,建立一个名为 JAVA_HOME 的变量,并设置为解压的路径,比如 C:\Program Files\Java\jdk-17.0.2
    • 系统变量中找到 Path,点击编辑,在弹出的窗口中添加 $JAVA_HOME\bin`
    • win徽标+R输入 cmd进入DOS 窗口,输入 java -version 回车后,输出类似 openjdk version "17.0.3" 2022-04-19 的内容则表示安装成功

mitmproxy代理

python 3

前往 Python 官网,在 Stable Releases 中下载 Windows Installer (64-bit)

下载打开后下一步下一步

在进行安装时,请一定确保 Add Python 3.x.x to PATH 复选框已经勾选

安装完成后,打开cmd窗口输入python -v有输出类似 Python 3.10.4 的内容则表示安装成功

mitmproxy 本体

前往 mitmproxy 官网,下载 Windows Installer 并安装

运行服务器

打开我们刚才创建的 Grasscutter文件夹, 将上方地址栏中的内容改为 cmd,回车即可在当前目录打开命令提示符
在确保 MongoDB 在正常运行的情况下,输入 run.bat 即可启动服务端
然后运行 proxy.bat,启动 mitmproxy 代理
如果输入提示如下图所示的问题,那么就需要下载我提供的bat脚本文件放入其中,此文件的下载方式文末有!
文件下载看文末
没有问题的同学们,运行之后的样子如下图所示:
成功案例

注意哈:右边22102端口显示的是服务器核心启动成功,如果你们是英语版的,只要看右边不出现红色的ERROR,然后输出一句带有22102端口英语就行。然后左边是代理的启动框,这个你们在使用原版的时候,那个http默认端口是54321吧好像
需要注意的是,如果你搭建的云服务器上,那么请注意443端口是否被占用,如果被占用则需要在config.json文件当中修改,修改之后也必须在proxy.bat文件当中修改为一样的,此端口设置失败将导致4206错误,或者直接连接不上!
部署在云服务器上,拥有公网ip,想和小伙伴们一起玩的话看这一步,如果你是本地的话请略过,我们需要修改config.json文件当中的配置,如果你没有这个文件,请运行一次run.bat,自动生成!
图片.png
将文件当中两个accessADDress选项后面的ip换成你自己服务器的公网ip即可,值得注意的是,第一个更换项下面就是上面那一步中,如果443冲突,则需要修改的地方,此文件也可以配置启动游戏后的一些欢迎语等,具体操作请看配置文件详解部分

同时需要主意:云服务器上系统不仅要放出8080 54321 443 22102(UDP)端口,还需要在云服务器提供厂商的安全组同步放行,如果你不会,则放行全部TCP,UDP端口即可但是此操作有风险,切记~~

常见问题以及配置文件解读

更为详细的配置文件解读以及我放在了另一篇文章里,TMD整理吐血了~~~~

四、客户端登录

1. windows下

两种代理方式,Fiddler与系统自带,区别在于系统自带为全局代理,简单方便,但是代理启动期间,其他网页无法访问.Fiddler方式需要配置,较为麻烦,但是一次配置之后,接下来就不需要再动了
系统代理
win11系统用户右击任务栏右边网络图标,打开网络和Internet设置进入到网络配置,选择下方的代理按钮,配置方式如下图,本地服务器输入127.0.0.1,端口号为proxy.bat运行后显示的http端口,服务器就填写公网ip即可
win11
开启代理后,打开任意浏览器,输入mitm.it下载证书,如果显示的一串黑色英语字符就是错误的,如下图:错误显示,正确为:正确显示
选择你对应的系统,点击绿色长条按钮下载证书,之后安装,安装证书步骤为

  • 安装时点击下一步直到证书存储页面。将所有的证书都放入下列存储 浏览并选择 受信任的根证书颁发机构
  • 其余步骤直接默认点击下一步即可

2. IOS与安卓下

没有ios设备,所以请参考这个博主的文章

五、文章内软件资料下载方法

[scode type="blue"]解压密码: 7yog.cn[/scode]

  • 通用下载方式
    度盘下载,提取码7777
  • 关注我的公众号,号码内回复【除草机】即可获取所需工具,扫描下方二维码即可!

长安念姑苏

六、参考资料

站在巨人的肩膀上吸收知识,感谢各位前辈的资料文献,如果不详细,欢迎补充

评论区
头像
    头像
    免费v2ray节点
    2022年07月09日 22:33
    回复

    感谢分享

文章目录