网络知识 娱乐 Grasscutter(除草机)联机搭建指南

Grasscutter(除草机)联机搭建指南

教程目录

  • 声明
  • 一、Grasscutter搭建架构
    • 1.云服务器直接搭建架构
    • 2.云服务器Docker搭建架构
    • 3.(带DDNS)个人主机搭建架构
  • 二、搭建教程
    • 1.搭建流程图
    • 2.具体搭建内容
      • 1)服务端搭建
      • 2)PC端搭建
  • 结尾 和 FAQ


声明

本文根据Github Grasscutters的开源项目Grasscutter形成的搭建指南文件
开源地址 https://github.com/Grasscutters/Grasscutter

为避免产生利益纠纷,本教程不提供Grasscutter整合包
本教程为 Liunx 服务搭建教程 Windows 基本差不多 不做解释
本教程 不会手把手教你怎么搭建 很多指令和过程会做我认为的适当缩减
有时间再给补上,但都使用Liunx 搭建了 应该不是个超级小白


一、Grasscutter搭建架构

1.云服务器直接搭建架构

Grasscutter基本搭建结构

2.云服务器Docker搭建架构

Docker搭建结构

3.(带DDNS)个人主机搭建架构

带公网IP自己搭建
这种架构一定要有公网IP 可用在百度输入IP查询 对比在路由器WAN口的IP是否一致,一致说明是公网IP


二、搭建教程

1.搭建流程图

搭建流程图

2.具体搭建内容

啰嗦了那么多,主要是讲明白原理,这是一个学习文档,知其然知其所以然,授人鱼不如授人渔,干货开始!

1)服务端搭建

进入Liunx 打开控制台

  1. 安装java jdk17
#升级软件源 记得换国内源 换源方法百度吧
sudo apt update && sudo apt upgrade -y
#安装jdk
sudo apt-get install openjdk-17-jdk
#检查是否安装成功
java --version
  1. 将Grasscutter包文件放到 /App 目录
    不做多解释 代码操作也好 图像化界面操作也好最后大概目录如下
|-----------------/APP------------------
├── config.json
├── data
│   ├── Banners.json
│   ├── Drop.json
│   ├── query_cur_region.txt
│   ├── query_region_list.txt
│   ├── Shop.json
│   └── Spawns.json
├── grasscutter.jar
├── keys
│   ├── dispatchKey.bin
│   ├── dispatchSeed.bin
│   ├── secretKey.bin
│   └── secretKeyBuffer.bin
├── keystore.p12
├── logs
│   └── latest.log
├── plugins
├── README_zh-CN.md
├── resources
│   ├── BinOutput
│   ├── ExcelBinOutput
│   ├── proto
│   ├── Readable
│   ├── Scripts
│   ├── Subtitle
│   └── TextMap
└── run.bat
  1. 安装MongoDB
#升级软件源
sudo apt update && sudo apt upgrade -y
#安装 MongoDB:
sudo apt install mongodb
#设置自动启动
sudo systemctl enable mongodb
  1. 配置Grasscutter Config文件
............................................
"DatabaseUrl": "mongodb://127.0.0.1:27017", //这里写数据库地址
  "DatabaseCollection": "grasscutter",
  "RESOURCE_FOLDER": "./resources/",
  "DATA_FOLDER": "./data/",
  "PACKETS_FOLDER": "./packets/",
  "DUMPS_FOLDER": "./dumps/",
  "KEY_FOLDER": "./keys/",
  "SCRIPTS_FOLDER": "./resources/Scripts/",
  "PLUGINS_FOLDER": "./plugins/",
  "DebugMode": "NONE",
  "RunMode": "HYBRID",
  "GameServer": {
    "Name": "Test",
    "Ip": "0.0.0.0",
    "PublicIp": "你的公网IP或者域名",
    "Port": 22102,
    "PublicPort": 0,
    "DispatchServerDatabaseUrl": "mongodb://127.0.0.1:27017",//这里写数据库地址
    "DispatchServerDatabaseCollection": "grasscutter",
    "InventoryLimitWeapon": 2000,
.............................
"DispatchServer": {
    "Ip": "0.0.0.0",
    "PublicIp": "你的公网IP或者域名",
    "Port": 443, //如果你是DDNS的部署 1000以下的端口不一定能用 可能被运营商封了
    "PublicPort": 0,
    "KeystorePath": "./keystore.p12",
    "KeystorePassword": "123456",
    "UseSSL": true,
    "FrontHTTPS": true,
    "AutomaticallyCreateAccounts": false,
    "defaultPermissions": [
      "player"
    ],
    "GameServers": []
  1. 启动 Grasscutter
#cd 到Grasscutter 目录
cd /App
#启动 Grasscutter
java -jar grasscutter.jar
#出现 Listening at 22102 后代表服务器启动成功
#使用以下指令添加 abc账户 uid 100001
account abc 100001

Grasscutter 命令问题参考这里


2)PC端搭建

  1. 安装准备
    YS 国际版
    Python3
    mitmproxy
    安装过程不再赘述

  2. 配置好代理脚本
    创建Proxy文件夹 将开源项目中的 代理脚本 如下放置
    文件结构为

/Proxy
----proxy.bat
----proxy.py
----proxy_config.py

特别提示

"DispatchServer": {
    "Ip": "0.0.0.0",
    "PublicIp": "你的公网IP或者域名",
    "Port": 443(请注意这里 如果改成10443), //如果你是DDNS的部署 1000以下的端口不一定能用 可能被运营商封了
    "PublicPort": 0,

上方的443 端口 有时候不能用 更换了其他端口 比如 10443
我们需要同步修改 proxy_config.py 的Port
修改后如下
proxy_config.py

# This can also be replaced with another IP address.
USE_SSL = True
REMOTE_HOST = "你的公网IP"
REMOTE_PORT = 10443(与Grasscutter Config相同)

为了更好的部署 我修改了proxy.bat 设置了他的证书目录
proxy.bat

@echo off
mitmdump -s proxy.py --ssl-insecure --set block_global=false --set confdir=./keyconfig  --listen-port 54321
pause

启动代理脚本 proxy.bat 后
在目录中生成 keyconfig文件夹

├── resources
│   ├── mitmproxy-ca-cert.cer
│   ├── mitmproxy-ca-cert.pem
│   ├── mitmproxy-ca.pem
│   ├── mitmproxy-ca-cert.p12
│   ├── mitmproxy-ca.p12
│   └── mitmproxy-dhparam.pem

mitmproxy-ca-cert.p12 安装在Windows中

  1. 设置好本地代理
    打开 Windows 系统代理如下设置
    本地代理设置
  2. 启动YS 国际服 在账号栏输入 之前创建的 abc 密码随意
    开始游玩吧
    防止一些问题
    [[[[[[假装有图]]]]]]]]
    [[[[[[假装有图]]]]]]]]
    [[[[[[假装有图]]]]]]]]
    [[[[[[假装有图]]]]]]]]

结尾 和 FAQ

途中如果出现错误 请观摩其他教程的解决办法 什么时候我有时间了 我就来更新 BUG 解决的问题

2022/5/12 刘先森