參考資料 / 設定
快速入門
安裝與啟動 TgWitness 的各種方式:Windows 套件、Python、Docker 以及合成示範,並包含初步檢查步驟。
英文 · 俄語 · 烏克蘭語 · 西班牙語 · 葡萄牙語(巴西) · 土耳其語 · 阿拉伯語 · 波斯語 · 烏爾都語 · 印地語 · 印尼語 · 越南語 · 簡體中文
TgWitness 是一款用於監控您帳戶可存取之 Telegram 群組與頻道的獨立應用程式, 它於本地端運行,並擁有專屬的資料目錄。
初次造訪?請先瀏覽示範版本,再進行帳戶連結。 請選擇相關指南,內容涵蓋代理伺服器、Witness、資料匯出或伺服器設定。
安裝與啟動#
請選擇一種方式。可攜式下載檔將於發行版本發布後提供:
| 主機 | 無需安裝任何軟體 | 來源:Python 3.11+ | Docker:Engine/Desktop 搭配 Compose 2.20 以上版本 |
|---|---|---|---|
| Windows | 從 GitHub Releases 中提取 TgWitness-<version>-windows-amd64-portable.zip,雙擊 TgWitness.cmd |
雙擊 Start.cmd |
雙擊 scripts\Docker.cmd |
| Linux / macOS | — | sh start.sh |
sh scripts/docker-start.sh |
若採用原始碼方式,請下載並解壓縮目前的 main,或複製儲存庫:
git clone https://github.com/phishdestroy/TgWitness.git
cd TgWitness
目前的原始碼包含批次匯入帳戶、MTProxy 儀表板,以及可續傳的歷史記錄載入功能。0.7.0 免安裝預覽版及其發行版原始碼壓縮檔早於這些新增功能。請參閱更新日誌以了解版本差異。
如果找不到合適的 Python,Start.cmd 會提議為您的 Windows 使用者安裝 Python 3.12(透過 winget 或經過簽署的 python.org 安裝程式)。若缺少 Python,start.sh 會印出適用於您的 Linux 發行版或 macOS 的確切安裝指令。首次從原始碼啟動時,會自動建立 .venv 並安裝相依套件。
Docker 會編譯應用程式並在背景中啟動它;無需主機端的 Python 環境。
當容器運作正常時,scripts\Docker.cmd 和 scripts/docker-start.sh 會輸出控制面板位址與代幣。
在所有受支援的主機上,對應的 Docker 指令如下:
docker compose up -d --build --wait
docker compose exec tgwitness cat /data/panel-token.txt
開啟 http://127.0.0.1:8787。使用 Docker 輔助程式或第二個 Docker 指令所產生的憑證,或針對可攜式或原始碼安裝版本,從 data/live/panel-token.txt 讀取憑證。接著請前往 下方的「連線至 Telegram」步驟。 原生安裝與 Docker 安裝使用各自的儲存空間; 啟動 Docker 並不會匯入現有的原生日誌。
針對伺服器,部署內容涵蓋自動啟用 HTTPS、重新啟動、 發佈的圖片、更新及備份。
探索介面#
- 請在可攜式套件中執行 TgWitness-Demo.cmd
,在 Windows 原始碼
資料夾中執行 scripts\Demo.cmd
,或在 Linux/macOS 上執行
sh start.sh --demo。首次從原始碼啟動時,系統會先建立.venv並安裝依賴項。 - 開啟 http://127.0.0.1:8787。
- 本地示範版本會自動開啟範例日誌。無需複製存取憑證即可直接進行本地存取。
示範訊息均為虛構。示範模式無法連線至真實的 Telegram 帳號。
連接 Telegram#
[!警告] 請勿使用任何您無法承受損失的資源。我們強烈建議您不要連結 個人或重要帳戶,也不要在您重視的帳戶上建立 API ID / 雜湊值。 Telegram 會不預警且經常永久封禁帳戶,無論使用何種客戶端。 測試能否順利進行取決於 Telegram 本身,而非 TgWitness,且無法保證後續運作的穩定性。
- 若原生示範程式正在執行,請停止它並執行 Start.cmd 或
sh start.sh。 否則,請讓上述啟動的即時安裝版本繼續運行。 - 請使用您所採用安裝方式對應的控制面板代碼來開啟控制面板。
- 若您需要使用代理伺服器,請前往「帳戶」→「設定」→「連線設定」→「變更連線路徑」進行設定。
- 在「帳戶」中,輸入您的電話號碼並按下「繼續」,選擇
「QR 碼」→「顯示 QR 碼」,或選取檔案並按下「連結帳戶」。
API ID + Hash 為選填項目:工作區會使用其儲存或匯入的配對組合,
或從內建池中選取一組可用的配對組合。若要使用您自己的應用程式,請將一組
API ID:API Hash配對組合貼上至 API ID 欄位。 若需完整的授權金鑰,請選擇「授權金鑰」,貼上全部 512 個十六進位 字元,並選取提供的 DC ID。使用者 ID 為選填項目,若輸入則會被勾選。 - 請完成您所選的登入方式:手機號碼/驗證碼/雙因素驗證(2FA),或透過 已登入的 Telegram 應用程式掃描 QR 碼進行確認,亦可匯入受支援的授權會話。
- 請確認顯示的帳號 ID。開放來源:您的聊天記錄會自動載入;請手動新增您的群組。
- 在「選擇要保留的變更」下,請選取事件類別或「 訊息、編輯與刪除」預設值,然後儲存監控設定。
- 請分別選擇附件設定,然後按下「開始監測」。
API 憑證用於識別您的應用程式;它們本身並不會 授權任何帳戶。私人群組無需公開使用者名稱,但您的帳戶必須具備存取權限。
對於現有帳戶,請參閱帳戶與工作階段格式:面板接受 Telethon StringSession、Telethon/Pyrogram SQLite、單一帳戶 TData ZIP,以及受支援的帳戶 JSON。請同時選取工作階段及其隨附的 JSON,然後按下連結帳戶。也可以使用相同的選用 API 設定進行 QR 碼登入。不支援 TDLib、機器人工作階段,以及 CSV/JSON 帳戶清單。
若有多個帳戶,請使用帳戶 → 匯入帳戶並選取其受支援的工作階段檔案。隨附的 JSON 檔案會依主檔名自動配對;每個匯入的帳戶都會獲得各自的工作區。請參閱大量匯入與帳戶群組。
若要新增另一個帳戶,請按帳戶選擇器旁的 +,或開啟 「帳戶」→「設定」→「連線設定」→「工作區」,亦可使用「帳戶」功能。各工作區擁有獨立的會話、 日誌、金鑰、來源及佇列。切換檢視畫面時,其他資料擷取程式仍會繼續執行。 在此安裝環境中,同一個 Telegram 帳戶無法指派給兩個工作區。 工作區數量沒有限制;由於它們共用同一個程序,因此容量取決於電腦的效能。
即時面板代幣用於保護您對 Telegram 授權及儲存
資料的存取權限;它與 Telegram API 憑證是分開的。僅有明確啟動且
直接存取的本地示範版本才會自動獲得存取權限。遠端/透過代理伺服器存取的示範版本仍會使用
data/demo/panel-token.txt。
檢視與匯出#
- 日誌:可依來源及事件類型搜尋並篩選觀察記錄。
- 選擇一項事件,以檢視其原始記錄、來源資訊及儲存的版本。
- 編輯詳情會顯示可用的「編輯前」與「編輯後」內容。刪除詳情則會顯示 最後擷取的內容(如有);若為未知行為者,其身分仍屬未知。
- 匯出格式:簽名 ZIP、JSONL、CSV 及離線 HTML。
- 完整聊天記錄匯出(來源 → 完整聊天記錄匯出):將單一聊天室的完整可見
歷史記錄下載為包含
chat.json(Telegram-export 風格)及可讀取chat.html的簽名封裝檔。若該帳號為群組成員,則可匯出私人聊天記錄。此為當前的 快照,並非已刪除或先前編輯過的訊息之重建。 使用python verify.py chat-export.zip --fingerprint TRUSTED_SHA256驗證 副本。 - 儲存檢查點:將簽名日誌的邊界維持在收集器之外。
- 下載簽名執行收據:保留收集器的程式/版本記錄。
- 準備時間戳記請求:向時間戳記授權機構提交離線請求; 請參照 TIMESTAMP.md 文件以取得並驗證回應。
- 驗證日誌:檢查事件簽名與鏈結。ZIP 匯出功能亦會檢查媒體檔案。
受支援的瀏覽器可將大型匯出檔直接儲存至指定檔案。其他瀏覽器 最多僅能緩衝 128 MiB。當伺服器正在運行時,串流命令列介面 (CLI) 支援 更大容量的下載,且無需緩衝整個回應:
python -m tgwitness.download --token-file data/live/panel-token.txt --out evidence.zip
若要新增另一個工作區,請透過「匯出」→「工作區 ID」新增 --profile ID。
若要新增遠端伺服器,請新增 --url https://your-server。預設傳輸限制為
5 GiB;--max-mib 可變更此限制。簽名 ZIP 內容預設另有 4 GiB 的未壓縮
驗證限制(可透過「參數」提高此限制;請使用
verify.py --max-gib N 驗證此類檔案)。請使用可信賴的驗證器副本以及
獨立保存的金鑰指紋/檢查點來驗證該檔案。
查看安裝說明#
python start.py --setup-only
python start.py --check
python start.py --check --json
--check 會偵測本地依賴項、簽名支援、儲存空間、金鑰設定以及
監聽位址。此工具不會安裝任何軟體,也不會連線至 Telegram。若端口
處於繁忙狀態,可能表示另有實例正在運行。請改用其他 --port,或先停止該實例。
啟動程式會安裝至 .venv。輔助的 python -m tgwitness... 指令必須
在 Windows 上使用 .venv\Scripts\python.exe,或在 Linux/macOS 上使用 .venv/bin/python,
除非該環境已啟用。
會話、保護與操作#
封閉且一致的 Telethon SQLite .session 檔案可透過
python -m tgwitness.sessions account.session --out account.tgwitness-session 在本地端轉換,隨後
載入至 Account。亦支援直接檔案匯入及 QR 碼登入。有關登入格式、SOCKS5、
HTTP CONNECT、MTProxy 及外部主金鑰的詳細資訊,請參閱
CONNECTION-SECURITY.md。
暫停監測將停止資料收集。鎖定僅會關閉瀏覽器存取權限。 關閉分頁後,收集程序仍會繼續運行。停止該程序才會中斷 資料收集;歷史快照無法還原所有遺漏的編輯或刪除紀錄。 了解資料收集在事件政策、附件佇列、 帳戶隔離及重新啟動行為方面的運作方式。
會話與機密資料均經過加密。訊息內容、媒體檔案及匯出檔案需儲存於 加密磁碟或磁碟區中。簽名僅能依據可信密鑰驗證資料的完整性; 無法驗證訊息源自 Telegram,亦無法防止由 控制資料收集器及其密鑰的操作者進行偽造。
請參閱 OPERATIONS.md 了解備份/還原操作,DEPLOYMENT.md
了解託管設定,以及 deploy/ 中的服務範例。已安裝的
控制面板中亦包含一份離線設定指南,網址為 /guide.html。
實際的驗證結果與現存的限制 詳載於 VERIFICATION.md 及 READINESS.md 文件中。