Skip to content

Etersoft/isp-complaint

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

isp-complaint

Утилита для подготовки текста жалобы интернет-провайдеру при проблемах с маршрутизацией или скоростью загрузки.

Скрипт замеряет скорости до публичных зеркал ALT Linux через epm repo mirrors speedtest, выявляет «медленные» направления, собирает по ним ping и mtr, после чего формирует готовый текст жалобы (на русском языке) с цифрами и приложениями для отправки в техподдержку.

Когда полезно

  • Часть зеркал отдают сотни KB/s, другие — десятки MB/s с одного и того же хоста — это типичный признак проблем на пиринге или маршрутизации у провайдера.
  • Нужно подкрепить обращение в поддержку конкретными измерениями, а не «у меня медленно».

Зависимости

  • ALT Linux (используется epm)
  • mtr, ping (iputils), curl, whois

Скрипт сам пытается установить недостающие пакеты через epm assure в начале работы — отдельных действий не требуется.

Использование

./isp-complaint.sh > complaint.txt

В stdout — готовый текст жалобы, в stderr — прогресс выполнения. Полный прогон занимает ~5–7 минут (epm speedtest ~2–3 мин + по mtr на каждое зеркало).

Параметры

Передаются через переменные окружения:

Переменная По умолчанию Описание
SLOW_THRESHOLD 1.0 Скорость в MB/s, ниже которой зеркало считается «медленным» (в жалобу попадают только такие)
FAST_THRESHOLD 5.0 Скорость в MB/s, выше которой зеркало считается эталонным (для контраста в отчёте)
PING_COUNT 10 Количество ping-пакетов на каждую цель
MTR_COUNT 30 Количество циклов mtr на каждую цель

Пример более подробного прогона:

SLOW_THRESHOLD=2.0 PING_COUNT=20 MTR_COUNT=60 ./isp-complaint.sh > complaint.txt

mtr и привилегии

mtr требует CAP_NET_RAW. Скрипт проверяет, работает ли mtr от текущего пользователя; если нет — пробует sudo -n mtr (без пароля). Если и так не получается — выводит понятную ошибку с подсказками:

  • запустить от root;
  • control mtr public — выдать setuid-флаг бинарю на ALT Linux;
  • setcap cap_net_raw+ep $(command -v mtr-packet);
  • настроить NOPASSWD sudo для mtr.

Что входит в отчёт

  1. Заголовок: дата, hostname, внешний IP, сведения по whois.
  2. Текст обращения к провайдеру с описанием проблемы.
  3. Сводная таблица: цель / IP / скорость загрузки / ping avg / loss% / статус.
  4. Приложение 1 — полный вывод epm repo mirrors speedtest.
  5. Приложение 2 — полный вывод ping по всем целям.
  6. Приложение 3 — полный вывод mtr -wzbc N -r по всем целям.

Статусы целей в сводке:

  • OK — связность есть, потери отсутствуют.
  • LOSS — есть потери пакетов.
  • UNREACH — цель недоступна по ping.
  • DOWNLOAD_FAILepm сообщил error для этого зеркала.

Пример

TARGET                     IP                     MB/s     AVG_MS   LOSS_%  STATUS
mirror.eterfund.org        135.181.95.108        error      8.811        0  DOWNLOAD_FAIL
mirror.yandex.ru           213.180.204.183       18.43     13.626        0  OK
download.basealt.ru        176.12.98.77          34.48     12.319        0  OK
ftp.altlinux.org           62.152.55.238         41.84      9.925        0  OK

Лицензия

MIT — см. LICENSE.

About

Генератор текста жалобы интернет-провайдеру по результатам epm speedtest, ping и mtr

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages