Mullvad Server Ping Tester — высокопроизводительный инструмент для тестирования пинга серверов Mullvad VPN с расширенной аналитикой и визуализацией данных. Помогает найти оптимальные серверы для вашего подключения.
- ✨ Особенности
- 🛠️ Технологии
- 📦 Установка
- 🚀 Использование
- 📊 Примеры вывода
- 🧪 Тестирование
- 🔧 Разработка
- 📁 Структура проекта
- 🤝 Вклад в проект
- 📝 Лицензия
- Высокая производительность: Многопоточное тестирование с оптимизированным использованием ресурсов
- Расширенная аналитика: Детальная статистика по странам, городам и отдельным серверам
- Визуализация данных: Интерактивные отчеты с графиками и картами
- Гибкая фильтрация: Фильтрация серверов по стране, городу и другим параметрам
- Исторический анализ: Отслеживание изменений производительности серверов со временем
- Веб-интерфейс: Интерактивный веб-интерфейс для удобного просмотра результатов
- Множество форматов: Экспорт результатов в JSON, HTML и CSV
- Современная архитектура: Использование TypeScript, DI, SOLID и других лучших практик
- TypeScript: Строгая типизация и современный синтаксис
- Node.js: Высокопроизводительная среда выполнения
- Inversify: Контейнер внедрения зависимостей
- Zod: Валидация конфигурации и данных
- Commander: Интерфейс командной строки
- Express: Веб-сервер для интерактивного режима
- Socket.io: Обновление данных в реальном времени
- Jest: Модульное и интеграционное тестирование
- ESLint & Prettier: Статический анализ и форматирование кода
npm install -g mullvad-servers-ping-results
# Клонирование репозитория
git clone https://github.com/slpkbt/mullvad-servers-ping-results.git
cd mullvad-servers-ping-results
# Установка зависимостей
npm install
# Сборка проекта
npm run build
# Базовое использование
mullvad-ping-tester
# Фильтрация по стране
mullvad-ping-tester --country US,GB,DE
# Фильтрация по городу
mullvad-ping-tester --city "New York,London,Berlin"
# Настройка параметров пинга
mullvad-ping-tester --timeout 2000 --retries 3 --parallel 30
# Выбор форматов вывода
mullvad-ping-tester --format json,html,csv
# Запуск веб-сервера
mullvad-ping-tester --web
# Подробная справка
mullvad-ping-tester --help
import { PingTester } from 'mullvad-servers-ping-results';
async function main() {
const tester = new PingTester({
countryFilter: 'US,GB',
cityFilter: 'New York,London',
pingTimeout: 2000,
pingRetries: 3,
concurrentPings: 30,
});
const results = await tester.run();
console.log(`Протестировано ${results.length} серверов`);
}
main().catch(console.error);
Вы также можете настроить приложение с помощью переменных окружения. Создайте файл .env
в корне проекта:
# API Settings
API_URL=https://api.mullvad.net/www/relays/wireguard/
# Ping Settings
PING_TIMEOUT=1500
PING_RETRIES=1
# Performance Settings
CONCURRENT_PINGS=30
MAX_THREADS=0
# Filter Settings
COUNTRY_FILTER=US,GB,DE
CITY_FILTER=
# Web Server Settings
WEB_SERVER_ENABLED=false
WEB_SERVER_PORT=3000
WEB_SERVER_HOST=localhost
╔═══════════════════════════════════════════════════════════════════════════╗
║ Mullvad Server Ping Results ║
╟───────────────────────────────────────────────────────────────────────────╢
║ Total Servers: 505 | Reachable: 487 | Unreachable: 18 ║
║ Average Ping: 78ms | Min: 12ms | Max: 350ms ║
╚═══════════════════════════════════════════════════════════════════════════╝
Top 10 Servers by Ping:
╔════════════════╤═══════════╤═══════════╤═══════════╤═══════════╤═══════════╗
║ Hostname │ Country │ City │ IP │ Ping │ Status ║
╟────────────────┼───────────┼───────────┼───────────┼───────────┼───────────╢
║ se-sto-wg-001 │ Sweden │ Stockholm │ 1.2.3.4 │ 12ms │ Good ║
║ de-fra-wg-003 │ Germany │ Frankfurt │ 2.3.4.5 │ 15ms │ Good ║
║ nl-ams-wg-002 │ Netherlands│ Amsterdam│ 3.4.5.6 │ 18ms │ Good ║
╚════════════════╧═══════════╧═══════════╧═══════════╧═══════════╧═══════════╝
# Запуск всех тестов
npm test
# Запуск тестов с покрытием
npm run test:coverage
# Запуск тестов в режиме наблюдения
npm run test:watch
# Запуск в режиме разработки
npm run dev
# Линтинг
npm run lint
# Форматирование
npm run format
# Генерация документации
npm run docs
mullvad-servers-ping-results/
├── src/
│ ├── config/ # Конфигурация приложения
│ ├── interfaces/ # TypeScript интерфейсы
│ ├── services/ # Сервисы приложения
│ │ ├── __tests__/ # Тесты для сервисов
│ ├── utils/ # Утилиты и вспомогательные функции
│ └── index.ts # Точка входа приложения
├── tests/ # Тесты
├── .eslintrc.js # Конфигурация ESLint
├── .prettierrc # Конфигурация Prettier
├── jest.config.js # Конфигурация Jest
├── tsconfig.json # Конфигурация TypeScript
├── package.json # Зависимости и скрипты
└── README.md # Документация проекта
Мы приветствуем вклад в развитие проекта! Если вы хотите внести свой вклад, пожалуйста, ознакомьтесь с руководством по внесению вклада.
- Форкните репозиторий
- Создайте ветку для вашей функции (
git checkout -b feature/amazing-feature
) - Зафиксируйте ваши изменения (
git commit -m 'feat: add amazing feature'
) - Отправьте изменения в ваш форк (
git push origin feature/amazing-feature
) - Откройте Pull Request
Этот проект распространяется под лицензией MIT. См. файл LICENSE для получения дополнительной информации.
Сделано с ❤️ для сообщества Mullvad VPN