mirai Bot初始化配置

Orisland發表於2024-07-04

RT

其實本來我的bot已經因為自己手賤登陸qq nt直接報廢了,但是論壇裡有佬提供了新的協議庫,那這不趕緊復活bot都對不起這個新的協議庫。
本文寫於2024年7月4日19:20:21,可能隨著時間久遠而無法實現功能。

mirai 是一個在全平臺下執行,提供 QQ Android 協議支援的開源高效率機器人庫
這個專案的名字來源於
京都動畫作品《境界的彼方》的慄山未來(Kuriyama mirai)
CRYPTON以初音未來為代表的創作與活動(Magical mirai)
圖示以及形象由畫師DazeCake繪製
專案地址:https://github.com/mamoe/mirai

由於存在下載障礙,所以這裡也搞了個存檔,本帖中的相關標星*資源無法下載均可以從這裡拿走,由於本帖不會進行版本跟進,若年代過於久遠請以最新為準,本帖中的一些配置可能需要後續隨著引用貼的更新進行調整。
https://orisland.lanzoul.com/b0maqsrkj
密碼:53cs
本帖使用xshell+xftp作為ssh連線軟體 *。

特別感謝: @zhaodice

本帖適用於

  • 剛剛接觸mirai不知道如何登入的新手
  • 因為安全問題不想使用整合包的選手
  • 已經知曉你的賬戶登入資訊和收發的資訊會全部被註冊伺服器知曉的選手
  • 稍微有一些Linux基礎或樂於折騰的選手
  • 對使用協議庫登陸bot可能造成的後果有心理承受力的選手
  • ....

過程中需要使用的專案

