开服路途艰难,你的时间宝贵。
请注意:每个人或许步骤相同但也许也会遇到各种各样神奇的问题
如果您不会高级一点的上网手法那本教程可能帮不到你,您可能会卡在安装环境或下载服务端。
该问题无解,请自行解决。时常回来以追踪服务端与OTA功能更新,或前往TG频道跟踪更新:Genkit~
如果你已经能成功开启本地服务器那欢迎你阅览原神 2.6 私服多人联机教程~
多人联机教程必须要有本地成功开服的基础!如果你尚未成功开启本地服务器请继续努力再接再厉~该教程已暂时停止跟踪最新版本,但是欢迎查阅由其他大佬合力创作的GenKit Wiki获取版本支持
功能支持
- 登录
- 战斗
- 好友列表
- 传送系统
- 祈愿系统
- 从控制台生成魔物
- 多人游戏 部分 可用
- 物品栏相关 (接收物品/角色, 升级角色/武器等)
该内容更新滞后,未来得及展示的功能还请各位旅行者自行探索啦~
注意事项
本文已重写,以本人开服成功经验出发。
本文以Windows环境编写教程,推荐使用.exe.msi等图形化安装界面安装文中所提环境,如果您是以命令行的方式安装恕我无法提供建议。
本文默认您环境都安装在默认目录,例如Java。如果修改了安装目录请自行修改脚本文件!
中文汉化过的服务端在后台可能显示中文时乱码,但请放心游戏内肯定是正常的!
标准步骤
环境要求
Java17
MongoDB
Python3.8+
Mitmproxy
再度提示,以命令形式安装将在本文得不到任何帮助
文件下载
原神 国际服
Mega:原神2.6私服服务端 基于Wansn大佬的zip包进行内容更新替换替换
蓝奏云分流:原神2.6Grasscutter服务环境 密码hwlj
教程目录以Mega为主,蓝奏云仅分流必要文件,如有更多需求请自备魔法上Mega
下载文件夹 Java16&17端版本 内的内容
文件夹内含有 GrasscutterGameServer.7z -服务器环境
grasscutter.jar -服务端文件 如果文件名为grasscutterZH-dev-......或其他请自行改名,或者修改run.bat启动脚本
keystore.p12 -服务器通信证书 证书文件来源Github Dev分支
服务端文件可能过时,请下滑阅览 服务器更新
MD5与SHA256校验码
GrasscutterGameServer.7z
MD5 05f1fa55370007811c507604dff24e5f
SHA256 b48160c89a615110dd5bf79cc775e3c5e72b2132c14edd97892f0d5f37b0afc5
grasscutter.jar 汉化@March 7th
TG跟踪更新 网盘不定时更新,可前往TG频道追踪更新
grasscutterZH-dev-1df5574.jar
MD5 2b0468280fa28c5da21b8f5c054c9da4
SHA256 d33359792982bfbcdc944da0bc617bc9f02daa671b25961406a4415634dcc93a
更新时间:2022/05/02 PM
keystore.p12
MD5 1cdc5378b9b25abe8e1c6e211b30afe5
SHA256 6a915b1ad59a704dc68d753fea1db2b1eb2402ca1bd1773f35612edae0b4bf73
如何验证?CMD> certutil -hashfile <文件路径> <md5/sha256>
服务器启动与代理
解压 GrasscutterGameServer 并将 keystore.p12 和 grasscutter.jar 拷入该目录
启动程序 run.bat
该步骤启动服务器,如需停止或关服推荐控制台输入stop
C:\Program Files\BellSoft\LibericaJDK-17\bin\java.exe
这是使用文中Java17安装的默认目录,不管如何我都推荐您去校对一下与您实际安装是否有出处。如果您的Java不是默认目录或有出处请自行修改一下!
启动 proxy.bat
该步骤启动 Mitmproxy 代理
电脑代理设置
设置 > 网络和 Internet > 代理 > 手动设置 > 使用代理服务器[设置]
进行以下配置
代理IP地址:127.0.0.1 端口:8080
关闭选项 -> 请勿将代理服务器用于本地(Intranet)地址
证书安装
设置好电脑代理并启动proxy.bat后方可访问
访问 mitm.it 点击并下载 Get mitmproxy-ca-cert.p12 在下载文件夹双击该文件安装证书
安装证书时请修改证书存储
目录,具体操作如下:
- 安装时点击下一步直到
证书存储
页面。将所有的证书都放入下列存储 浏览并选择 受信任的根证书颁发机构
其余步骤直接默认点击下一步即可
一个IP一个证书!例如远程联机和本地局域网 <该内容存疑
账号创建与服务器连接
在 run.bat 启动的CMD控制台输入 account create 账户ID 游戏UID
以创建账号
例:account create Paimon 2020
启动 原神2.6国际服
登录账号是你自己创建的账户ID,密码随便填即可
给自己权限:permission add 登录账号 *
例:permission add Paimon *
*
代表着全部权限
如果给不了权限请先进入游戏看完CG后再给予权限
账户ID不分大小写,实际使用时不用去刻意大小写
服务器更新
由于本教程现在是按着Dev分支进行编译,并且采用March 7th大佬的汉化文件
所以请前往TG跟踪更新或是原神2.6私服服务端/Java16&17端版本进行跟踪更新
网盘不定时更新,可前往TG频道追踪更新
或是自行编译或自行寻找他人编译的grasscutter.jar
使用他人编译的端时请注意安全!
最后您仅需要替换同名文件 grasscutter.jar 即可
如果文件名不是grasscutter.jar请重命名,或修改run.bat
必要时可删除 config.json ,服务器会重新生成!
由更新造成的错误务必尝试重新生成配置文件!
OTA升级注意事项
旧服务端可能不支持该功能,请前往网盘更新!
OTA升级文件下载地址及其目录原神2.6私服服务端/Java16&17端版本/OTA升级,请根据提示下载指定文件以及按照指定步骤操作!
OTA内容均可还原,即使是被覆盖了您也可以通过旧文件覆盖还原回去!
OTA升级 · 大世界刷生物
下载 Spawns.json 文件 支持DIY
v0.1
将该文件拷贝到目录.\data
本教程暂不提供该OTA内容修改教程,如有能力可以自行研究文件进行修改
OTA升级 · 服装替换修复
下载 AvatarCostumeExcelConfigData.json 文件
替换此json到.\resources\ExcelBinOutput
下即可解决无法替换服装的问题
OTA升级 · 商店尝鲜&战利品掉落
下载 Shop.json、Drop.json 文件 支持DIY
将该文件拷贝到目录.\data
大部分商店都已支持并且为原版内容 v0.2
这个文件真的很神奇,大伙有兴趣可以打开看看
战利品掉落已支持更多生物 v0.3
本教程暂不提供该OTA内容修改教程,如有能力可以自行研究文件进行修改
OTA升级 · 抽卡历史
下载 OTA抽卡历史.7z 文件
使用压缩包 .\data
将服务环境 .\data
覆盖
深入 · 卡池修改
卡池配置文件在服务器环境文件 \data\Banners.json
中,其中:gachaType=200,scheduleId=893
的为常驻池gachaType=301,scheduleId=903
的为角色UP池gachaType=302,scheduleId=903
的为武器UP池gachaType=400,scheduleId=913
的为角色UP池2
多卡池:增加 gachaType
为非以上四个值的成员即可,注意客户端只识别以上四个 `gachaType 值,添加的其他卡池不会显示类型rateUpItems1
为UP五星,rateUpItems2
为UP四星,对应物品ID在Handbook_CHS.txt
中可以找到
可选 修改卡池封面需修改prefabPath
previewPrefabPath
titlePath
中的 A0**
为对应的卡池 id(在卡池顺序.xlsx
中)costItem
为抽卡耗费的货币名称 223纠缠之缘,224相遇之缘 202摩拉(整活)beginTime
endTime
为卡池开始 / 结束的时间戳softPity
最少几次出hardPity
最多几次出eventChance
歪的概率 %
如果没有的话可以自己加上
游戏资源更新及热门疑问
仅供参考,不一定能解决。
Q:登录后游戏资源更新不动
A:推荐使用 羽翼城:UsbEAm Hosts Editor 多平台hosts修改 V3.62 解决
使用教程:点击左下角手柄 > 游戏内相关 > 原神国服外服加快下载及更新速度 > 检测延时 > 双击hosts节点测速 > 选择合适的节点应用选中
Q:启动服务器后控制台乱码
A:本问题汉化端限定
右键编辑run.bat按如下代码框修改文中代码
@echo off
chcp 936 //插入本条指令,双斜杠和后面的这一段话别复制!
set JAVA_EXE="C:\Program Files\BellSoft\LibericaJDK-17\bin\java.exe"
%JAVA_EXE% -jar grasscutter.jar
Q:服务端启动报错
A:请注意 VMWare 或 Nginx 会导致443端口被占用,如果无法解除占用请尝试修改 config.json 中的端口,同时修改 proxy_config.py 中的端口
报错详细图片请前往该大佬的博客查阅#常见故障TomyJan's BLOG:GenshinTJ
Q:run.bat 启动的CMD控制台无法输入
A:该问题如图下主要原因是连接不到数据库,解决方法为重新安装数据库、重启电脑
才不是因为我不会手动启动数据库呢,不过可以问问度娘
A:如果还有遇到其他报错行为可以尝试复制控制台输出的日志到翻译软件比如彩云小译自查原因,务必复制报错的原因,翻译器可翻译不了代码!
Q:开启代理后还是登录了官服,跳验证码等
A:魔法把端口占用了导致代理失败
Q:4206
A:电脑与Mitmproxy代理问题、keystore.p12证书问题,如果代理没有报错,则应为服务端问题,检查服务端配置或者更新服务端,具体内容请自查。
Q:502 / 4301 / 无法连接服务器
A:绝对是你没正确配置,自行检查
Q:4201
A:检查是否正确安装并信任证书
Q:-9203
A:一般为代理问题,已知 iOS 使用小火箭会存在此问题
A:使用https解密生成并信任证书解决 < 来自群友
Q:进门后连接超时
A:他奶奶滴,为什么不开放UDP22102端口!
UQ:有一位旅行者表示:按步骤以安装包形式把环境都装好了,run.bat可以正常运行,注册了账号,可以给权限。但是proxy.bat点开就闪一下就自动关闭了,然后手动把mitmproxy打开、设置好系统代理后,只有默认浏览器可以连接mitm.it(其他浏览器不行),然后用默认浏览器安装好了证书,但是进国际服后还是会跳验证,显示密码错误,不知道问题出在哪儿,Python、Java环境变量都检查了是对的。
UA:最后这位旅行者是这样解决的:python版本问题,3.10跑不了,换了3.8
A:温馨提示该问题目前也只发现一例,但可以参考参考
该评论存在于评论区,但已没有超链接能定位的到了
Q:我需要一直开着电脑代理和Mitmproxyproxy.bat代理吗?
A:在你成功登录游戏并开门加载完后是可以关闭这两项代理的,但你如果想回到主菜单并重新登录请重新打开代理!
Q:我使用安卓或苹果手机该如何连接同在局域网的服务器?
A:这个问题属于局域网联机的范畴~
如果你已经能成功开启本地服务器那欢迎你阅览原神 2.6 私服多人联机教程~
安卓需要MagiskROOT
Q:仍有其他问题
A:欢迎查看其他大佬制作的私服启动教程,请注意不同教程可能文件参数不同等问题,更换教程后请跟随新的指引完成开服!也可以单独查看大佬们制作的疑难解答,基本是适用的!
A:TomyJan's BLOG:GenshinTJ
A:虚冇的避风港:Grasscutter 电脑端详细安装教程(不定期更新)
A:或是评论提问,随缘回答。
指令大全
请与您的虚拟好友“Server”交谈,指令同样适用于其他聊天频道
游戏内指令请添加前缀 " !
" 例如 !help
没有权限?往上翻一下,上面讲了!
物品ID列表前往原神2.6私服服务端下载
本指令大全可能过时! 推荐查看Dev分支中文指令列表如是中文汉化端可在游戏内!help获取指令列表!
请注意,<playerId>指你设置的UID
使用 " | " 隔开的指令代表两者皆可,等同于 或、and 的意思
broadcast
向所有玩家发送一条信息
用法: broadcast <message>
别名: b
drop
在你附近丢弃一个物品
用法: drop <itemId|itemName> [amount
别名: d dropitem
setstats
为你当前的活动角色设置战斗属性
用法: setstats|stats <stat> <value>
属性: hp 生命值 def 防御力 atk 攻击
em 元素精通 er 元素充能 crate 暴击率
dmg 暴击伤害 epyro 火伤 ecryo 冰伤
ehydro 水伤 egeo 岩伤 edend 草伤
eelec 雷伤 ephys 物伤
别名: stats
setworldlevel
设置你的世界等级 (需要重新登陆以正确显示)
用法: setworldlevel <level>
别名: setworldlvl
givechar
给予玩家一个指定的角色
用法: givechar <playerId> <avatarId> [level]
别名: givec
clearartifacts
删除所有未装备和未锁定的0级神器,包括你库存中的黄色稀有神器
用法: clearartifacts
别名: clearart
killall
杀死所有实体
用法: killall [playerUid] [sceneId]
reload
重新加载服务器配置
用法: reload
heal
治疗你当前团队中的所有角色
用法: heal|h
别名: h
weather
改变天气
用法: weather <weatherId> [climateId]
别名: w
godmode
防止你受到伤害
用法: godmode [playerId]
give
给予你或指定玩家一件物品
用法: give [player] <itemId|itemName> [amount]
别名: g item giveitem
restart
重启当前会话
用法: restart
changescene
改变你的场景
用法: changescene <scene id>
别名: scene
permission
给予或删除用户的权限
用法: permission <add|remove> <username> <permission>
say
以服务器的身份向玩家发送一条信息Yakl
用法: say <player> <message>
别名: sendservmsg sendservermessage sendmessage
list
列出在线玩家
用法: list
help
发送帮助信息或显示关于指定命令的信息
用法: help [command]
spawn
在你附近生成一个实体
用法: spawn <entityId|entityName> [level] [amount]
kick
将指定的玩家踢出服务器(WIP)
用法: kick <player>
stop
停止服务器
用法: stop
position
获取坐标
用法: position
别名: pos
account
修改用户账户
用法: account <create|delete> <username> [uid]
resetconst
重置你当前活动角色的星座等级,使用该命令后需要重新登录才能看到任何变化
用法: resetconst [all]
别名: resetconstellation
冷知识 > 地图标点传送可以通过修改标点的名字来自定义高度传送
参考存储库
Github:Grasscutter Dev
参考文章
Telegram:Genshin Impact Chat Group #13190
TomyJan's BLOG:GenshinTJ
引荐
虚冇的避风港:Grasscutter 电脑端详细安装教程(不定期更新)参考TG < 要是有魔法,推荐进群问大佬们,比评论区问我有用多了
Telegram:Genshin Impact Chat Group
Telegram:Genkit | Telegram:Genkit Chat发评论寻求帮助时请注意,我也仅是个懂得比较多的小白,可能无法解决您提出的问题。
评论时如不填写正确的邮箱地址可能导致无法及时得知您的评论收到回复,当然这是您的自由~
评论提交点一次就行了!连续点击会提交多条评论刷屏!不过还是不小心多提交的我会删除多余的qwq
评论有层数限制,达到限制后从中间新起一层或者另起一条评论吧~
proxy.bat 运行时出现 Server TLS handshake failed. connection closed 是怎么回事
@ITY1MIN 您好 请问您解决这个问题了么 我也遇到了
@ITY1MIN 会影响连接服务器吗,或者是证书没装?
@Yaklo 影响连接服务器 证书装了
@ITY1MIN 你装的哪个证书?proxy.bat 要装mitmproxy的,然后keystore.p12不需要安装,这个证书文件有没有移动到服务器目录下
@Yaklo mit的那个装了 keystore.p12在服务器目录 但还是连不上服务器
Cluster created with settings {hosts=[localhost:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms'}
[10:21:31] [[34mINFO[0;39m] 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
[10:21:31] [[34mINFO[0;39m] Cluster description not yet available. Waiting for 30000 ms before timing out
大佬看看怎么回事
@LiuWT 数据库没开
@Yaklo 这咋开
@s 一般情况下默认安装完就是开的,可以重启电脑试试 因为默认有开机自启,如果都没用那就重新安装
楼主,我还想再问一下,服务端跑起来之后我创建了账号,把代理关掉了,然后登录账号时一直提示账号或密码错误,这个该咋整呀?
@Jiling 关代理还怎么进啊
@Yaklo 开了代理会报这种错误,
127.0.0.1:53399: CONNECT dispatchosglobal.yuanshen.com:443
@Jiling 和你一样,把443改成了442,虽然能跑服务端但是没法登录,不改的话服务端就显示“an http server was not created”
楼主你好,我跑run.bat的时候总是报Exception in thread "main" java.net.BindException: Address already in use: bind,这个有什么解决办法嘛?
@Jiling 443端口被占用了,查看是什么程序占用的443端口,然后停用这个程序,run.bat就能执行了。
查找占用443端口程序的办法可以百度。
@Jiling 你可能开了两个run.bat 或者去 任务管理器>详细信息 里找到java.exe并结束任务
@Yaklo 我尝试了你说的两种办法,但都没有效果(,报这行错误的上一行是Opened connection [connectionId{localValue:3, serverValue:45}] to localhost:27017,但这个端口已经被mongoDB service占用了,会是这个原因嘛?PS:我尝试关闭这个服务之后他报的是wait 30000ms的error
@Jiling 数据库不用关,重启电脑试试
@Yaklo 成功了!按照楼主你说的,我改了config.json里DispatchServer那里的端口改到了442就跑起来了,谢谢楼主!
@Yaklo 这是run.bat到报错之前的一些log,希望能帮到你(
2022-04-26T00:52:01Z - Loaded 2420 ProudSkillDatas.
2022-04-26T00:52:01Z - Loaded 568 MonsterDatas.
2022-04-26T00:52:01Z - Loaded 78 AvatarDatas.
2022-04-26T00:52:01Z - Cluster created with settings {hosts=[localhost:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms'}
2022-04-26T00:52:01Z - Opened connection [connectionId{localValue:2, serverValue:95}] to localhost:27017
2022-04-26T00:52:01Z - Opened connection [connectionId{localValue:1, serverValue:94}] to localhost:27017
2022-04-26T00:52:01Z - Monitor thread successfully connected to server with description ServerDescription{address=localhost:27017, type=STANDALONE, state=CONNECTED, ok=true, minWireVersion=0, maxWireVersion=13, maxDocumentSize=16777216, logicalSessionTimeoutMinutes=30, roundTripTimeNanos=11904700}
2022-04-26T00:52:01Z - Opened connection [connectionId{localValue:3, serverValue:96}] to localhost:27017
2022-04-26T00:52:01Z - Unable to bind to port: 443 (HTTPS)
2022-04-26T00:52:01Z - Unable to bind to port: 443 (HTTP)
@Yaklo 删了几遍之后还是无法bind443端口(HTTPS和HTTP都不行)
@Jiling 要不你重新走一遍步骤?或者是去修改配置文件里的端口试试?
@Yaklo emmm他现在报的是Unable to bind to port: 443(HTTPS & HTTP)
An HTTP server was not created.
at emu.grasscutter.server.dispatch.DispatchServer.start(DispatchServer.java:253)
at emu.grasscutter.Grasscutter.main(Grasscutter.java:78)
@Jiling 删除config.json然后再运行run.bat试试(会重新生成)
提示[23:13:58] [[34mINFO[0;39m] Place a copy of 'GenshinData' in the resources folder.
@Plouc 初步判断是服务器环境不完整的问题,请重新按步骤解压试试
卡池ID怎么使用
@Fly 已更新教程
双击run的时候 就闪一下 不出窗口
@yhs131 这个问题的组成一般是如下原因:
未正确安装java、java安装目录被修改但未修改启动脚本、配置文件错误等
推荐解决方案:重新阅览启动教程,并确认java安装版本及目录
大佬服务器环境下载不了
@Java 传了个新网盘 https://53.gigafile.nu/0502-2c0dcd3a6da327e015ccb675f5ddd05b
mega把我拦下了,完全下不了。有github的下载链接吗?主要是GrasscutterGameServer.7z -服务器环境的
@shinjin 传了个新网盘 https://53.gigafile.nu/0502-2c0dcd3a6da327e015ccb675f5ddd05b
这个证书怎么需要钥匙
@dy23 这个不需要安装,放进服务端目录就行
证书下载不了
@dy23 从Github下试试https://github.com/Grasscutters/Grasscutter/blob/development/keystore.p12
大佬为啥原神2.6私服服务端进不去
@原神 不好意思,我不明白你的问题?请至少阐述出问题的步骤,或是根据教程自查。
非常感谢你的教程,分享给了很多人!
大佬为啥用不了指令,输入了没有反应,聊天框也没有自己输入的内容
@黑猫 游戏内吗?游戏内要加!前缀 例如!help
@Yaklo 游戏内显示没权限233
@Seelin 请查看条目 > 账号创建与服务器连接
有没有挂马?胆大的来下
@李天香 #邮箱地址无效 您如果有担忧可以前往其他渠道下载呢,我这文件又不唯一
添加账号后进游戏登录要么是账号格式不对要么账号密码错误,这是什么情况?
@光影焰尾 可能代理没代成功?最近教程更新的更完善了一点,你可以尝试根据新的更完善的教程重新尝试试试?
大佬,这服务端里有抽卡相关内容吗,可以修改吗
@echo #邮箱地址无效 有的,你可以研究一下
permission add 登录账号 *,!permission add 登录账号 *都试过了不行( •̀ ω •́ )y
@nm permission add 登录账号 UID
例如 permission add Yaklo 1
我添加权限那个指令为什么给我弹no value present
permission add alime *
这个指令没错吧
run.bat 输入account create nm 123输出Account already exists,进游戏输入账户密码,显示username not found,进不去游戏,第一次是可以进游戏的
@nm 跟着重写后的教程走一遍流程再试试?