原神私服
原理
基本原理:
【客户端】- 通过其他的代理相关软件,在本地抓包拦截原神客户端发向官方服务器的网络请求,并转而发送向自建的服务器(可以搭建在本地机器)
【服务端】- 接收客户端发来的请求并模拟原版返回值,由于可以自定义数据,故而实现了自由度极高的私服功能。类似的东西还有很多,Grasscutter只是其中的一个。
Linux服务器
服务器版本:CentOS7
更换源
1 | |
关闭防火墙和selinux
如果购买的是服务器,需要到服务商防火墙配置界面(如腾讯云),设置防火墙策略!!!
逐步开放8080端口、22102端口、444端口、9001端口
关闭防火墙
1 | |
设置防火墙开机不自启
1 | |
查看防火墙状态
1 | |
关闭selinux
1 | |
把SELINUX=enable
改成SELINUX=disabled
重启服务器
1 | |
开机查看selinux状态(disable为关闭)
1 | |
Docker安装
安装依赖包
1 | |

添加Docker镜像源
1 | |

安装Docker
1 | |

启动Docker
1 | |
部署原神服务端
拉取grasscutter镜像
1 | |
可以使用docker images 查看是否拉取成功

部署服务端到docker
下载元神服务端,上传并解压到 /root,使用 ls /root可以看到目录下已经多了 full-grasscutter-"version"文件夹
1 | |


更改config.json
打开服务端目录下的 congfig.json 编辑里面的 accessAddress默认是127.0.0.1 更改为服务器的IP地址(共2处要更改)
注意那个443一定要改成444端口!!!

以docker运行上传的原神服务端
1 | |
/root/full-grasscutter-3.0-Beta.9是元神服务端解压后的文件夹,:后面/var/grasscutter是容器目录。

docker容器操作
1 | |
测试服务端
在服务器内使用浏览器输入 "服务器IP地址"+端口号9001 即可查看运行状态

安装plugin

将插件拖拽到物理机的/root/full-grasscutter-3.0-Beta.9/plugins下面
1 | |
Grasscutter Tools
修改服务器地址,https://10.10.10.66:444,点击查询,右侧服务器状态->远程执行插件显示对号说明成功。

进入割草机环境
1 | |

完成以上操作就可以开始创建账号了
创建账号
,默认不可以自动注册,需要使用 account 指令在控制台创建账号才可以登录;
1 | |
也可以更改配置允许不存在的账号自动注册(不建议开启)。
自定义配置
config.json
卡池配置文件为 .\data\Banners.json ,其中
gachaType=200,scheduleId=893的为常驻池gachaType=301,scheduleId=903的为角色 UP 池 (多 UP: 增加gachaType为 302,303,304… 的成员即可)gachaType=400,scheduleId=913的为武器 UP 池
多卡池:增加 gachaType 为非以上四个值的成员即可,注意客户端只识别以上四个 gachaType 值,添加的其他卡池不会显示类型
本站整合包默认为万达桃三 UP 及前两者专武 (专武封面为前者,是客户端内置资源,无法修改)
rateUpItems1 为 UP 五星,rateUpItems2 为 UP 四星,对应 id 在 Handbook_CHS.txt 中可以找到
需修改 prefabPath previewPrefabPath titlePath 中的 A0** 为对应的卡池 id(在 卡池顺序.xlsx 中)
costItem 为抽卡耗费的货币名称,223 为纠缠之缘,224 为相遇之缘(修改可能会引发 bug)
sortId 为卡池排序,越大越靠前
beginTime endTime 为卡池开始 / 结束的 10 位时间戳
softPity 最少几次出 hardPity 最多几次出 eventChance 歪的概率 % ,如果没有这三个成员自己加上即可
bannerType 为 STANDARD 表示常驻池,EVENT 表示角色 UP 池,WEAPON 表示武器 UP 池 (这个参数貌似只是看的)
客户端
444不通
因为客户端不能直接改配置文件,所以只能改代理,把请求原神服务器的ip:端口重定向到私服的IP:端口。私服的端口为444。
telnet IP 444发现不通,服务器中telent IP 444不通,但是telnet 127.0.0.1 444居然是通的。

查看端口号情况
1 | |
服务器的几个端口都处于监听状态

查看转发列表
1 | |

查看内核转发状态
确保ipv4处于开启状态
1 | |
进入docker容器
1 | |
查看端口号情况
1 | |
docker处于监听状态的端口,tcp有9001和8080,udp有22102,唯独没有444端口。


发现是前面解压后config.json文件没把443改为444,直接进入容器中vi /var/grasscutter/config.json更改后重启即可。
客户端代理方式
flidder拦截重定向
打开Fiddler,菜单栏 Tool -> options -> https

切换到 connections,把端口改成8181,按 OK 保存设置

系统代理中出现8181代理端口即为成功。

主界面选 Fiddler Script ,清空原来的脚本,粘贴如下内容。脚本中的 oS.host 后面改为服务器的IP地址,最后点左上角SaveScript

1 | |
直接用Genshin代理助手

客户端成功进入界面
如果使用的是 国服客户端,启动后有弹窗 (仅 Win) 且登录页面标题为 HOYOVERSE 而不是 miHoYo 即代表成功连接私服;


使用命令获得90级刻晴

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!