Files
LowderPlay_cheburcheck/reporter/README.md
T
2025-12-16 23:58:02 +05:00

105 lines
7.2 KiB
Markdown

# Cheburcheck Reporter
[![Build Rust Application](https://github.com/LowderPlay/cheburcheck/actions/workflows/build.yml/badge.svg)](https://github.com/LowderPlay/cheburcheck/actions/workflows/build.yml)
Инструмент для автоматического сканирования и анализа блокировок.
Позволяет сканировать большое количество доменов за короткий срок за счет параллелизации запросов.
## Сборка
Чекер можно использовать на Debian-based дистрибутивах, собрав его через cargo-deb:
```shell
cargo deb
```
На прочих дистрибутивах и ОС можно запустить через:
```shell
cargo run
```
## Использование
> [!IMPORTANT]
> Если вы используете большое количество одновременных запросов, убедитесь, что ограничение
> `open files` в вашей системе достаточное. Посмотреть и изменить значение можно через `ulimit -n`.
В программе заранее установлены настройки по-умолчанию для сканирования топ-100,000 доменов из [Tranco list от 26 ноября 2025](https://tranco-list.eu/list/2NPQ9).
Для этого достаточно запустить его:
1. Сохранить результаты в CSV
```shell
cheburchecker output.csv
```
2. Отправить результаты в **Cheburcheck Agency**
```shell
cheburchecker -k <API-ключ>
```
> Для того чтобы получить API-ключ,
> обратитесь по адресу [agency@cheburcheck.ru](mailto:agency@cheburcheck.ru).
>
> В письме укажите ваш интернет-провайдер и регион.
## Конфигурация
| Параметр | Описание | Значение по-умолчанию |
|-------------------------------------|-----------------------------------------------------------------------------------------|--------------------------------------|
| `-f, --fake <FAKE>` | Использовать один домен для всех запросов | |
| `-c, --count <COUNT>` | Количество доменов, которые будут проверены (берутся с начала списка) | 100,000 |
| `-t, --timeout-secs <TIMEOUT_SECS>` | Максимальное время ожидания ответа от сервера | 5 секунд |
| `-p, --probes <PROBE_COUNT>` | Максимальное количество одновременных запросов | 1000 |
| `-v, --verbosity <VERBOSITY>` | Отображение результатов сканирования в консоли [silent, error, block, all] | silent |
| `-r, --retry-count <RETRY_COUNT>` | Количество попыток запросов на один домен | 2 |
| `-H, --http` | Использовать plain-HTTP (без TLS) | |
| `-x, --tx` | Отправлять мусорные данные 64кб на сервер | |
| `-i, --ip <IP>` | IP-адрес сервера, на который будут идти запросы (должен отвечать >64kb на любые домены) | 5.78.7.195 |
| `-P, --path <PATH>` | Путь к файлу на сервере | 100MB.bin |
| `-a, --endpoint <AGENCY_ENDPOINT>` | Адрес сервера, на который будут загружены результаты сканирования | https://cheburcheck.ru/agency/report |
| `-k, --key <KEY>` | API-ключ | |
## Автоматическое сканирование по расписанию (Systemd)
Для автоматического и регулярного запуска чекера на Debian-based системах, вы можете использовать systemd таймеры. Этот проект поставляется с преднастроенными systemd юнитами, которые автоматически устанавливаются с помощью `cargo-deb`.
### Установка
1. **Установка пакета:**
При установке автоматически будут размещены systemd юниты и включены таймеры.
```shell
sudo apt install cheburchecker_*.deb
```
2. **Настройка API-ключа (обязательно):**
Чекер отправляет результаты в Cheburcheck Agency. Для этого требуется API-ключ. Его необходимо сохранить в файле `/etc/default/cheburchecker`.
```bash
echo "AGENCY_KEY=ВАШ_API_КЛЮЧ" | sudo tee /etc/default/cheburchecker
```
Замените `ВАШ_API_КЛЮЧ` на ваш реальный ключ.
### Расписание задач
Предусмотрено два автоматических расписания:
* **`cheburchecker.100k.timer`**: Запускает проверку **100,000 доменов** каждые 6 часов (в 06:00, 12:00, 18:00 UTC).
* **`cheburchecker.1kk.timer`**: Запускает проверку **1,000,000 доменов** ежедневно (в 00:00 UTC).
Таймеры настроены таким образом, чтобы не конфликтовать друг с другом.
### Проверка статуса и логов
Вы можете проверить статус таймеров и служб, а также просмотреть их логи:
* **Статус таймеров:**
```bash
systemctl status cheburchecker.100k.timer
systemctl status cheburchecker.1kk.timer
```
* **Логи служб:**
```bash
journalctl -u cheburchecker@100000.service
journalctl -u cheburchecker@1000000.service
```
Отчеты сохраняются в `/var/log/cheburchecker/` с именем файла, включающим количество доменов (например, `report-100000.csv`).