前一段时间我在Windows上简易的部署了grasscutter,现在,我想要在Docker的Debian镜像上试一试,虽然Docker Hub上已经有现成的镜像了,但基本上是基于CentOS(Java)镜像的构建,对于习惯使用Ubuntu/Debian系统的我来说很不习惯,并且网上Docker Debian系统的教程较CentOS系统来讲少的可怜,于是我便要自己动手在Docker Debian搭建一个原神私服服务端。在Docker上搭建的一个好处是可以开箱即用,对于经常换服务器(跑路)的我来说很适合,本文将以支持原神3.0版本的grasscutter进行演示
首先,安装Docker环境
curl -fsSL https://get.docker.com bash -s docker |
国内可以更换Docker镜像,步骤我就不分开写了
vim /etc/docker/daemon.json |
然后pull一下拉取Debian镜像
docker pull debian |
run一下,命令的参数细节不多赘述
docker run -itd --privileged=true --name=grasscutter --net=host --restart=always -v /root/grasscutter:/var/grasscutter xiwangly/grasscutter /bin/bash |
进一下容器内部
docker exec -it grasscutter /bin/bash |
国内可以换一下镜像,然后更新一下源(Docker Debian首次apt install前需要更新一次源)
sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list |
先把这些安装了,如果怕出问题就一个个来,自己手动确认更放心,如果还提示缺啥,就再apt install一下这个包(这些包可以根据自己的需要安装)
apt install wget |
之后,安装Java SE Development Kits - 17,不赘述
安装MongoDB,教程见https://mongodb.net.cn/manual/tutorial/install-mongodb-on-debian/
我准备在这个目录搞grasscutter,cd到这里
cd /var/grasscutter |
按照grasscutter的说明https://github.com/Grasscutters/Grasscutter/blob/development/README_zh-CN.md编译grasscutter
git clone https://github.com/Grasscutters/Grasscutter.git |
然后,运行生成的grasscutter-****.jar(最好重命名一下这个文件为grasscutter.jar)
java -jar grasscutter.jar |
报错,提示缺少资源文件,去https://github.com/Koko-boya/Grasscutter_Resources下载资源文件,并复制到resources文件夹下,如图
再次运行
java -jar grasscutter.jar |
如果端口有冲突,可以修改主目录下的config.json文件
我修改了端口为444,偷懒没有加java的环境变量,所以带上目录运行java
cd /var/grasscutter/Grasscutter |
然后创建一个账号,后面游戏里的登录密码可以随便填就能登录
#示例:account create 登录账号 UID |
搞定了,然后可以丢在screen里写个自动化脚本运行,我就不演示了(我懒)
接下来是客户端的连接,客户端也要有一份grasscutter,Windows可以安装mitmproxy,并安装python3环境使用proxy.py代理流量
在安装了python3环境的前提下,执行
pip3 install mitmproxy |
修改proxy_config.py,然后执行
mitmdump -s proxy.py -k |
也可以写一个脚本,保存为cmd文件,方便以后运行
@echo off |
示例:我的服务端的地址是192.168.31.34,端口是444,使用默认的监听端口8080
以Windows 11为例,在Windows“设置”程序里找到“网络和Internet > 代理”,在“手动设置代理”中编辑设置,代理IP地址填本机的地址(如果在路由器或服务器代理了原神的流量,就填路由器或服务器的IP地址),端口填上面mitmproxy监听的端口
从http://mitm.it/下载并安装证书
然后,使用原神的国际服版本进行游戏,不出意外你可以使用刚才创建的账号和随便的一个密码直接登录
不是国际服的可以借助原神的换服工具更换服务器,推荐https://github.com/DGP-Studio/Snap.Genshin的国际服客户端转换插件,文档在https://www.snapgenshin.com/documents/extensions/Genshin-Launcher-Plus-SE-Plugin.html
现在,愉快的进行游戏吧!
推荐一款grasscutter的工具(类似于修改器):https://github.com/jie65535/GrasscutterCommandGenerator
远程执行插件:https://github.com/jie65535/gc-opencommand-plugin
可供参考的其它文章: