Ubuntu搭建原神3.7版本服务器
本文涉及知识点
linux基础命令|mongoDB服务端搭建及指令|Java环境搭建
原神私服可以用来抽卡满足自己用,他的许多任务都得登录控制台自己发,不建议拿私服玩,想要体验完美原神请到官服,本文只做LINUX MongoDB java教学例子
写在前面
常识性问题
关于有部分读者反馈3.6下载地址打不开的问题,因为下载地址是GitHub的。如果你只是原神玩家,而发现打不开GitHub的话,可以参照我这篇文章https://mp.csdn.net/mp_blog/creation/editor/127619574。
如果你是同行,问我为什么Github打不开,那你就要反思一下自己平时都在干什么了,在这行属于常识性问题了
数据库安全(特别注意)
我数据库专门给这个原神装的,没设密码,所以被小鬼给删库了,我说数据库怎么老是消失呢,你们记得设好密码哈,我就放了一个原神,他删不删无所谓。懒得去专门处理了,就这样吧!
MongoDB的密码和MySQL的不一样,是单独一个库有独立的账号密码
特地修了一下,设置了下密码。
感谢@Yolan_133的补充
设置密码后链接数据库格式为
"databaseInfo": { "server": { "connectionUri": "mongodb://username:password@localhost:27017", "collection": "grasscutter" }, "game": { "connectionUri": "mongodb://username:password@localhost:27017", "collection": "grasscutter" } }
https://github.com/Grasscutters/Grasscutter/issues/1241
材料准备
- Ubuntu
- Mongodb
- Grasscutters 地址GitHub
搭建方法
ssh登录你的服务器
进入一个目录创建一个文件夹储存服务端,推荐home
sudo cd homesudo mkdir Grasscutter
将服务端放进去(服务端末尾提供)图为目录文件树,通过tree命令生成的
配置Java环境,此处直接下载Java,然后启动时使用下载的Java,防止环境出问题不好修复
创建一个文件夹放Java,我这里放到了home文件夹
mkdir /home/java
进入这个目录
cd /home/java
下载Java并解压
wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gztar -zxvf jdk-17_linux-x64_bin.tar.gz
此时目录下会有一个jdk文件夹
java的可执行文件就在这里面,具体是在jdk-17.0.6/bin这里面
/home/java/jdk-17.0.6/bin
安装MongoDB,直接用apt就好了
sudo apt-get install mongodb
装好以后会自动运行mongod程序,可以通过命令查看进程是否已经启动
pgrep mongo -l
输入mongo进入数据库操作界面再创建一个root用户,下面为创建管理员账户的命令
db.createUser({user: "root",pwd: "114514", roles: [ { role: "root", db: "admin" } ]})
查看是否创建成功
db.auth("root", "114514") #返回1,则表示成功
修改配置文件,使能够外网访问(这一步无所谓,主要是教怎么使用其他机子连接这个数据库,不改的话只能自己机子连127.0.0.1)
nano /etc/mongodb.conf
将bindip修改为0.0.0.0,然后ctrl+o保存 ctrl+x退出nano编辑器
到这里服务端环境配置完成
输入下面指令重启数据库以应用修改后的配置
sudo service mongodb restart
可以见到
进去这个文件夹,可以见到resources文件内容都在里面
在配置文件那给资源文件路径换到你放的路径
如何偷懒
随便找个地方git一下这个resources文件,我这里放到了原神服务端文件夹
拉取仓库
git clone https://gitlab.com/YuukiPS/GC-Resources
就是这样的,我这里放到了服务端目录,所以填的是相对路径
{ "folderStructure": { "resources": "./GC-Resources/Resources", "data": "./data/", "packets": "./packets/", "scripts": "resources:Scripts/", "plugins": "./plugins/" },
这个仓库我进去看了他一直在更新,应该会一直更新的吧?
更新版本时更新资源文件
进入GC-Resources 目录,拉取最新版本:
git pull
学会偷懒
服务端启动方法
进入服务端目录
cd /home/Grasscutter
执行服务端文件,用之前下载的java17
/home/java/jdk-17.0.6/bin/java -jar grasscutter-1.4.6.jar
服务端配置文件的修改(目录下的config.json)
{ "folderStructure": { "resources": "./resources/", //这里可以自定义resources路径,末尾会提到更方便的更新资源文件 "data": "./data/", "packets": "./packets/", "scripts": "resources:Scripts/", "plugins": "./plugins/" }, "databaseInfo": { "server": { "connectionUri": "mongodb://服务器ip:27017",//如果有设置密码参考引言 "collection": "grasscutter" }, "game": { "connectionUri": "mongodb://服务器ip:27017", "collection": "grasscutter" } }, "language": { "language": "zh_CN", "fallback": "en_US", "document": "EN" }, "account": { "autoCreate": true, "EXPERIMENTAL_RealPassword": false, "defaultPermissions": [], "maxPlayer": -1 }, "server": { "debugWhitelist": [], "debugBlacklist": [], "runMode": "HYBRID", "logCommands": false, "http": { "bindAddress": "0.0.0.0", "bindPort": 连接端口我这里填的是是6443, "accessAddress": "你的服务器ip", "accessPort": 0, "encryption": { "useEncryption": true, "useInRouting": true, "keystore": "./keystore.p12", "keystorePassword": "123456" }, "policies": { "cors": { "enabled": false, "allowedOrigins": [ "*" ] } }, "files": { "indexFile": "./index.html", "errorFile": "./404.html" } }, "game": { "bindAddress": "0.0.0.0", "bindPort": 22102, "accessAddress": "你的服务器ip", "accessPort": 0, "loadEntitiesForPlayerRange": 100, "enableScriptInBigWorld": false, "enableConsole": true, "kcpInterval": 20, "logPackets": "NONE", "isShowPacketPayload": false, "isShowLoopPackets": false, "gameOptions": { "inventoryLimits": { "weapons": 2000, "relics": 2000, "materials": 2000, "furniture": 2000, "all": 30000 }, "avatarLimits": { "singlePlayerTeam": 40, "multiplayerTeam": 4 }, "sceneEntityLimit": 1000, "watchGachaConfig": false, "enableShopItems": true, "staminaUsage": true, "energyUsage": true, "fishhookTeleport": true, "resinOptions": { "resinUsage": false, "cap": 160, "rechargeTime": 480 }, "rates": { "adventureExp": 1.0, "mora": 1.0, "leyLines": 1.0 } }, "joinOptions": { "welcomeEmotes": [ 2007, 1002, 4010 ], "welcomeMessage": "欢迎来到天理的世界", "welcomeMail": { "title": "欢迎来到hewei2723的私服!", "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, "itemCount": 1, "itemLevel": 1 }, { "itemId": 201, "itemCount": 99999, "itemLevel": 1 } ] } }, "serverAccount": { "avatarId": 10000007, "nameCardId": 210001, "adventureRank": 1, "worldLevel": 0, "nickName": "Server", "signature": "Welcome to Grasscutter!" } }, "dispatch": { "regions": [], "defaultName": "Grasscutter", "logRequests": "NONE" }, "debugMode": { "serverLoggerLevel": { "levelInt": 10000, "levelStr": "DEBUG" }, "servicesLoggersLevel": { "levelInt": 20000, "levelStr": "INFO" }, "logPackets": "ALL", "isShowPacketPayload": false, "isShowLoopPackets": false, "logRequests": "ALL" } }, "version": 4}
如果你按照我的配置来,那么
MongoDB的管理员账户是root密码是114514,连接端口是27017
下载的Java17在这个目录下/home/java/jdk-17.0.6
原神服务端所在目录是/home/Grasscutter,私服连接到服务器的端口是6443
原神客户端连接,电脑版,没有手机版因为带不动
前置操作:先打补丁,将这个目录下的C:\Genshin Impact\Genshin Impact Game\mhypbase.dll这个文件替换成我给你的同名称的那个文件
方法一
这个是我在哪个群里面看到的,不记得了,有知道的请私信我项目地址,我会添加上的。
下载地址 原神代理转向
项目地址: 还没找到
方法二
打开Fiddler代理软件,点击tools
点击options
点击https并按照我图中一样打勾勾
返回主页面,点击右侧图中位置
将里面所有东西删掉,复制我的进去
import System;import System.Windows.Forms;import Fiddler;import System.Text.RegularExpressions; class Handlers{ static function OnBeforeRequest(oS: Session) { if(oS.host.EndsWith(".yuanshen.com") || oS.host.EndsWith(".hoyoverse.com") || oS.host.EndsWith(".mihoyo.com")) { oS.host = "ip:6443"; // This can also be replaced with another IP address.(输入域名也可) } if(oS.uriContains("http://uspider.yuanshen.com:8888/log")){ oS.oRequest.FailSession(200, "Blocked", "haha"); } }};
点击save script保存,这时候代理就自动运行了
进入C:\Genshin Impact\Genshin Impact Game,下面有个yuanshen.exe直接通过这个启动,成功进入服务器,进入游戏后界面是这个
按我的配置文件来的,直接填用户名和密码就能够完成注册了。UID从10001开始排列,现在你就是天理!
- 提到的文件
- 替换文件,代理,服务器管理文件
https://caowater.lanzouw.com/b0bhpfy4h 密码:cbjr - 3.4服务端
https://www.aliyundrive.com/s/iTUMtCd1Hvd - 更新服务端3.5 地址https://github.com/Grasscutters/Grasscutter/releases/download/v1.4.7/grasscutter-1.4.7.jar
- 更新3.6服务端
https://github.com/Grasscutters/Grasscutter/suites/12202277918/artifacts/644710117 - 更新3.7服务端
https://github.com/Grasscutters/Grasscutter/suites/13107749441/artifacts/711806262 - 更新Resources文件地址
https://gitlab.com/YuukiPS/GC-Resources
- 替换文件,代理,服务器管理文件
判断问题所在
这是我已经配置好的,版本是3.7,如果连不上,就说明是你本地出现了问题,以此类推!不过也可能是我给服务端关掉了 没设置密码,所以数据会经常消失,拿来测试用是最好的。
服务器关了
地址www.cwh2o.xyz 端口6443
关于控制台显示无权限的问题(3.5出现)解决方法参照
https://github.com/jie65535/gc-opencommand-plugin/issues/27
可以解决此问题。
来源地址:https://blog.csdn.net/qq_40634537/article/details/129095224
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341