อ้างอิง / การตั้งค่า
เริ่มต้นอย่างรวดเร็ว
ทุกวิธีในการติดตั้งและเปิดใช้งาน TgWitness: แพ็กเกจ Windows, Python, Docker และเดโมจำลอง พร้อมขั้นตอนตรวจสอบเบื้องต้น
ภาษาอังกฤษ · Русский · ภาษายูเครน · Español · Português (Brasil) · ภาษาตุรกี · العربية · فارسی · اردو · हिन्दी · ภาษาอินโดนีเซีย · Tiếng Việt · ภาษาจีนตัวย่อ
TgWitness เป็นแอปพลิเคชันแบบสแตนด์อโลน สำหรับการติดตามกลุ่มและช่อง Telegram ที่บัญชีของคุณสามารถเข้าถึงได้ มันทำงานแบบท้องถิ่นด้วยไดเรกทอรีข้อมูลของตัวเอง
มาครั้งแรก? ลองดูเดโมก่อนที่จะเชื่อมต่อบัญชี เลือกคู่มือสำหรับพร็อกซี, Witness, การส่งออกข้อมูล หรือการตั้งค่าเซิร์ฟเวอร์
ติดตั้งและเริ่มใช้งาน#
รวบรวมผ่าน GitHub Actions (รุ่นทดลอง)
เลือกวิธีหนึ่ง การดาวน์โหลดแบบพกพาจะพร้อมใช้งานหลังจากที่มีการเผยแพร่เวอร์ชันที่สร้างขึ้นแล้ว:
| ผู้ดูแล | ไม่ต้องติดตั้งอะไรทั้งสิ้น | จากแหล่งที่มา: Python 3.11+ | Docker: Engine/Desktop พร้อม Compose 2.20+ |
|---|---|---|---|
| Windows | คัดลอก TgWitness-<version>-windows-amd64-portable.zip จาก GitHub Releases แล้วคลิกสองครั้งที่ 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 และไฟล์ซอร์สโค้ดของรุ่นดังกล่าวออกมาเมื่อก่อนจะมีฟีเจอร์เหล่านี้ ดูขอบเขตของแต่ละเวอร์ชันได้ในบันทึกการเปลี่ยนแปลง
Start.cmd จะเสนอให้ติดตั้ง Python 3.12 สำหรับผู้ใช้ Windows ของคุณหากไม่พบ Python ที่เหมาะสม (ผ่าน winget หรือตัวติดตั้งที่ลงนามรับรองจาก python.org) ส่วน start.sh จะแสดงคำสั่งติดตั้งที่ตรงกับดิสทริบิวชัน Linux หรือ macOS ของคุณหากยังไม่มี Python การเปิดใช้งานจากซอร์สโค้ดครั้งแรกจะสร้าง .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 helper หรือคำสั่ง Docker ที่สอง หรืออ่านไฟล์ data/live/panel-token.txt สำหรับการติดตั้งแบบพกพาหรือจากซอร์สโค้ด ต่อที่ Connect Telegram ด้านล่าง การติดตั้งแบบเนทีฟและ Docker ใช้พื้นที่จัดเก็บข้อมูลแยกกัน; การเริ่มต้น Docker จะไม่นำเข้าบันทึกแบบเนทีฟที่มีอยู่
สำหรับเซิร์ฟเวอร์ การติดตั้งรวมถึง HTTPS อัตโนมัติ การรีสตาร์ท การเผยแพร่ภาพ การอัปเดต และการสำรองข้อมูล
สำรวจอินเทอร์เฟซ#
- เรียกใช้ TgWitness-Demo.cmd
ในแพ็กเกจแบบพกพา, scripts\Demo.cmd
ในโฟลเดอร์แหล่งที่มาของ Windows
หรือ
sh start.sh --demoบน Linux/macOS การเรียกใช้จากแหล่งที่มาจะสร้าง.venvก่อนและติดตั้งส่วนที่จำเป็น - เปิด http://127.0.0.1:8787.
- การสาธิตในเครื่องจะเปิดสมุดบันทึกตัวอย่างโดยอัตโนมัติ ไม่จำเป็นต้องคัดลอกโทเค็นเพื่อเข้าถึงโดยตรงในเครื่อง
ข้อความตัวอย่างเป็นข้อความสมมติ โหมดสาธิตไม่สามารถเชื่อมต่อกับบัญชี Telegram ที่จริงได้
เชื่อมต่อ Telegram#
[!WARNING] อย่าใช้ข้อมูลใดที่คุณไม่สามารถรับความสูญเสียได้ เราขอแนะนำอย่างแรงว่าอย่าเชื่อมต่อ บัญชีส่วนตัวหรือบัญชีที่มีค่า และอย่าสร้าง API ID / hash บนบัญชีที่คุณให้ความสำคัญ Telegram อาจระงับบัญชีได้โดยไม่คาดคิดและมักเป็นการระงับถาวร ไม่ว่าใช้แอปพลิเคชันใด การทดสอบที่ราบรื่นขึ้นอยู่กับ Telegram ไม่ใช่ TgWitness และไม่รับประกันอะไรสำหรับอนาคต
- หากเดโมในระบบกำลังทำงานอยู่ ให้หยุดมันลงและเรียกใช้ Start.cmd หรือ
sh start.shหากไม่เช่นนั้น ให้ปล่อยให้การติดตั้งแบบสดที่เปิดไว้ข้างต้นทำงานต่อไป - ใช้โทเค็นของแผงควบคุมที่สอดคล้องกับวิธีการติดตั้งของคุณเพื่อเปิดแผงควบคุม
- หากต้องการใช้พร็อกซี ให้บันทึกไว้ที่ บัญชี → การตั้งค่า → การตั้งค่าการเชื่อมต่อ → เปลี่ยนเส้นทางเชื่อมต่อ
- ในส่วน Account (บัญชี), ป้อนหมายเลขโทรศัพท์ของคุณแล้วกด Continue (ต่อ), เลือก
QR code → Show QR code (แสดงรหัส QR), หรือเลือกไฟล์แล้วกด Connect account (เชื่อมต่อบัญชี).
API ID + Hash เป็นตัวเลือก: พื้นที่ทำงานจะใช้คู่ที่บันทึกไว้หรือนำเข้า,
หรือคู่ที่ใช้งานได้จากกลุ่มที่สร้างไว้ล่วงหน้า. เพื่อใช้แอปของคุณเอง, ให้วางคู่
API ID:API Hashลงใน API ID. สำหรับกุญแจการอนุญาตแบบครบถ้วน ให้เลือก "กุญแจการอนุญาต" (Auth key) วางตัวอักษรฐานสิบหกทั้งหมด 512 ตัว และเลือก DC ID ที่ให้มา User ID เป็นตัวเลือกและจะถูกทำเครื่องหมายถูกหากมีการกรอก - ดำเนินการตามวิธีการลงชื่อเข้าใช้ที่คุณเลือก: โทรศัพท์/รหัส/2FA, การยืนยันจาก แอป Telegram ที่ลงชื่อเข้าใช้แล้วสำหรับ QR, หรือการนำเข้าเซสชันที่ได้รับอนุญาตและรองรับ
- ตรวจสอบ ID บัญชีที่แสดงอยู่ แหล่งข้อมูลเปิด: การสนทนาของคุณจะโหลดอัตโนมัติ; เพิ่มกลุ่มของคุณ
- ในส่วน “เลือกการเปลี่ยนแปลงที่จะเก็บรักษา” ให้เลือกหมวดหมู่เหตุการณ์หรือตัวเลือกที่ตั้งไว้ล่วงหน้า “ข้อความ การแก้ไข และการลบ” แล้วบันทึกการตั้งค่าการติดตาม
- เลือกการตั้งค่าไฟล์แนบแต่ละรายการ แล้วกด "เริ่มการสังเกตการณ์"
ข้อมูลรับรอง API ใช้เพื่อระบุตัวตนของแอปพลิเคชันของคุณ; ข้อมูลเหล่านี้ไม่ ให้สิทธิ์การเข้าถึงบัญชีด้วยตัวมันเอง กลุ่มส่วนตัวไม่จำเป็นต้องมีชื่อผู้ใช้สาธารณะ แต่บัญชีของคุณต้องมีสิทธิ์การเข้าถึง
สำหรับบัญชีที่มีอยู่แล้ว โปรดดูรูปแบบบัญชีและเซสชัน: พาเนลรองรับ Telethon StringSession, Telethon/Pyrogram SQLite, TData ZIP แบบบัญชีเดียว และไฟล์ JSON ของบัญชีที่รองรับ ให้เลือกไฟล์เซสชันและไฟล์ JSON คู่กัน แล้วกด เชื่อมต่อบัญชี นอกจากนี้ยังสามารถเข้าสู่ระบบด้วย QR ได้โดยใช้การตั้งค่า API เสริมแบบเดียวกัน ทั้งนี้ยังไม่รองรับ TDLib, เซสชันของบอท และรายการบัญชีในรูปแบบ CSV/JSON
สำหรับหลายบัญชี ให้ใช้เมนู บัญชี → นำเข้าบัญชี แล้วเลือกไฟล์เซสชันที่รองรับ ไฟล์ JSON คู่กันจะถูกจับคู่ตามชื่อไฟล์หลัก และแต่ละบัญชีที่นำเข้าจะได้รับเวิร์กสเปซแยกของตัวเอง ดูการนำเข้าแบบกลุ่มและกลุ่มบัญชี
เพื่อเพิ่มบัญชีอีกบัญชี ให้กด + ข้างตัวเลือกรายชื่อบัญชี หรือเปิด บัญชี → การตั้งค่า → การตั้งค่าการเชื่อมต่อ → พื้นที่ทำงาน หรือใช้ Accounts พื้นที่ทำงานมีเซสชัน บันทึก กุญแจ แหล่งข้อมูล และคิวที่แยกกัน การเปลี่ยนมุมมองจะไม่ทำให้ตัวเก็บข้อมูลอื่นหยุดทำงาน บัญชี Telegram เดียวกันไม่สามารถกำหนดให้กับพื้นที่ทำงานสองแห่งในระบบติดตั้งนี้ได้ ไม่มีจำนวนพื้นที่ทำงานที่กำหนดไว้; พื้นที่ทำงานทั้งหมดใช้กระบวนการเดียวกัน ดังนั้นความจุจึงขึ้นอยู่กับเครื่อง
โทเค็นแผงสด (live panel token) ปกป้องการเข้าถึงสิทธิ์ Telegram ของคุณและ
ข้อมูลที่บันทึกไว้; โทเค็นนี้แยกต่างหากจากข้อมูลรับรอง API ของ Telegram มีเพียงการสาธิตท้องถิ่นที่
ถูกเริ่มต้นอย่างชัดเจนและเข้าถึงโดยตรงเท่านั้นที่จะได้รับการเข้าถึงอัตโนมัติ ส่วนการสาธิตจากระยะไกลหรือผ่านพร็อกซีจะยังคงใช้
data/demo/panel-token.txt
ตรวจสอบและส่งออก#
- บันทึก: ค้นหาและกรองข้อมูลการสังเกตตามแหล่งที่มาและประเภทเหตุการณ์
- เลือกเหตุการณ์เพื่อตรวจสอบบันทึกต้นฉบับ แหล่งที่มา และเวอร์ชันที่เก็บไว้
- รายละเอียดการแก้ไขแสดงเนื้อหาที่มีอยู่ก่อนและหลังการแก้ไข ส่วนรายละเอียดการลบแสดง เนื้อหาที่ถูกบันทึกไว้ครั้งสุดท้าย (หากมี); ส่วนผู้กระทำที่ไม่ทราบตัวตนจะยังคงไม่ทราบตัวตน
- รูปแบบการส่งออก: ZIP ที่มีลายเซ็น, JSONL, CSV และ HTML สำหรับใช้งานแบบออฟไลน์
- การส่งออกบทสนทนาแบบเต็ม (Sources → Full chat export): ดาวน์โหลดประวัติการสนทนาทั้งหมดที่มองเห็นได้
ของบทสนทนาหนึ่งบทในรูปแบบแพ็กเกจที่ลงนามด้วย
chat.json(สไตล์ Telegram-export) และchat.htmlที่อ่านได้ บทสนทนาส่วนตัวจะทำงานได้เมื่อบัญชีนั้นเป็นสมาชิก นี่เป็น ภาพถ่ายปัจจุบัน ไม่ใช่การสร้างใหม่ของข้อความที่ถูกลบหรือแก้ไขไปแล้ว ตรวจสอบ สำเนาด้วยpython verify.py chat-export.zip --fingerprint TRUSTED_SHA256. - จุดตรวจสอบ: รักษาขอบเขตของบันทึกที่มีลายเซ็นให้อยู่นอกตัวเก็บข้อมูล
- ดาวน์โหลดใบยืนยันการดำเนินการที่ลงนาม: เพื่อเก็บรักษาบันทึกโปรแกรม/เวอร์ชันของผู้เก็บข้อมูล
- เตรียมคำขอเวลาประทับ: เตรียมคำขอแบบออฟไลน์ไปยังหน่วยงานออกเวลาประทับ; ทำตาม TIMESTAMP.md เพื่อรับและตรวจสอบคำตอบ
- ตรวจสอบบันทึก: ตรวจสอบลายเซ็นของเหตุการณ์และลิงก์ในห่วงโซ่ ZIP export ยังตรวจสอบสื่อด้วย
เบราว์เซอร์ที่รองรับสามารถบันทึกไฟล์ส่งออกขนาดใหญ่ได้โดยตรงไปยังไฟล์ที่เลือกไว้ ส่วนเบราว์เซอร์อื่น ๆ จะบัฟเฟอร์ได้สูงสุด 128 MiB ในขณะที่เซิร์ฟเวอร์กำลังทำงาน CLI แบบสตรีมมิ่งจะรองรับ การดาวน์โหลดไฟล์ขนาดใหญ่ได้โดยไม่ต้องบัฟเฟอร์ข้อมูลตอบกลับทั้งหมด:
python -m tgwitness.download --token-file data/live/panel-token.txt --out evidence.zip
สำหรับพื้นที่ทำงานอื่น ๆ ให้เพิ่ม --profile ID โดยใช้ Exports → Workspace ID
สำหรับเซิร์ฟเวอร์ระยะไกล ให้เพิ่ม --url https://your-server ขีดจำกัดการถ่ายโอนข้อมูลตามค่าเริ่มต้นคือ
5 GiB; --max-mib สามารถปรับเปลี่ยนได้ เนื้อหา ZIP ที่ลงนามมีขีดจำกัดการตรวจสอบแบบไม่บีบอัด
แยกต่างหาก 4 GiB ตามค่าเริ่มต้น (Parameters สามารถเพิ่มขีดจำกัดนี้ได้; ตรวจสอบไฟล์เก็บถาวรดังกล่าวด้วย
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... ต้อง
ใช้ .venv\Scripts\python.exe บน Windows หรือ .venv/bin/python บน Linux/macOS,
เว้นแต่สภาพแวดล้อมนั้นได้ถูกเปิดใช้งานแล้ว
เซสชัน การป้องกัน และการดำเนินงาน#
ไฟล์ Telethon SQLite .session ที่ปิดและมีความสม่ำเสมอสามารถแปลงได้บนเครื่องท้องถิ่นด้วย
python -m tgwitness.sessions account.session --out account.tgwitness-session แล้ว
โหลดเข้าสู่ Account ได้ นอกจากนี้ยังมีตัวเลือกการนำเข้าไฟล์โดยตรงและการเข้าสู่ระบบด้วย QR Code ด้วย ดู
CONNECTION-SECURITY.md เพื่อทราบรูปแบบการเข้าสู่ระบบ SOCKS5,
HTTP CONNECT, MTProxy และกุญแจหลักภายนอก
การหยุดการสังเกตการณ์จะหยุดการเก็บข้อมูล การล็อกจะปิดการเข้าถึงผ่านเบราว์เซอร์เท่านั้น การปิดแท็บจะไม่หยุดกระบวนการเก็บข้อมูล การหยุดกระบวนการจะขัดจังหวะ การเก็บข้อมูล; ภาพถ่ายประวัติไม่สามารถสร้างใหม่การแก้ไขหรือการลบทั้งหมดที่พลาดได้ ดูวิธีการทำงานของการเก็บข้อมูลสำหรับนโยบายเหตุการณ์, แถวรอไฟล์แนบ, การแยกบัญชี และพฤติกรรมเมื่อเริ่มต้นใหม่
เซสชันและข้อมูลลับได้รับการเข้ารหัส เนื้อหาข้อความ สื่อ และข้อมูลที่ส่งออกจำเป็นต้องใช้ ดิสก์หรือโวลุ่มที่เข้ารหัส ลายเซ็นช่วยยืนยันความสมบูรณ์ของข้อมูลเมื่อเทียบกับกุญแจที่เชื่อถือได้; แต่ไม่ยืนยันแหล่งที่มาของ Telegram หรือป้องกันการปลอมแปลงโดยผู้ดำเนินการที่ ควบคุมเครื่องมือเก็บข้อมูลและกุญแจของมัน
อ่าน OPERATIONS.md สำหรับการสำรอง/กู้คืนข้อมูล, DEPLOYMENT.md
สำหรับการโฮสต์, และ deploy/ สำหรับตัวอย่างการใช้งานบริการ แผงควบคุมที่ติดตั้ง
ยังรวมถึงคู่มือการตั้งค่าแบบออฟไลน์ที่ /guide.html
การตรวจสอบจริงและข้อจำกัดที่ยังเหลืออยู่ ถูกบันทึกไว้ในไฟล์ VERIFICATION.md และ READINESS.md.