还在为攒原石抽老婆而爆肝吗?还在为自己的脸黑抓狂吗?不妨来体验一下原神私服,在本地环境中随心所欲地研究老婆(bushi

file

注意:所有收费盈利的原神私服均为利用免费的开源项目盈利的骗子,请与我们一起打击这类行为!!!

特色:

  1. 所有物品、角色、武器均可通过指令解锁
  2. 可以在地图上使用鱼钩标记点瞬间传送至任意位置
  3. 可以使用指令生成任意生物、掉落物
  4. 可以任意调整角色、武器属性
  5. 可以调整天气
  6. 地图全解锁,而且也不会有“前面的区域以后再来探索吧”的限制(虽然前面的区域什么都没有)
  7. 可以在服务器内通过UID加好友进入世界一起打副本

缺点:

  1. 无法正常接任务,虽然可以用指令强行调出任务,但是有很大概率会出bug
  2. 使用指令不建议生成过多数量的物品(比如几亿个原石),易导致服务器/客户端崩溃,够用即可
  3. 因为几乎所有内容都可以无条件刷出来,少了很多乐趣,还是建议在官服游玩之余来私服快活一下

我的服务器上已经部署了原神私服,可以在Genshin Impact Server查看。

下文为私人服务器部署教程。服务端使用了GitHub开源项目Grasscutter,教程参考了Moeyy的文章原神原神私人服务器搭建教程Grasscutter 原神服务端编译教程(视频教程)。侵删。


完整的可以游玩的的原神私服包括服务端和客户端。想当服主的仅需要把服务端部署在服务器上,而如果希望本地运行的话就需要把两者都装在本地。

服务端

服务端需要安装以下内容:

  1. Java SE 17 - Grasscutter的运行环境
  2. MongoDB 4.0+ - 存储服务器数据
  3. Grasscutter - 服务器程序

感兴趣的大佬可以考虑一下容器化。

Java

如果仅需要运行服务端,使用jre即可。

根据你的操作系统选择不同的安装方式,不再赘述。

下载地址

MongoDB

建议安装4.0以上的版本。

根据你的操作系统选择不同的安装方式,不再赘述。

下载地址

安装之后记得启动MongoDB服务。

#Linux启动MongoDB服务
sudo systemctl start mongod.service
#Linux设置MongoDB服务开机自启
sudo systemctl enable mongod.service

Grasscutter

此方法获取到的版本不一定为最新版。
这里提供三种方法获取Grasscutter的程序文件。

1 直接下载

直接下载Moeyy大佬提供的整合包。(其实是因为我懒得打包)
查看原文

2 从Actions下载

此方法获取到的版本为最新版。

详见GitHub项目Grasscutter

3 自行编译

此方法获取到的版本为最新版。

详见GitHub项目Grasscutter
DEV版本源码地址
数据文件夹存放wiki
Moeyy的视频教程

依赖:

  1. Java SE Development Kits - 17
  2. Git

Windows:

git clone https://github.com/Grasscutters/Grasscutter.git # 或使用自己的fork地址
cd Grasscutter
.\gradlew.bat # 建立开发环境
.\gradlew jar # 编译

Linux:

git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
chmod +x gradlew
./gradlew jar # 编译

编译后的 JAR 文件存放在根目录。
Windows如创建为bat文件请删除注释。

编译成功后需要下载资源文件和证书文件到目录下。

  1. 克隆或下载 https://git.crepe.moe/tamilpp25/Grasscutter_Resources ,将项目内Resources文件夹内的所有文件都复制到Grasscutter中的resources文件夹内。
  2. 下载 https://raw.githubusercontent.com/Grasscutters/Grasscutter/development/keystore.p12 证书文件,复制到Grasscutter目录下。

启动Grasscutter

通过上述步骤,我们得到了Grasscutter的jar程序包。现在只需启动它就可以完成服务端的构建。

启动之前还需要编辑Grasscutter的配置文件config.json

  1. 修改bindAddress为可访问到服务端的地址,bindPort为服务端可用的端口,accessAddress为希望绑定的主机名。
    file
  2. 修改accessAddress为希望绑定的主机名。此处的bindPort不建议修改。
    file

注:自行构建的版本如果没有config.json文件,请先按下面的方法运行一次,以生成配置文件。从旧版本升级到新版本, 需要删除config.json使其重新生成。

如果你的服务端使用了云厂商的VPS或者安装有防火墙,请放行以下端口:

  • 22102 - TCP
  • 上一步的http-bindPort - TCP+UDP

运行以下命令在前台启动服务端:

#Linux根据情况可能需要添加sudo
#grasscutter.jar的文件名根据实际情况修改
java -jar ./grasscutter.jar

看到类似输出即启动成功:
file

输入以下命令创建账号:

#user是用户名,10001是uid
account create user 10001

输入以下命令关闭服务器:

stop

官方指令文档
中文指令文档-基本GM指令

Linux系统中,为了保证Grasscutter的持久化运行,我们为其编写service文件并用systemctl管理它。
编写文件/etc/systemd/system/grasscutter.service

[Unit]
Description=Genshin Server by grasscutter
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
WorkingDirectory=/usr/local/grasscutter
ExecStart=java -jar /usr/local/grasscutter/grasscutter.jar
User=root
Group=root

[Install]
WantedBy=multi-user.target

启动Grasscutter服务:

#启动服务
sudo systemctl start grasscutter.service
#设置自启
sudo systemctl enable grasscutter.service

至此服务端配置完成。


客户端

以下内容仅针对Windows平台。教程仅针对原神国际版,对原版无影响。

为了将原神客户端的流量劫持并重定向到私人服务器,我们需要流量转发工具。

大部分配置原神私服客户端的教程使用的都是Fiddler进行流量转发,而它对于游戏客户端而言不够优雅。我自己的私服客户端使用的是GitHub项目GL(原神启动器),它内部集成了流量转发工具Titanium Web Proxy,无需每次繁琐的配置。

现在,有两个方法来安装客户端,均可正常运行。

使用GitHub项目GL及Titanium Web Proxy(更优雅)

请移步我的私服说明页Genshin Impact Server来生成客户端。

使用原生启动器及Fiddler(方便研究原理)

  1. 下载安装Fiddler
  2. 打开Fiddler,先更换代理端口,不要使用默认端口防止冲突。更换位置:tools-options-connections
    file
  3. 转到HTTPS选项,开启解密HTTPS选项,会要求安装证书,点是。(安装证书是为了截取原神客户端加密的数据包,使其与私服通信)
    file
  4. 打开rules-customize rules,复制下方的规则进去,然后Ctrl+S保存。
    oS.host配置为服务端地址。

    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 = "genshin.mikumikumi.xyz:39443"; 
      } 
    } 
    }; 
  5. 移步我的私服说明页Genshin Impact Server,按照教程操作,跳过4-6步,直接启动游戏即可。

Enjoy~