部署服务端
首先先到我的网盘里下载相应的文件
立即下载环境要求
Windows x64 (建议 WS2016+, 最低 WS2012R2,过老版本不保证兼容性;Linux 自行解决:如果你真的有自信用 Linux 搭建我相信你用不着看这篇文档)
Java17 (其他版本)
MongoDB (建议安装时注意左下角,取消勾选 Compass,网络不好可能会卡进度,取消后可使用 Robo 3T 等更轻量的工具来管理数据库;Win10 以下的系统只兼容 4.2 - 版本)
Python3.8+
Mitmproxy (本教程使用此工具演示,也可使用 Fiddler 等流量代理工具)
私服服务端 在上方 荼蘼云盘 下载,已经打包好,即点即用
7-zip 用于解压极限压缩的服务端(压缩后约 133MB,压缩前约 1.34GB)
确保服务端端口 TCP443 TCP54321 UDP22102 均未被其他程序占用;如服务端与客户端分开在两台机子,则还需确保后两个端口在防火墙白名单策略中
运行服务器
启动服务端
解压服务端,并进入 grasscutter 文件夹
如果您按照我的教程部署,直接双击 run.bat 即可运行服务端;如果安装了其他版本的 java 或者修改了安装位置,请自行修改此文件后再启动,启动前请确保 MongoDB 在运行中
启动后控制台无任何报错(即输出的日志全为 info 没有 warn 及以上),且最后输出 Game Server started on port 22102 字样即为启动成功,有报错请参照本文档最后一章处理
服务端不可直接关闭,需输入指令 stop 后再退出;若不小心关闭,在 任务管理器 中找到 Java 相关进程杀掉即可
启动代理
双击运行 proxy.bat ,如果您不希望其他主机连接到服务端,删除此脚本中的 --set block_global=false 即可;如果希望在其他端口运行代理,右键编辑此文件修改 54321 为你期望的端口即可,如果删除此参数则默认监听 8080 端口,不要使用常见端口避免被攻击,此端口即为客户端系统代理所用端口
代理可直接关闭窗口以停止运行
出现 Proxy server listening at http://*:54321 即为启动成功
注意,如果您的服务器性能过低,此代理程序可能会假死,手动重启即可
获取证书
前往服务端的 设置-网络-代理-手动设置代理 ,设置为 127.0.0.1:54321 后,使用浏览器访问 http://mitm.it 并选择相应证书下载,此证书需要下发给客户端所在机器安装,注意服务器 IP 更换后需要重新下载安装证书
如果服务端和游戏都跑在本机,不用手动安装证书,代理会自动安装
注意:这一步服务端开启代理只是为了便于下载证书 (当然你也可以直接去这里复制 %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer ),下载完后请关闭服务端的系统代理,否则无法正常连接服务端
创建账号
需要使用文末的 account 指令在控制台创建账号才可以登录,当然你也可以根据下节更改配置从而允许不存在的账号自动注册
数据库鉴权 (可选)
MongoDB 数据库默认无需密码也可访问,修改所有数据,故如果服务器搭建在公网,为保证数据安全,请进行以下操作
设置管理员
打开 cmd, 运行
| mongo.exe |
切换到 admin 数据库
| use admin |
创建一个有权限管理任何数据库的用户,其中 uname upwd 请替换为你欲创建的用户名和密码
| db.createUser({user:"uname",pwd:"upwd",roles:[{role:"root",db:"admin"}]}) |
开启鉴权
打开 cmd, 输入 mongod.cfg 来编辑数据库配置文件
取消掉 security 的注释并修改为
| security: |
| authorization: enabled |
保存后,使用 net stop Mongodb net start Mongodb 重启数据库即可
注意,如此修改后还需要修改 config 中的数据库配置 connectionUri , 形如 mongodb://uname:upwd@host:port
自定义配置
config.json v4
server.http.bindAddressserver.game.bindAddress为监听的本地地址,建议保持0.0.0.0server.http.accessAddressserver.game.accessAddress为服务器的公网/内网IP(取决于你在公网 / 内网联机),默认为127.0.0.1即只允许本机连接
server.dispatch.defaultName为你的服务器名称server.game.joinOptions.welcomeEmotes为进入游戏的欢迎表情 id(int 数组)server.game.joinOptions.welcomeMotd为进入游戏的欢迎语
server.game.joinOptions.welcomeMail为进入游戏的欢迎邮件,成员有titlecontentsenderitems,items成员有物品 iditemId数量itemCount等级itemLevel
server.game.joinOptions.serverAccount为游戏控制台的资料,成员有avatarId头像 (长的角色 id),nameCardId名片 id,adventureRank冒险等级,worldLevel世界等级,nickName昵称,signature签名account.autoCreate为是否自动创建账号,默认为false,如修改为true,则允许登陆不存在的账号时自动创建 (不建议);account.defaultPermissions为自动创建的帐号默认拥有的权限 (文本型数组)
server.game.gameOptions.inventoryLimits为库存上限
server.game.gameOptions.avatarLimits为单人 / 联机的队伍角色数量上限
server.game.gameOptions.staminaUsage为是否启用体力系统
其他不在此赘述
更新服务端
只需 stop 服务端,替换 grasscutter.jar 后启动服务端即可,不过您替换后可能需要重新生成或者更新部分资源文件;网盘将不定时更新经过测试的整合包体
网盘中 up 开头的 7z/jar 即为更新包,若跨版本更新您可能需要下载全量包 (full 开头) 或者前往项目地址补齐资源文件
连接服务器
首次连接需要安装证书
Windows 下载 并双击打开相应服务器的证书 -> 安装证书 -> 本地计算机 -> 放入下列…-> 浏览 -> 受信任的根证书颁发机构 -> 完成
Android 下载 pem 格式证书,root 并解锁 system 分区后手动复制到 /system/etc/security/cacerts 并重命名为 c8750f0d.0 即可 (如果安装多个私服的证书,依次把文件命名为 c8750f0d.1 c8750f0d.2 … 即可);如果不能解锁系统分区可参照网盘中我的私服专用的模块制作自己私服的 CA 证书模块,或者安装信任用户证书的模块后直接在 Android 系统设置中安装为用户证书即可
无 root 的安卓可尝试直接下载安装用户证书 (分别安装 CA 和 WLAN 证书) 后使用网盘版本游戏客户端
无 root 的安卓可卸载国际服原神后使用网盘版本免证书自带代理的客户端 (项目地址)
iOS 下载证书后复制到手机并打开点击安装即可,安装完打开系统设置信任刚才安装的证书
其他操作系统不提供安装证书教程
之后直接如此操作即可进入
patch 完成之后需要进行代理操作,可以使用 米哈游代理转向,也可用服务端内提供的脚本按照如下步骤代理:
- 修改前先打开游戏客户端检查并完成更新
- Windows:前往
设置-网络-代理-手动设置代理设置代理,服务器 / 端口 按照自己所要连接私服的服务端配置填写,关闭请勿将代理服务器用于本地地址,清空请勿对以下条目...编辑框的内容,填写完确定并开启代理,完成后暂时不要关闭页面
Android:前往系统设置-WLAN设置当前连接 WiFi 的代理,或前往移动网络-APN修改 APN 设置,修改前请自行备份避免出错,完成后暂时不要清后台
iOS:WiFi 类似于 Android,移动网络无法修改 APN - 修改完成后启动 国服官服 / 国际服客户端 ,用户名 + 密码 (密码随便填) 即可登录,登录后进入最后白屏加载界面即可关掉代理,务必尽快关闭代理:长时间代理,你流量全走服务器,你电脑和服务器都累,而且还可能会被服务商 ban 机!
每次登录都需要如此操作!开启代理再运行游戏便进入私服,不开启代理运行游戏就是官服
文章评论