必須安裝

  • https://mirai.mamoe.net/topic/2673/試圖復活qsign-基於9-0-56版本-再撈一把 @zhaodice
  • https://github.com/iTXTech/mcl-installer
  • https://github.com/cssxsh/fix-protocol-version
  • https://github.com/KasukuSakura/mirai-login-solver-sakura
  • 任意手機模擬器(本教程以雷電為例,海外版沒有廣告,廣告ptsd可以選海外版
  • ..

可選安裝(外掛)

  • https://github.com/project-mirai/chat-command
  • https://mirai.mamoe.net/topic/68/luckperms-mirai-高階許可權服務外掛
  • https://mirai.mamoe.net/topic/2645/今日運勢外掛
  • ...

詳細步驟

註冊一個qq號

https://ssl.zc.qq.com/v3/index-chs.html

需繫結手機,非常不推薦使用一些批次註冊的qq號,或者來源不明的qq號,這些賬號被風控的可能性會更高,而且不安全,容易被殺。

準備一臺伺服器或vps

請注意,為了bot能長期穩定執行考慮,應儘可能避免海外雲主機。
阿里雲騰訊雲,等等各大雲服務廠商提供了各種型號的學生機供你選擇。
從省錢划算的角度考慮,推薦考慮的配置為1c或2c配置,記憶體在1g到2g即可滿足bot的執行需要,甚至還能再掛個寶塔,個人推薦最低使用輕量級雲伺服器即可,ecs或者類似的伺服器也可以,這個沒有特別大的區別。
alt text
alt text

當然因為bot本身不需要公網環境,所以如果你自己有閒置的伺服器或者低功耗裝置(比如nas,軟路由,各種小盒子等等),也可以在自己的伺服器或者裝置上進行bot搭建,相同網路環境下,機器人被搞的機率和頻率會小的多。可以使用目錄調整到最下方,檢視作為彩蛋的HomeLab硬體推薦。

系統選擇

使用centos8或者ubuntu/debian等。
本文以目前比較常用的Ubuntu22作為bot的搭建平臺進行。

初始系統配置

本文預設你已經對ubuntu的apt源進行了更換,已經對ubuntu做了基本的初始配置,例如掛載磁碟,update等操作。

如果你是在消費級硬體上進行搭建,請注意ubuntu時區可能有誤,需要使用命令進行調整。
timedatectl set-timezone Asia/Shanghai

安裝mirai

由於本文在進行編撰的過程中,mirai論壇本身處於被牆狀態,mcl安裝的必要資源package.json會出現問題,所以本文選擇通用的安裝方式,不使用mcl一鍵安裝。若之後論壇網路訪問恢復,更推薦考慮mcl一鍵安裝更為省事,使用mcl一鍵安裝可以跳轉到下一章節--必要外掛安裝。
這裡引用mcl專案提供的安裝方案。
https://github.com/iTXTech/mcl-installer

為伺服器安裝java,不同系統以當前系統為準。

apt install openjdk-17-jre-headless -y

安裝完成後檢查版本。

java -verison

alt text

手動下載mcl壓縮包
https://maven.aliyun.com/repository/public/org/itxtech/mcl/2.1.2/mcl-2.1.2.zip
解壓到需要安裝的mirai目錄中,省事考慮可以對mirai資料夾整體給777許可權。
本文預設mirai目錄為/root/mirai,如果懶得對命令進行修改,請建立到相同目錄。

chmod -R 777 /root/mirai

啟動mcl.jar對mirai進行安裝。

java -jar mcl.jar

安裝過程中你必須完整的看完mirai的使用者須知,不可取消和跳過,這對於之後的排錯和處理非常重要。

2024-07-04 07:36:14 I/main: mirai-console started successfully.

mirai本體基本安裝完成。
ctrl + cexit退出mirai進行後續安裝。

必要外掛/軟體安裝

安裝手機模擬器(本帖以雷電為例)
前往github
下載fix-protocol-version *
https://github.com/cssxsh/fix-protocol-version/releases/download/v1.13.0/fix-protocol-version-1.13.0.mirai2.jar
下載mirai-login-solver-sakura *
https://github.com/KasukuSakura/mirai-login-solver-sakura/releases/download/v0.0.12/apk-release.apk

開啟雷電模擬器,安裝mirai-login-solver-sakura,開啟備用。
alt text
alt text

fix-protocol-version上傳到mirai目錄下的plugins目錄內,此時plugins內應包含三個檔案。
alt text

前往下面的地址,本頁後續還需要使用,不要關閉。
https://mirai.mamoe.net/category/13/使用交流
複製協議配置檔案
alt text
在mirai的根目錄中輸入命令

nano android_pad.json

在控制檯中右擊螢幕,貼上配置。
alt text
進行儲存退出。
ctrl + x
y
回車

忘掉之前啟動mirai的方式,之後使用./mcl -u進行啟動。

協議配置

使用./mcl -u 啟動mirai。
等待載入完成後輸入命令

protocol load ANDROID_PAD

出現如下提示時協議資訊匯入完成。
alt text
檢查當前的協議庫中的協議版本。
alt text
退出mirai。

回到剛才的頁面,複製該部分。
alt text

來到mirai根目錄輸入命令,

mv KFCFactory.json KFCFactory.json.bak
nano KFCFactory.json

將剛才複製的文字在這裡貼上並和之前一樣進行儲存,注意刪除結尾的逗號
alt text

使用命令重新啟動mirai。
啟動完成無報錯後,則協議庫配置完畢。

登陸賬號

./mcl -u
請注意,下面的過程可能需要一些手速,過慢的驗證您可能需要反覆進行下面的步驟,過多的重試可能會增加賬號凍結的風險性,請注意。
登陸qq。

login botqq號 bot密碼 ANDROID_PAD

若之前的配置全部沒有問題,在mirai啟動後登陸賬號密碼會提示註冊成功。

2024-07-04 16:23:04 I/UnidbgFetchQsign: Bot(1145141919) register, 註冊成功了您嘞!

之後可以在螢幕中找到下列類似地址,此時,需要儘可能快的將這串地址https://ti.qq.com/.... 複製到剛才開的模擬器中的框框中,並單擊下一步.

[SliderCaptcha] Captcha link:https://ti.qq.com/safe/tools/captcha/sms-verify-login....

alt text
在經過簡單的圖形驗證後,會彈出ticket,立即複製該ticket
alt text
回到ssh,在ticket欄進行貼上,並回車,如果一切順利,你會看到下面圖片中的顯示,即確認傳送手機驗證碼。
alt text
輸入yes後回車,將手機上收到的驗證碼填入對應欄目後回車,登陸完成。

注意本階段有一次傳送簡訊前的確認步驟,手動輸入yes,不要在上面步驟就開始傻等簡訊。

alt text

mirai測試登陸過程全部結束。

為bot新增自動登入,讓mirai每次啟動後自動登入。
退出mirai,下面的步驟必須退出mirai之後才能進行,下列命令的實際路徑以你的本地mirai的為準。

由於miria在退出時會回寫配置,故所有的配置需在mirai關閉時進行。

nano /root/mirai/config/Console/AutoLogin.yml

在編輯器中新增你的bot資訊,注意箭頭這裡必須修改為剛才匯入的ANDROID_PAD不能使用預設的ANDROID_PHONE.
alt text
儲存退出。
重新啟動mirai,發現mirai自動登入完成。
alt text

非必須外掛安裝

本專案不是必須安裝的,只作為安裝演示。
有些外掛支援使用mcl進行安裝,有些只能手動下載jar包上傳plugins目錄安裝
推薦安裝Chat Commandluckperms - Mirai,前者為命令外掛,後者為許可權管理外掛。
在mirai根目錄分別執行下面的兩條命令後,下次啟動後自動安裝下載這兩個外掛。

./mcl --update-package net.mamoe:chat-command --channel maven-stable --type plugin
./mcl --update-package io.github.karlatemp:luckperms --channel nightly --type plugin

完成後./mcl -u,啟動等待完成即可。

配置啟動

本文提供兩種後臺執行mirai的方式,二選一即可。
如果不進行下面的配置,當你斷開ssh時,mirai也同樣會中斷執行

screen
screen為多重視窗管理程式
https://www.runoob.com/linux/linux-comm-screen.html

輸入命令,建立mirai視窗

screen -S mirai

在這個視窗中啟動mirai.
使用這種方式方便隨時管理和檢視,以及sj群友行為。
之後你可以直接斷開ssh,mirai不會停止執行
當需要再次檢視該screen 視窗時,只需要輸入命令進行切換。

screen -r mirai

systemctl
systemctl是 Systemd 的主命令,用於管理系統。
https://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html

建立啟動服務。

nano /etc/systemd/system/mirai.service

將下面的內容寫入檔案儲存,注意對需要的部分進行修改。
ExecStartWorkingDirectory的變數。

[Unit]
Description=Mirai Bot
After=network.target

[Service]
Type=simple
ExecStart=/root/mirai/mcl
ExecStop=/bin/kill -9 $MAINPID
Restart=on-failure
User=root
WorkingDirectory=/root/mirai
StandardOutput=append:/root/mirai/log.log
StandardError=append:/root/mirai/log.log

[Install]
WantedBy=multi-user.target

過載systemctl。

systemctl daemon-reload

將bot啟動設定為開機自啟。

systemctl enable mirai.service

啟動mirai。

systemctl start mirai.service

檢查mirai狀態。

systemctl status mirai.service

alt text

HomeLab相關推薦

本章節為彩蛋部分,只為想在自家執行bot的選手提供一些參考。
mirai執行需要的效能很低,當然這個也和你安裝的外掛數量以及外掛的程式碼效率相關。
所以如果你想在家裡配置一臺裝置執行mirai,配置自然是越低越好,功耗自然是越低越好,最理想的方式是插個網線放窗臺,使用免費的核聚變供電。
推薦硬體配置:

  • 樹莓派(arm平臺)
  • e3 1265lv3 這個帶集顯tdp45w,可以關閉超執行緒
  • e3 1220lv3 不帶集顯13w,可以配合超微C7Z97-MF板載集顯實現超低功耗
  • i3 6100t 帶集顯tdp只有35w
  • BV1JY4y117vH
  • epyc系列
  • j1900
  • .....

推薦使用純ECC / Regecc(大部分家用裝置不支援後者),d5平臺消費級主機板只能使用消費級記憶體條,純ecc和regecc都不能用。

電源必須使用一線或準一線品質對於裝置本身的穩定性至關重要。

推薦軟體配置:
proxmox作為母雞系統啟動虛擬化。
目前測試該系統可以在消費級硬體無故障的情況下實現高負載400d+的使用,下圖升級過版本,進行了一次停機,實際線上時間已經將近500d。
alt text

後日談

待補充。

完成

好耶!
猛猛安裝外掛。
alt text
alt text

相關文章