[toc]
本文仅仅为介绍一个什么都不懂的萌新如何成功连接上一个Grasscutter服务器的教程,至于Grasscutter服务器地址或搭建教程,不在本文讨论范围。
目前,Grasscutter对ios比较友好,国服客户端就可以。pc则需要切换到国际服务器,安卓比较困难,需要root什么的。故不编写安卓教程,有需求的同学可以自行研究。
以下是pc教程,ios用户可以直接跳到第2步
打开 github.com/DawnFz/Genshin.Launcher.Plus 根据readme.md的指引下载启动器
前往Plugins/Genshin.Launcher.Plus.SE.Plugin - Snap Genshin 资源中心,下载 GlobalFile.pkg
GlobalFile.pkg
移到启动器目录下,注意需要与**启动器exe
放在同级目录**,如下图
按照如下图操作,日后需要转换为国服可以重复如上步骤还原国服
确保启动器显示为 国际服务器
,点击开始游戏
hoyoverse
Logo则代表切换国际服成功
前往 mitmproxy官网下载
打开mitm.it 根据网页指引,下载对应的根证书,用于解密https流量
比如我是windows pc,就下载对应的p12根证书
随便找一个https网站,比如叔叔的bilibili
如果显示如下图,表示根证书没有安装成功
开始本步骤之前,记得先关闭之前启动的所有mitm窗口,不然会提示8080端口被占用
在任意目录创建 proxy.py
和 proxy_config.py
proxy_config.py内容:
其中第5行的 example.com
需要替换为你的Grasscutter服务器域名
import os
# This can also be replaced with another IP address.
USE_SSL = True
REMOTE_HOST = "example.com"
REMOTE_PORT = 443
if os.getenv('MITM_REMOTE_HOST') != None:
REMOTE_HOST = os.getenv('MITM_REMOTE_HOST')
if os.getenv('MITM_REMOTE_PORT') != None:
REMOTE_PORT = int(os.getenv('MITM_REMOTE_PORT'))
if os.getenv('MITM_USE_SSL') != None:
USE_SSL = bool(os.getenv('MITM_USE_SSL'))
print('MITM Remote Host: ' + REMOTE_HOST)
print('MITM Remote Port: ' + str(REMOTE_PORT))
print('MITM Use SSL ' + str(USE_SSL))
proxy.py内容:
其中 filter_rules
定义了需要劫持的原神游戏服务器域名,使用正则表达式匹配,将其劫持到我们上面的Grasscutter服务器
import re
from mitmproxy import http
from proxy_config import USE_SSL
from proxy_config import REMOTE_HOST
from proxy_config import REMOTE_PORT
class MlgmXyysd_Genshin_Impact_Proxy:
filter_rules = [
r"(.*?).mihoyo.com",
r"(.*?).hoyoverse.com",
r"^(?!autopatch)(.*?).yuanshen.com"
]
def request(self, flow: http.HTTPFlow) -> None:
# if flow.request.host in self.LIST_DOMAINS:
for rule in self.filter_rules:
if re.search(rule, flow.request.host):
if USE_SSL:
flow.request.scheme = "https"
else:
flow.request.scheme = "http"
flow.request.host = REMOTE_HOST
flow.request.port = REMOTE_PORT
addons = [
MlgmXyysd_Genshin_Impact_Proxy()
]
确保两个py文件放在同一个目录
这时,我们需要一点小技巧来快速打开win10的终端运行mitm
按住键盘上的 Shift
时并点击右键,会出现一个 在此处打开Powershell窗口 的选项
mitmweb -s proxy.py
出现如下图表示运行成功
打开原神,输入账号,密码随便输,点击进入游戏(输入不存在的账号时,服务器会自己创建账号)
不正常情况2: 卡在登录成功后的检查更新中,我也曾经被这个情况困扰很久,最后发现貌似是原神的hk更新服务器被解析到一个198开头的不存在的ip(或许被污染了?),需要修改hosts强制指定到正确的ip,如下所示
211.97.90.13 autopatchhk.yuanshen.com
最后,祝各位玩的愉快
如果你完成了pc上 mitm的搭建(也就是第二步mitm的所有配置),你可以让ios设备连接到pc的mitm代理实现ios玩Grasscutter服务器,或者如果你有quanX等也可以使用圈x进行劫持。
wifi设置里找到http代理设置
打开mitm.it,安装ios对应的证书
安卓端也不需要root,用op或者其他免root框架注入一下原神客户端然后注入个GenshinProxy模块即可(注意需要关闭签名破解)
两个app都在github开源