本文已过时,请前往 原神私服游玩教程 查看最新文章
本文仅供学习交流,严禁用于商业用途,侵权联系或评论我删除
解压密码均为:rainkavik.com
本文使用的是3.2的服务端进行搭建示范,以下所有文件都能在我的个人网盘找到。
如果你是小白,请在进行环境安装之前,重启一次电脑,把后台奇奇怪怪的软件关掉(新服务器忽略)。
关于本机和服务器的区别,我会在文章之中注明区别(没有标注的都需要操作),请关注好每一个字。
碰到问题请转到 Grasscutter-常见问题
1.修改客户端文件
下载补丁:RainKavik网盘/客户端/3.x-x服-UserAssembly.zip
解压后得到 UserAssembly.dll
打开官服路径:Genshin Impact Game\YuanShen_Data\Native
官服路径下自带一个 UserAssembly.dll
把他重命名为:UserAssembly-官服.dll
重命名的目的是为了备份 没有官服游玩需求可以直接覆盖
把补丁包里面解压的 UserAssembly.dll放到此路径
2.下载代理:RainKavik网盘\代理软件\mhy代理转向
下载完成 解压 以管理员方式打开mhy代理转向
下面地址输入进去
gc.rainkavik.com:320
下方代理端口留空!!!!!!!!!
进入游戏后记得关闭代理,否则电脑会出现无网络情况,服务器压力也大~!
指令搭配Tools指令箱使用 下载路径:网盘\其他\GrasscutterTools-v1.6.6.exe
服务端安装
安装环境:
下载安装jdk和mongodb:
文件下载路径:RainKavik网盘/环境
完整文件名:jdk-17.0.2_windows-x64_bin.exe
完整文件名:mongodb-windows-x86_64-5.0.8-(仅限win10及以上使用).msi
1.网盘路径下有两个 mongodb
,根据自己的系统版本下载对应版本。
2.如果你是小白,请勿更改任何设定。
服务端下载:
文件下载路径:RainKavik网盘/服务端/full-grasscutter-3.x-#####_RainKavik.zip
运行服务端:
必改:"server-accessAddress": "127.0.0.1"
必改:"game-accessAddress": "127.0.0.1"
两个 127.0.0.1
,更改为服务器公网IP或者局域网IPV4地址
IPv4地址获取:任务管理器-性能-以太网(WIFI)-右下角IPV4
修改完成切记保存关闭
运行 run.bat
显示 加载完成!输入 "help" 查看命令列表
即代表开服成功,显示其他请看常见问题。
登录你的服务器管理后台-防火墙-添加防火墙规则
TCP443
(Windows和Android免证书登录端口)
UDP22102
(游戏数据交互)
注意:有个别服务器可能还需要在系统界面防火墙放行端口。
WIN+R
打开运行,输入 wf.msc
,在入站规则选项最右侧,新建规则-端口,添加以上三个端口。
出站规则不需要更改,默认全开。
完成以上,服务端教程到此结束,接下来是客户端教程。
客户端
自行准备客户端(即你现在的官服)。
补丁安装:
RK的两个代理软件都支持自动安装和还原补丁,这里我还是用手动安装为教程。
补丁下载路径:RainKavik网盘/客户端/3.x-x服-UserAssembly.zip
下载完成解压得到:UserAssembly.dll
打开以下路径
国服:Genshin Impact Game\YuanShen_Data\Native
国际服:Genshin Impact Game\GenshinImpact_Data\Native
此目录下面有一个 UserAssembly.dll
,请把它重命名为 UserAssembly-官服.dll
,否则你将无法进入官服。
复制刚才解压得到的 UserAssembly.dll
到此目录代替原先的文件。
Native
文件夹应该有以下两个文件
Windows连接服务器:
这里一共提供多种方法,任选其一,切记所有代理软件都需要已管理员身份运行。
下载地址:网盘/代理软件/mhy代理转向.zip
地址:
127.0.0.1:443
代理端口:留空!!!!!!!!!!
地址填写说明:IP:443端口(Dispatch端口),切记使用英文符号
。
下载地址:网盘/代理软件/Genshin代理助手.zip
地址:本机搭建填写 127.0.01
服务器搭建填写 服务器公网IP
端口 443
填写完成-启动代理
客户端连接
双击打开 YuanShen.exe
或 GenshinImpact.exe
,启动客户端
在服务器 run.bat
运行窗口输入以下语法进行账户注册
语法:account create 登录账号 UID
例如:account create rainkavik 10000
返回客户端输入你注册的账号,密码可随便填
进到游戏内,立即关闭代理 :长时间代理,你流量全走服务器,你电脑和服务器都累,而且还可能会被服务商 ban 机!
补充说明:
以下两种方式都需要对应插件的支持,网盘服务端已经内置。
PC玩家请搭配 GrasscutterTools指令工具
使用
下载地址:网盘\其他\GrasscutterTools-v1.6.6.exe
手机玩家在游戏内输入/wt获得指令邮件(pc端适用)
最新版本需要使用指令点亮地图:/prop unlockmap 1
网盘内的视频教程可能已经过时,请添加频道获得安卓和pc视频
(频道只有链接服务器视频,没有搭建视频,懒癌晚期,别叫了!)
其他
{
"folderStructure": {
"resources": "./resources/", //资源
"data": "./data/", // 数据配置
"packets": "./packets/", //数据包
"scripts": "./resources/Scripts/", //资源脚本
"plugins": "./plugins/" //插件目录
},
"databaseInfo": {
"server": {
"connectionUri": "mongodb://localhost:27017", //MongDB 服务器数据库
"collection": "grasscutter" //MongDB数据表:默认grasscutter
},
"game": {
"connectionUri": "mongodb://localhost:27017", //MongDB 服务器数据库
"collection": "grasscutter" //MongDB数据表:默认grasscutter
}
},
"language": {
"language": "zh_CN", //当前本地语言chs
"fallback": "en_US", //备用回退语言en
"document": "EN" //文件语言 默认EN 可选CHS CHT 例:"document": "CHS"
},
"account": {
"autoCreate": false, //登录任意账户自动创建账户 默认关闭 开启例: "autoCreate": true,
"EXPERIMENTAL_RealPassword": false, //自动创建账户时候固定密码不再是随意密码登录(4benj哥哥写的感觉不好用)
"defaultPermissions": [], //默认的权限组 可选例: "defaultPermissions": [player.*,server.*],
"maxPlayer": -1 // 服务器在线最大人数 -1 表示关闭
},
"server": {
"debugLevel": "NONE", //调试模式 类型说明:"NONE","MISSING","ALL" ->NONE: 不显示调试信息,MISSING: 仅显示未知请求,ALL: 全部显示
"DebugWhitelist": [], //调试白名单
"DebugBlacklist": [], //调试黑名单
"runMode": "HYBRID", //运行模式 类型说明: "HYBRID","DISPATCH_ONLY","GAME_ONLY" -> HYBRID: 同时运行负载均衡服务器和游戏服务器,DISPATCH_ONLY: 仅运行负载均衡服务器,GAME_ONLY: 仅运行游戏服务器
"http": {
"bindAddress": "0.0.0.0", //监听(所有)IP地址 0.0.0.0
"accessAddress": "127.0.0.1", // 访问(本地)IP地址 127.0.0.1 可选C类IP地址 :192.0.0.0 ~ 223.255.255.255 或者 AB类地址 A:1.0.0.0 ~ 127.255.255.255 B:128.0.0.0 ~ 191.255.255.255
"bindPort": 443, //监听端口 443
"accessPort": 0, // 访问端口 自动返回
"encryption": {
"useEncryption": true, //使用加密
"useInRouting": true, //使用开启
"keystore": "./keystore.p12", //密钥路径
"keystorePassword": "123456" //密钥密码
},
"policies": { //策略
"cors": { //CORS 跨域
"enabled": false, //开关 false 关闭
"allowedOrigins": [ //允许的来源 "*" 全部
"*"
]
}
},
"files": {
"indexFile": "./index.html", /// web 主页界面文件路径
"errorFile": "./404.html" //无法访问 web 404 界面文件路径
}
},
"game": {
"bindAddress": "0.0.0.0", //监听(所有)IP地址 0.0.0.0
"accessAddress": "127.0.0.1", // 访问(本地)IP地址 127.0.0.1
"bindPort": 22102, //监听端口 443
"accessPort": 0, // 访问端口 自动返回
"loadEntitiesForPlayerRange": 100, //玩家加载范围 据说调低40左右 降低负载 对低性能机器很友好
"enableScriptInBigWorld": false, //大世界脚本 默认false 开启true
"enableConsole": true, //启用控制台 true
"gameOptions": {
"inventoryLimits": { //库存限制
"weapons": 2000, //武器最大数量
"relics": 2000, //圣遗物最大数量
"materials": 2000, //材料最大数量
"furniture": 2000, //家具最大数量
"all": 30000 //总库存最大数量
},
"avatarLimits": { //人物上限
"singlePlayerTeam": 4, //单人队伍共限制4人
"multiplayerTeam": 4 //联机队伍共限制4人
},
"sceneEntityLimit": 1000, //玩家生成怪物上限
"watchGachaConfig": false, //监控Gacha配置修改
"enableShopItems": true, //商店开关:true
"staminaUsage": true, //体力条开关:true
"energyUsage": false, //元素充能开关:false
"resinOptions": { //树脂选项
"resinUsage": false, //树脂使用开关:false
"cap": 160, //树脂上限160
"rechargeTime": 480 //补给树脂间隔时间
},
"rates": { //爆率
"adventureExp": 1.0, //冒险EXP 1.0
"mora": 1.0, //摩拉 1.0
"leyLines": 1.0 //地脉 1.0
}
},
"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\u003ctype\u003d\"browser\" text\u003d\"Discord\" href\u003d\"https://discord.gg/T5vZU6UyeG\"/\u003e\n",
"sender": "Lawnmower", //发件人署名
"items": [ //发送物品
{
"itemId": 13509, //id[武器] 13509 雾切之回光
"itemCount": 1, //给予数量
"itemLevel": 1 //给予等级
},
{
"itemId": 201, //id[物品] 原石
"itemCount": 99999, //给予数量
"itemLevel": 1 //给予等级
}
]
}
},
"serverAccount": { //服务器帐户好友设置
"avatarId": 10000007, //人物ID
"nameCardId": 210001, //名片ID
"adventureRank": 1, //冒险等级
"worldLevel": 0, //世界等级
"nickName": "Server", //昵称
"signature": "Welcome to Grasscutter!" //签名
}
},
"dispatch": {
"regions": [ //服务器列表区域
{
"Name":"Grasscutter",//名称
"Title":"Grasscutter", //标题
"Ip":"127.0.0.1", //IP地址默认本地127.0.0.1
"Port":"22102" //game.bindPort 22102 端口
},
{
"Name":"Grasscutters",//名称
"Title":"Grasscutter",//标题
"Ip":"127.0.0.1",//IP地址默认本地127.0.0.1
"Port":"22102"//game.bindPort 22102 端口
},
],
"defaultName": "Grasscutters" //默认加载Grasscutters 名称服务器
}
},
"version": 3 //版本 3
}
推荐使用 Grasscutter Tools工具箱 (仅 Win) 或 GrasscutterTools(网页版) 等生成指令
游戏登陆后默认有一个名为 Server
的好友,此为游戏控制台,可向其发送指令
游戏内 Server
好友输入示例:/give all
run.bat
运行窗口输入示例:give @10001 all
更多指令请使用 GrasscutterTools
工具箱查看
如果你是手机党玩家,不清楚指令,游玩别人的服务器,这里推荐两条指令
1.获得所有物品 /give all
2.获取毕业圣遗物 /give 76524 lv20 10001 999002 999001 201062,100 201091,100 989001,2 301241,120
用鱼钩(最后一个图标)在地图上标记一个点位并点击确认即可传送至目标上空;在名称填写数字可更改传送高度。
问题解答/取得支持
加入密碼:yJLCmrkO7i7C@eKP
关于
本服务端基于开源项目 Grasscutter。
本文作者:Kazuha Hub
本文链接:https://kazuhahub.com/archives/254/
版权声明:本Blog所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。
828 comments
你好,电脑端进门正常,IOS端进门白屏,提示超时,请问是22102问题吗
win服务器的出站和入站都添加了22102的UDP端口,电脑能正常进门,IOS端进门就白屏超时。
是不是更改了默认的端口╮(╯▽╰)╭
你好,我使用国内腾讯云的Debian Linux搭建。(海外的也试过了 aws香港HTTP数据会被阻断
具体问题 :代理端口是9999,服务器监听444端口,查看logs后发现 `Client 我的ip request: query_cur_region/os_usa`,然后就没反应了
去9999代理端口显示502 ,并且出现
502 Bad Gateway
[Errno 24] Too many open files
怎么解决呢?
应该是Debian的锅,换Ubuntu试试吧(╯‵□′)╯︵┴─┴
IOS端证书有问题,安装了证书也打开了,不能访问mihoyo.com,登录私服提示4206无服务,Window证书可以用,其他端的没测试。
你在关于本机信任证书了吗?
13:41:56 Failed to start Express
Exception in thread "main" java.lang.RuntimeException: Port already in use. Make sure no other process is using port 443 and try again.
请问一下这个问题怎么解决啊
443端口被占用了。。文档里面提到过,为什么不看?
后续版本不可能做到现版本还有点可能
at io.javalin.Javalin.start(Javalin.java:185)
at io.javalin.Javalin.start(Javalin.java:151)
at io.javalin.Javalin.start(Javalin.java:138)
at express.Express.listen(Express.java:220)
at emu.grasscutter.server.http.HttpServer.start(HttpServer.java:135)
at emu.grasscutter.Grasscutter.main(Grasscutter.java:143)
Caused by: java.io.IOException: Failed to bind to 0.0.0.0/0.0.0.0:443
at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:349)
at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:310)
at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80)
at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:234)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
at org.eclipse.jetty.server.Server.doStart(Server.java:401)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
at io.javalin.core.JavalinServer.start(JavalinServer.kt:63)
at io.javalin.Javalin.start(Javalin.java:175)
... 5 more
Caused by: java.net.BindException: Address already in use: bind
at java.base/sun.nio.ch.Net.bind0(Native Method)
at java.base/sun.nio.ch.Net.bind(Net.java:555)
at java.base/sun.nio.ch.ServerSocketChannelImpl.netBind(ServerSocketChannelImpl.java:337)
at java.base/sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:294)
at java.base/sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:89)
at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:345)
... 13 more
443端口占用,文章有讲。
你好,世界等级在config.josn配置改了重启还是没生效,客户端输入修改世界等级指令也不生效,这怎么搞
你输入的是什么呢?你不一起发出来怎么给你解答。
啊哈,不好意思,本来文档上写着 xxxx{世界等级} 的。我以为语法是连大括号一起,把大括号去掉就生效了⌇●﹏●⌇
博客只有登录没有注册?
你注册了要干啥子嘛|´・ω・)ノ
站长,请问这是最新2.7版本吗
是的⌇●﹏●⌇
额压缩包密码是什么
rainkavik.com
为什么显示密码错误啊,我是直接复制粘贴上去的
好了,重新启动了下
02:54:20 Cluster created with settings {hosts=[localhost:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms'}
02:54:20 Exception in monitor thread while connecting to server localhost:27017
com.mongodb.MongoSocketOpenException: Exception opening socket
at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:70)
at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:143)
at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.lookupServerDescription(DefaultServerMonitor.java:188)
at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:144) at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.net.ConnectException: Connection refused: no further information
at java.base/sun.nio.ch.Net.pollConnect(Native Method)
at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:672)
at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:542)
at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:597)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
at java.base/java.net.Socket.connect(Socket.java:633)
at com.mongodb.internal.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:107)
at com.mongodb.internal.connection.SocketStream.initializeSocket(SocketStream.java:79)
at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:65)
... 4 common frames omitted
02:54:20 Cluster description not yet available. Waiting for 30000 ms before timing out
Exception in thread "main" com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting to connect. Client view of cluster state is {type=UNKNOWN, servers=[{address=localhost:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.net.ConnectException: Connection refused: no further information}}]
at com.mongodb.internal.connection.BaseCluster.getDescription(BaseCluster.java:177)
at com.mongodb.internal.connection.SingleServerCluster.getDescription(SingleServerCluster.java:41)
at com.mongodb.client.internal.MongoClientDelegate.getConnectedClusterDescription(MongoClientDelegate.java:127)
at com.mongodb.client.internal.MongoClientDelegate.createClientSession(MongoClientDelegate.java:87)
at com.mongodb.client.internal.MongoClientDelegate$DelegateOperationExecutor.getClientSession(MongoClientDelegate.java:258)
at com.mongodb.client.internal.MongoClientDelegate$DelegateOperationExecutor.execute(MongoClientDelegate.java:182)
at com.mongodb.client.internal.MongoCollectionImpl.executeCreateIndexes(MongoCollectionImpl.java:847)
at com.mongodb.client.internal.MongoCollectionImpl.createIndexes(MongoCollectionImpl.java:830)
at com.mongodb.client.internal.MongoCollectionImpl.createIndexes(MongoCollectionImpl.java:825)
at com.mongodb.client.internal.MongoCollectionImpl.createIndex(MongoCollectionImpl.java:810)
at dev.morphia.annotations.builders.IndexHelper.createIndex(IndexHelper.java:220)
at dev.morphia.annotations.builders.IndexHelper.createIndex(IndexHelper.java:210)
at dev.morphia.DatastoreImpl.ensureIndexes(DatastoreImpl.java:186)
at emu.grasscutter.database.DatabaseManager.initialize(DatabaseManager.java:68)
at emu.grasscutter.Grasscutter.main(Grasscutter.java:115)
请按任意键继续. . .
大佬二次启动服务端为什么会跳出这个
数据库启动一下(╯‵□′)╯︵┴─┴
大佬搭建成功
恭喜恭喜
大佬我22102开发了但是 还是进门连接超时怎么办 (/ω\)
确定是UDP嘛?
我的win端打完补丁不提示4214,可以正常使用,但是ios端还是提示4214,怎么解决啊
127.0.0.1:17801: Client TLS handshake failed. The client does not trust the proxy's certificate for azwus1-client-s.gateway.messenger.live.com (OpenSSL Error([('SSL routines', 'ssl3_read_bytes', 'sslv3 alert certificate unknown')]))
点击proxy.bat之后开始是正常的 后面就开始报这个
你的证书没有安装,或者没有信任⌇●﹏●⌇
大佬,为啥q一直是满的啊,还有胡桃开e不掉血啊...
把服务端包里面config.json文件里面的"energyUsage"的值改为true,重启服务器就行了;不掉血我也不清楚
hhh恶臭uid和原石
作者大大,服务器连不上,进游戏显示还是官服怎么办(本人已重启),如何检查代理冲突?
证书咋 安装呀
教程里图文都有,写的够清楚了吧
大佬我用安卓端在登录账号时提示网络错误,然后我修改config.json时没有找到server.dispatch.accessAddress,我下载的是最新的v1.2.0的包,用的也是你提供的nnp软件打开的,在config.json里面只有在第119行有一个dispatch项,所以找不到要修改的地方,不知该怎么解决,希望大佬能解答一下。。。
你单独搜索access试试?
刚看到1.2支持了任务(Implement quests),进游戏怎么还是地图全开,没有任务的状态啊?
你要自己添加任务
大佬,在水里没体力,无法复活。怎么搞??
233