admin 管理员组

文章数量: 886992

Ubuntu搭建原神3.7版本服务器

本文涉及知识点
linux基础命令|mongoDB服务端搭建及指令|Java环境搭建
为了学习以上提到的技术,本文只以元神私服做LINUX MongoDB java教学例子

写在前面

常识性问题

关于有部分读者反馈3.6下载地址打不开的问题,因为下载地址是GitHub的。如果你只是原神玩家,而发现打不开GitHub的话,可以参照我这篇文章。
如果你是同行,问我为什么Github打不开,那你就要反思一下自己平时都在干什么了,在这行属于常识性问题了

数据库安全(特别注意)

我数据库专门给这个原神装的,没设密码,所以被小鬼给删库了,我说数据库怎么老是消失呢,你们记得设好密码哈,我就放了一个原神,他删不删无所谓。懒得去专门处理了,就这样吧!
MongoDB的密码和MySQL的不一样,是单独一个库有独立的账号密码
特地修了一下,设置了下密码。
感谢@Yolan_133的补充
设置密码后链接数据库格式为

"databaseInfo": {"server": {"connectionUri": "mongodb://username:password@localhost:27017","collection": "grasscutter"},"game": {"connectionUri": "mongodb://username:password@localhost:27017","collection": "grasscutter"}}



材料准备

  • Ubuntu
  • Mongodb
  • Grasscutters 地址GitHub

搭建方法

ssh登录你的服务器
进入一个目录创建一个文件夹储存服务端,推荐home

sudo cd home
sudo mkdir Grasscutter

将服务端放进去(服务端末尾提供)图为目录文件树,通过tree命令生成的


配置Java环境,此处直接下载Java,然后启动时使用下载的Java,防止环境出问题不好修复
创建一个文件夹放Java,我这里放到了home文件夹

mkdir /home/java 

进入这个目录

cd /home/java

下载Java并解压

wget .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 

就是这样的,我这里放到了服务端目录,所以填的是相对路径

{"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": "这里填标题!","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\"\"/\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并按照我图中一样打勾勾

返回主页面,点击右侧图中位置

将里面所有东西删掉,复制我的进去

/* Original script by NicknameGG, modified for Grasscutter by contributors. */
import System;
import System.Windows.Forms;
import Fiddler;
import System.Text.RegularExpressions;class Handlers
{static function OnBeforeRequest(oS: Session) {if(oS.host.EndsWith(".yuanshen") || oS.host.EndsWith(".hoyoverse") || oS.host.EndsWith(".mihoyo")) {oS.host = "ip:6443"; // This can also be replaced with another IP address.(输入域名也可)}if(oS.uriContains(":8888/log")){oS.oRequest.FailSession(200, "Blocked", "haha");}}
};

点击save script保存,这时候代理就自动运行了
进入C:\Genshin Impact\Genshin Impact Game,下面有个yuanshen.exe直接通过这个启动,成功进入服务器,进入游戏后界面是这个

按我的配置文件来的,直接填用户名和密码就能够完成注册了。UID从10001开始排列,现在你就是天理!

  • 提到的文件
    • 替换文件,代理,服务器管理文件
      密码:cbjr
    • 3.4服务端
    • 更新服务端3.5 地址.4.7/grasscutter-1.4.7.jar
    • 更新3.6服务端
    • 更新3.7服务端
    • 更新Resources文件地址

判断问题所在

这是我已经配置好的,版本是3.7,如果连不上,就说明是你本地出现了问题,以此类推!不过也可能是我给服务端关掉了 没设置密码,所以数据会经常消失,拿来测试用是最好的。

服务器关了

关于控制台显示无权限的问题(3.5出现)解决方法参照

可以解决此问题。

本文标签: Ubuntu搭建原神37版本服务器