草庐IT

Ubuntu搭建原神3.5版本服务器

hewei2723 2023-05-07 原文

本文涉及知识点
linux基础命令|mongoDB服务端搭建及指令|Java环境搭建
原神私服可以用来抽卡满足自己用,他的许多任务都得登录控制台自己发,不建议拿私服玩,想要体验完美原神请到官服,本文只做LINUX MongoDB java教学例子

材料准备

  • 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 https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz

tar -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

服务端启动方法

进入服务端目录

cd /home/Grasscutter

执行服务端文件,用之前下载的java17

/home/java/jdk-17.0.6/bin/java -jar grasscutter-1.4.6.jar

服务端配置文件的修改(目录下的config.json)

{
  "folderStructure": {
    "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并按照我图中一样打勾勾

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

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

/* 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.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.5 资源文件下载链接
https://gitee.com/x0rz4/GC-Resources.git
判断问题所在
这是我已经配置好的,版本是3.5,如果连不上,就说明是你本地出现了问题,以此类推!不过也可能是我给服务端关掉了,私我给你打开就行了。此服务端仅限拿来测试,随时有删档的可能,要长久玩自己开!
地址www.cwh2o.xyz 端口443
关于控制台显示无权限的问题(3.5出现)解决方法参照
https://github.com/jie65535/gc-opencommand-plugin/issues/27
可以解决此问题

有关Ubuntu搭建原神3.5版本服务器的更多相关文章

  1. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  2. ruby - 具有身份验证的私有(private) Ruby Gem 服务器 - 2

    我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..

  3. ruby-on-rails - 项目升级后 Pow 不会更改 ruby​​ 版本 - 2

    我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby​​版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby​​版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘

  4. ruby-on-rails - 启动 Rails 服务器时 ImageMagick 的警告 - 2

    最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru

  5. ruby-on-rails - 在 ruby​​ .gemspec 文件中,如何指定依赖项的多个版本? - 2

    我正在尝试修改当前依赖于定义为activeresource的gem:s.add_dependency"activeresource","~>3.0"为了让gem与Rails4一起工作,我需要扩展依赖关系以与activeresource的版本3或4一起工作。我不想简单地添加以下内容,因为它可能会在以后引起问题:s.add_dependency"activeresource",">=3.0"有没有办法指定可接受版本的列表?~>3.0还是~>4.0? 最佳答案 根据thedocumentation,如果你想要3到4之间的所有版本,你可以这

  6. ruby-on-rails - s3_direct_upload 在生产服务器中不工作 - 2

    在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo

  7. ruby-on-rails - 如果我将 ruby​​ 版本 2.5.1 与 rails 版本 2.3.18 一起使用会怎样? - 2

    如果我使用ruby​​版本2.5.1和Rails版本2.3.18会怎样?我有基于rails2.3.18和ruby​​1.9.2p320构建的rails应用程序,我只想升级ruby的版本,而不是rails,这可能吗?我必须面对哪些挑战? 最佳答案 GitHub维护apublicfork它有针对旧Rails版本的分支,有各种变化,它们一直在运行。有一段时间,他们在较新的Ruby版本上运行较旧的Rails版本,而不是最初支持的版本,因此您可能会发现一些关于需要向后移植的有用提示。不过,他们现在已经有几年没有使用2.3了,所以充其量只能让更

  8. ruby - 如何在 Ubuntu 中清除 Ruby Phusion Passenger 的缓存? - 2

    我试过重新启动apache,缓存的页面仍然出现,所以一定有一个文件夹在某个地方。我没有“公共(public)/缓存”,那么我还应该查看哪些其他地方?是否有一个URL标志也可以触发此效果? 最佳答案 您需要触摸一个文件才能清除phusion,例如:touch/webapps/mycook/tmp/restart.txt参见docs 关于ruby-如何在Ubuntu中清除RubyPhusionPassenger的缓存?,我们在StackOverflow上找到一个类似的问题:

  9. ruby-on-rails - 获取 inf-ruby 以使用 ruby​​ 版本管理器 (rvm) - 2

    我安装了ruby​​版本管理器,并将RVM安装的ruby​​实现设置为默认值,这样'哪个ruby'显示'~/.rvm/ruby-1.8.6-p383/bin/ruby'但是当我在emacs中打开inf-ruby缓冲区时,它使用安装在/usr/bin中的ruby​​。有没有办法让emacs像shell一样尊重ruby​​的路径?谢谢! 最佳答案 我创建了一个emacs扩展来将rvm集成到emacs中。如果您有兴趣,可以在这里获取:http://github.com/senny/rvm.el

  10. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

随机推荐