原神服务端架构搭建工具+环境配置资料

news2024/11/29 22:48:13

原神服务端架构搭建工具+环境配置资料

我是艾西,今天给大家分享一份详细的原神服务端结构资料教程,从服务端的获取到端口的使用以及安卓和ios的DAIL签名等一文让你明白怎么架设原神服务端,哪些工具资料又代表着什么意思(保姆级教学)

Grasscutter

项目: xxxxx://github.XXX/Grasscutters/Grasscutter

GuanFWiki文档: xxxxx://github.XXX/Grasscutters/Grasscutter/wiki

基本原理:就是抓包拦截了GuanF游戏的网络请求,然后分析请求和返回值,然后模拟这些请求返回写了一个服务端。类似的东西还有很多, Grasscutter只是其中的一个。

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

Fiddler是位于客户端和服务器端的xxxxDAIL,也是目前最常用的xxxx抓包工具之一。它能够记录客户端和服务器之间的所有xxxx请求,可以针对特定的xxxx请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。

Shadowrocket是iOS/iPadOS平台上较早出现的支持SSR协议的客户端,坊间称作"小火箭”。在大陆区已被下架,请使用M区账号在AppStore下载

Docker是一个用于开发, 交付和运行应用程序的开放平台。可以将应用程序与基础架构分开,从而可以快速交付软件。作用:将-整套环境打包封装成镜像,无需重复配置环境,解决环境带来的种种问题。Docker容器间是进程隔离的,谁也不会影响谁。

方文档: xxxxx://docs.docker.XXX/get-started/

Shadowrochket

 

注册M区Apple ID并将其激活

使用DAIL:打开SSR软件,选择一个USA节点, 将DAIL规则更改为”全局DAIL”

(注册和激活全程要使用DAIL)

注册M区Apple ID:开appleid.apple.XXX一创建 您的Apple ID一填写GR信息(注意“GJ和地区”选择USA,”DHHM” 使用Temporary SMS and Disposable Numbers获取一个虚拟的USADHHM)一邮箱验证和DIANHUA号 码验证(DHHM的验证码由上述的那个网站获得)一注册成功后再登录M区Apple ID把“受信任的DHHM”换成自己的国内SHOUJ号

激活M区Apple ID:打开手机的App Store,输入刚刚注册好的M区Apple ID,会提示this apple id has not yet been used in the itunes store (此Apple ID尚未在iTunes商店中使用),点击Review--借助USA虚拟GR信息生成填写信息(Street是街道的意思,Zip是邮编的意思, 尤其注意要选择一个免SUI区的州: Alaska、 Delaware、 Montana、 New Hampshire、Oregon否则GOUMApp时会收SUI)

 

使用M区礼品卡CQGOUM

如果你有PayPal,那么将其绑定上去即可。没有它的话GOUMM区App Store的收费软件就需要去淘宝GOUMM区gift cardCQ。

去淘宝GOUMM区gift card (可叠加使用)一打开M区App Store点击Redeem Gift Card or Code将买到的卡密信息输入进去即可CQ成功

在M区App Store搜索Shadowrocket软件,它的基本使用方式不再赘述。

申请泛域名SSLzhengs

下面将使用acme.sh开源项目申请免费的Let' S Encrypt泛域名SSLzhengs。

安装acme.sh .

普通用户和root用户都可以安装使用,安装过程进行了以几步:

把acme.sh安装到你的root目录下,并创建一个bash的alias, 方便你的使用。

自动为你创建cronjob,飫0:00点自动检测所有的zhengs,如果快过期了,需要更新,则会自动更新zhengs。

注:安装过程不会污染已有的系统任何功能和文件,所有的修改都限制在安装目录中。那个socat未安装的问题不用管,那是xxxx验证无Web Server时才需要的。

生成SSL泛域名zhengs

acme.sh实现了acme协议支持的所有验证协议,-般有两种方式验证: xxxx 和dns验证。

xxxx验证: xxxx 方式需要在你的网站根目录下放置一个文件, 来验证你的域名所有权。

dns验证: dns 式,在域名上添加一条txt解析记录,验证域名所有权。

dns方式的可以使用域名解析商提供的API自动添加txt记录完成验证,下面我们将采用这种方法申请Namesilo的泛域名zhengs。

Step1:打开xxxxx://www.namesilo.XXX/account/api-manager申请NameSilo API,勾选第2个复选框,点击Generate, 即可生成。

注:务必不要勾选上Generate key for read-only access的哪个复选框,否则会导致Unable to add the DNS record. Error add txt for domain的问题。另外,生成的API只出现一次,如果没记下来只能重置。

Step2:在服务器输入以下命令,实现自动dns验证生成泛域名zhengs。

等待1 800s即可看到申请下来的SSLzhengs(NameSilo的验证比较慢, GuanF文档上写的900s有时不足以验证完)

 

生成文件都放在root/.acme.sh/example.XXX/目录下,其中 example.XXX.key 是密钥文件,Fulichain.cer是zhengs文件。

注:如果你的域名不是NameSilo的,上述操作有所不同, 具体请参考: xxxxx://github.XXX/acmesh-official/acme.sh/wiki/dnsapi

项目依赖环境搭建

搭建Docker环境

创建Docker network

正式环境使用docker network对Docker容器进行统-管理,像MongoDB数据库这种提供服务的,就不对外提供端口了,各容器之间通过hostname进行内部通信,保护系统安全。

 Docker-MongoDB环境搭建

不需要设置密码验证,也不需要暴露端口,与Grasscutter的容器加到同一个docker network里,在内部通过hostname进行通信。

注:由于没有对外暴露,要想访问MongoDB数据库只能进入容器通过命令查看,可视化管理工具在外面连不上。

 Docker JDK环境搭建

搭建Docker-JDK17环境(不可使用其他版本),下面Grasscutter使用的是汉化版本。

注:创建容器时需要映射22102、443端口, 这是为了后续搭建GrasscutterSIF用的。22102是游戏服务器(GameServer)的端口,用来处理一些传送、 伤害数值计算等信息,如果是在服务器部署的话记得在安全组放开这个端口的UDP协议,防止出现4206错误无法进入游戏。443是用来处理登录、 游戏更新的端口(DispatchServer,默认的443大概率被占用,可以更换成别的。

使用Grasscutter措建SIF

准备Grasscutter服务端及资源

服务端配置文件使用的是: xxxxx://github.XXX/Grasscutters/Grasscutter.

xxxxx://github.XXX/Grasscutters/Grasscutter-Protos

服务端jar包使用的是: xxxxx://t.me/genkitCN/37

资源包使用的是: xxxxx://github.XXX/Dimbreath/GenshinData.

xxxxx://github.XXX/radioegor146/gi-bin-output

搭建Grasscutter服务端

第一次启动肯定是会失败的,为的是让jar包执行时自动生成一个configjson (如果有就不会重新生成),下面我们需要修改里面的配置:

配置含义说明:

如果是本地运行的话里面的两个Publiclp不用动,如果是放在服务器上的话需要把两个Publiclp改为服务器的公网IP。

上面的”Port" :22102是游戏服务器(GameServer) 的端口,用来处理一些传送、 伤害数值计算等信息,如果是在服务器部署的话记得在安全组放开这个端口的UDP协议。防止出现4206错误无法进入游戏。除了安全组外,还要检查一下防火墙有没有开放。

下面的" Port" :443是用来处理登录、游戏更新的端口(DispatchServer), 默认的443端口服务器可能不太好搞,国内可能需要备案才能使用,或者被nginx等服务占用了。而windows也可能会被VMWare的Share共享服务或者Steam占用,所以可以改为别的端口。改好之后如果是服务器的话记得在安全组放行该端口的TCP协议。除了安全组外,还要检查一下防火墙有没有开放。

"WelcomeMotd" : "Welcome to Grasscutter emu" ,这个是进服务器之后Server发给你的欢迎语句,可以改成好玩的,"欢迎来到XXXSIF”之类的。

"KeystorePassword" : "123456" ,这个是那个zhengs文件的密码(不需要修改),最新版的zhengs是有密码的,记得填上。

"AutomaticallyCreateAccounts" : false,这个是控制自动创建账号的,改为true之后,如果登录SIF的时候 没有那个账号的话会自动创建一个并登 录进去,然后分配默认的uid,从10001开始往后顺延。

"MaxAvatarsInTeam" :4 "MaxAvatarsInTeamMultiplayer" :4,联机队伍中最多角色数,更改之后可以切换联机数量。

修改后的配置示例

(如果是按照我上面的操作,这里只需要把如下配置修改一下IP和域名即可) :

注:即便你的443端口被占用,而像我一样把它给改成了444, DispatchServer里的PublicPort也要填443,否则会出现4206错误。

以后更新的时候只用替换掉grasscutterjar就行,config.json也要重新生成并进行修改。

先不带nohup进行启动,全程不报错并出现类似下图的日志,即为启动成功。

 

4.3添加反向DAIL并开启xxxxx

添加反向DAIL:宝塔面板一网站一 设置一 反向DAIL一 添加反向DAIL一 填写DAIL名称和目 标URL ( xxxxx://127.0.0.1.444 )

开启xxxxx:宝塔面板一网站---设置----SSL---- 其他zhengs,把example.com.key密钥文件、

fullchain.cerzhengs文件复制上去,强制xxxxx.

注意事项:添加反向DAIL时的目标URL必须是xxxxx://.而不能是xxxx://.否则不能正确反向DAIL,配置成功后浏览器访问xxxxx://域名可以看到”hello" 字样。

5.客户端的基本配置

5.1 Win10客户端的基本配置

Win1 0端建议使用Fiddler 作为流量劫持工具,打开Fiddler是SIF,关掉Fiddler就是官服。

Fiddler下载: xxxxx://www.telerik.XXX/fiddler/filddler-classic

配置说明:

Step1:选择左上角Tools-Options,在xxxxx里面选择Decrypt xxxxx trafic.

Step2:选择Connections, 然后选择一个端口, 要避开8888端口,我这里用的是8181端口,点击OK。

Step3:在Fiddler右侧找到FiddlerScript, 把原来的代码全部删掉,然后把下面的这一段代码放进去(把host改- -下即可),然后点击左上角的Save Script保存脚本使其生效。

 

注:之后就可以打开Genshin Impact Game里面的YuanShen.exe启动游戏了。期间会弹出一个信任zhengs的选项,选择Yes即可。

 iOS客户端的基本配置

iOS端建议使用Shadowrocket作为流量劫持工具,开启DAIL再运行游戏便进入SIF,不开启DAIL运行游戏就是官服。

Step1: Shadowrocket >配置>模块>新建模块,写入以下内容(把域名换成实际值)

Step2:开启并配置MitM

 

 

Shadowrocket >配置>本地文件>选中活跃配置右侧的i图标> xxxxx解密,启用、生成并信任zhengs。别忘了到设置>通用>关于最下方信任根zhengs>启动Shadowrocket

原神SIF的基本使用

原神SIF通过向管理员发送命令来获得资源,具体指令详见: Dev分支中文指令列表

由于敲指令不够方便,群友们制作的各类小工具,如下就是一个命令生成器。

项目地址: xxxxx://github.XXX/jie65535/GrasscutterXXXmandGenerator

 

 

我是艾西,今天的分享就到这里啦我们下期见

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/528099.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RFM模型

目录标题 定义指标分析模型分析如何衡量每个客户的RFM指标1. 确定时间范围2. 要定义指标的衡量标准3. 对客户指标进行打分4. 计算平均值5. 用户分类 不同客户不同解决方案 RFM的最大短板RFM的深层问题R:用户离得越久就越有流失风险F:用户频次越高越忠诚M…

SpringBoot 日志文件从入门到实战

文章目录 1. 日志的作用2. 日志怎么用3. 自定义日志打印3.1 程序中得到日志对象3.2 使用日志对象打印日志3.3 日志格式说明 4. 日志级别4.1 日志级别的作用4.2 日志级别的分类与使用4.3 日志级别的设置4.4 综合练习 5. 日志的持久化5.1 配置日志文件的保存路径:5.2 配置日志文件…

MVP发布后,下一步该怎么办

MVP发布后,下一步该怎么办 一、为什么要从发布MVP开始?二、发布MVP后该做什么?1、推广MVP2、收集用户反馈3、进行用户发展访谈4、确定功能的优先次序5、建立一个产品路线图 三、如何衡量一个MVP的成功?1、分析仪表板的重要性2、创…

图解LeetCode——160. 相交链表

一、题目 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。注意,函数返回…

怎么把jfif改成png格式?这四种方法值得一试

怎么把JFIFf改成PNG格式?众所周知,JFIF是一种JPEG图像格式的子集,可以提供高质量的压缩效果。但是,JFIF格式有一些限制,例如它不支持透明度和多图层等功能,而PNG格式则是一种无损压缩的图像文件格式&#x…

从零开始Vue3+Element Plus后台管理系统(九)——使用API协作平台Mock数据

截止目前,本项目用了2个接口,一个登录,一个获取列表数据。接下来想做的页面和功能,为了看起来更真实,就需要增加更多的模拟数据。 Mock语法写得有些随意,看起来还是很假 😁 Mock数据可以使用M…

认识IPv6---寻址模式与地址类型与格式

本文目录 1、IPv6寻址模式1.1、单播(unicast)1.1、组播(multicast)1.1、任播(Anycast) 2、IPv6地址的类型与格式2.1、IPv6地址的格式2.2、IPv6地址的类型2.2.1、单播地址简介2.2.2、组播地址简介2.2.3、任播地址简介 IPv6的出现,最重要的原因是为了解决IPv4地址不足…

我扛住字节面试了,太干了......

春招进展快 2 个月,今年相比往年我感觉比较卷,很少见到offer收割机的选手。 不管环境如何,持续学习这个是不能放弃的,心态也要稳一稳,坦然面对失败,失败才是常态,成功可能才是偶然的。 好了&a…

LitCTF-web-WP(部分)

前言 CSDN内容合伙人 2023年CSDN新星计划Web安全方向导师。 华为MindSpore截至目前最年轻的优秀开发者 阿里云专家博主、华为网络安全云享专家以及腾讯云自媒体分享计划博主。 吉林师范大学CTF校队——SuD0战队的队长 吉林师范大学网信网安学生负责人 核心粉丝群超过50人 带队…

网址域名查询-域名注册查询工具

域名查找软件 域名查找软件是一种能够帮助用户快速查询域名相关信息的工具。它通常提供了批量域名查询和实时域名查询服务,能够帮助用户查询域名的注册信息、到期时间、所有者信息、域名服务器等多种相关信息。以下是域名查找软件的主要特点: 批量域名查…

roadmap go语言

技术类的Roadmap(路线图)具有许多好处,下面是其中几个主要的好处: 明确目标:Roadmap可以帮助技术团队明确目标和愿景。它提供了一个清晰的计划,使团队成员知道他们正在朝着什么方向前进,并且可…

网络正常但是web、ftp、telnet应用新建连接偶尔卡顿处理方法

目录 问题现象 故障定位 TCP报头 options详解 Opions Kind有哪些 options中的Timestamp详解 TSval & TSecr Timestamp Value的单位是什么 TCP连接的建立与释放 普通三次握手 带时间戳的三次握手 抓包展示带时间戳的tcp会话 WireShark中的时间 VS tcpdump 直接…

KDZD400Q紫外臭氧浓度分析仪

一、产品概述 检测仪用于快速检测多种气体浓度、温湿度测量并超标报 警的场合。采用 2.31 寸高清彩屏实时显示,选用进口品牌的气体传感器,主要检测原理有: 电化学、红外、催化燃烧、热导、PID 光离子等。 可以检测管道中或受限空间、大气环境…

耗时几个月,终于决定把原本想用于商业的系统开源了

前言 嗨,大家好,我是希留,一个被迫致力于全栈开发的老菜鸟。 今天又来给小伙伴们分享一个基于 SpringBoot Vue 实现的前后端分离后台管理系统项目; 简介 这个项目是基于xiliu-tenant脚手架项目搭建而成,原本是帮朋…

USB转UART转串口芯片 GP232RNL国产低成本替代FT232RL/FT232RNL

近期收到很多人咨询FT232RL跟新版FT232RNL两者有什么区别,实际上就是内部做了一点升级,FT232RNL支持Windows11系统,参数并没有改动,完全可以直接替换使用。 今天小编给大家讲讲FT232RNL国产低成本替代芯片–GP232RNL GP232RNL 是…

动态规划:01背包理论基础 一维dp数组(滚动数组)

确定dp数组的定义 在一维dp数组中,dp[j]表示:容量为j的背包,所背的物品价值可以最大为dp[j]。 一维dp数组的递推公式 dp[j]为 容量为j的背包所背的最大价值,那么如何推导dp[j]呢? dp[j]可以通过dp[j - weight[i]]推导…

Ubuntu20.04解决疑难杂症问题问题合集

下列问题都是我一次性遇见的倒霉不。 问题一: 安装 linux 版网络调试助手,安装成功后打不开运行文件 解决办法: #通过执行可执行文件打开 # 进入到可执行文件下 cd /opt/mNetAssist/ # 运行主程序 ./mNetAssis 如果出现: libq…

体检中心智能导检系统排队是什么流程?

随着智能信息化建设的推进下,体检中心也越来越规范化、现代化、智能化,智能导检系统,有效完善体检中心服务水平,简化体检流程,节省排队等候时间,提高体检的效率,也能提升体检服务中心的形象。 下…

JVM 执行引擎

执行引擎概述 是Java 虚拟机核心的组成部分之一物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行哪些不被…

2、Flume进阶

目录 1、Flume事务 1.1 Flume事务 1.2 Flume Agent内部原理 1.3 重要组件: 2、 Flume拓扑结构 2.1 简单串联 2.2 复制和多路复用 2.3 负载均衡和故障转移 2.4 聚合 3、开发案例 3.1 复制和多路复用 3.4.2 负载均衡和故障转移 3.3 聚合 1、Flume事务 1.…