Этот репозиторий содержит:
- Списки доменов и IP-адресов используемых голосовыми серверами Discord и в целом (gui, api и т.д.)
- Скрипт для парсинга IP с готового списка сабдоменов голосовых каналов и создания IPset списка с последующей загрузкой получившихся IP списков
- Скрипты для генерации списка сабдоменов голосовых серверов в формате region[1-15000].discord.gg и их резолв с последующей записью в фолдер regions
- Скрипт для преобразования списков IP-адресов в JSON формат для удобного импорта в Amnezia
Репозиторий будет полезен тем, кто хочет настроить "корректную" маршрутизацию для обеспечения "стабильной" работы Discord.
discord-domains-list
- список доменных имён Discordamnezia-discord-domains.json
- тот же список, но уже подготовленный к импорту в Amneziadiscord-voice-domains-list
- общий список из доменов голосовых каналов Discord для регионов: Россия, Нидерланды, Швеция, Италия, Германия, Испания, Польша, Румынияdiscord-voice-ip-list
- список из IP голосовых каналов Discord для вышеназванных регионовdiscord-voice-ipset-list
- тот же список, но в формате IPsetamnezia-voice-ip.json
- тот же список, но уже подготовленный к импорту в Amneziaregions
- фолдер со списками IP голосовых каналов разбитых по регионам (сгенерированный силамиvoice-domains-generator
)custom-solutions
- фолдер с решениями от заинтересованных и неравнодушныхvoice-domains-generator.sh
- генератор и резолвер доменов голосовых серверов Discordvoice-domains-generator-fast.sh
[САМОЕ ОПТИМАЛЬНОЕ РЕШЕНИЕ] - тоже самое, но в разы шустрее (зависит от CPU)voice-ip-parser.sh
- IP резолвер по спискуdiscord-voice-domains-list
с функцией создания и добавления IP в IPset список unblockjson-voice-ip-converter.sh
- скрипт преобразовывает в JSON списки IP голосовых серверов Discord для последующего ручного импорта в Amnezia
- Создайте новый список
unblock
:
$ ipset create unblock hash:net
- Склонируйте этот репозиторий:
$ git clone https://github.com/GhostRooter0953/discord-voice-ips.git
- Перейдите в директорию с клонированным репозиторием:
$ cd discord-voice-ips
- Добавьте адреса из файла
discord-voice-ipset-list
в ваш ipset:
$ ipset restore < discord-voice-ipset-list
- Добавьте соответствующее правило в ваш фаерволл, чтобы настроить маршрутизацию
-A PREROUTING -m set --match-set dst -j DNAT --to-destination <IP-адрес_интерфейса_туннеля>
-A OUTPUT -m set --match-set dst -j DNAT --to-destination <IP-адрес_интерфейса_туннеля>
p.s. Этот вариант наиболее удобен в сценарии с KVAS, т.к. при его установке будут добавлены аналогичные цепочки и списки
Предназначен для парсинга IP-адресов голосовых серверов Discord из файла со списком доменов и их дальнейшего добавления в IPset.
Скрипт может:
- Автоматически почистить предыдущие списки (как IPset так и файлы)
- Создать список unblock если таковой отсутствует
- Предоставить пользователю возможность подтверждать действия (касающиеся IPset) вручную
- Просто порезолвить IP адреса из
discord-voice-domains-list
и записать их вdiscord-voice-ip-list
-
Убедитесь, что у вас установлены необходимые утилиты:
- dig (часть пакета dnsutils)
- ipset
-
Склонируйте репозиторий:
$ git clone https://github.com/GhostRooter0953/discord-voice-ips.git
- Перейдите в директорию репо:
$ cd discord-voice-ips
- Запустите скрипт:
$ ./voice-ip-parser.sh
-
Очистка старых списков: Скрипт очищает файлы
discord-voice-ip-list
иdiscord-voice-ipset-list
. -
Сброс кэша DNS: Производится сброс кэша DNS через отправку сигнала к
dnsmasq
. -
Парсинг доменов: Скрипт читает домены из файла
discord-voice-domains-list
, резолвит их в IP-адреса и записывает вdiscord-voice-ip-list
иdiscord-voice-ipset-list
. -
Создание списка unblock:
- Если список unblock не существует, будет запрошено подтверждение на его создании.
- В автоматическом режиме список создается без подтверждения.
-
Очистка списка unblock:
- Если список существует, будет запрошено подтверждение на его очистку.
- В автоматическом режиме список очищается без подтверждения.
-
Загрузка IP адресов в IPset:
- После завершения парсинга, пользователю предлагается загрузить адреса из файла
discord-voice-ipset-list
в IPset.
- После завершения парсинга, пользователю предлагается загрузить адреса из файла
-
Вывод результатов: После выполнения всех действий выводится количество загруженных IP адресов.
$ ./voice-ip-parser.sh
Очистка IP листов
Начинаем парсить IP голосовых серверов Discord
Парсим... Прогресс: 100%
Парсинг завершён
Чистим список 'unblock'? (Y/N): Y
Список 'unblock' очищен
Загружаем адреса в IPset? (Y/N): Y
Загружено 1430 IP адреса(ов) в список 'unblock'
auto
: Автоматический режим. В этом режиме все действия выполняются без запроса подтверждения у пользователя, а именно:
- Создаётся IPset список unblock, если его нет
- Очищается IPset список unblock
- Загружаются IP в список unblock из
discord-voice-ipset-list
Пример запуска в автоматическом режиме:
$ ./voice-ip-parser.sh auto
Очистка IP листов
Начинаем парсить IP голосовых серверов Discord
Парсим... Прогресс: 100%
Парсинг завершён
Список 'unblock' очищен
Загружено 1429 IP адреса(ов) в список 'unblock'
noipset
: Автоматический режим без IPset. Нужен для простого резолва IP с последующей записью вывода в файлыdiscord-voice-ip-list
иdiscord-voice-ipset-list
.
Пример запуска в режиме noipset
:
$ ./voice-ip-parser.sh noipset
Очистка IP листов
Начинаем парсить IP голосовых серверов Discord
Парсим... Прогресс: 100%
Парсинг завершён
Пропускаем танцы с IPset... Список с IP можно найти в 'discord-voice-ip-list'
- Убедитесь, что вы запускаете скрипт с правами, достаточными для выполнения команд ipset и управления сетевыми настройками.
- Убедитесь, что у вас установлены необходимые утилиты:
- dig (часть пакета dnsutils)
- ipset
- Для получения информации об использовании утилиты ipset можно использовать следующую команду:
$ man ipset
Этот скрипт предназначен для быстрой генерации и резолвинга доменных имен голосовых каналов Discord по заданным регионам.
Задействуется parallel
, что позволяет выполняться в несколько параллельных процессов (по умолчанию 60) значительно ускоряя генерацию и резолвинг.
- Перед запуском убедитесь, что у вас установлены следующие компоненты:
- bash
- dig (часть пакета dnsutils)
- parallel
- Склонируйте репозиторий:
$ git clone https://github.com/GhostRooter0953/discord-voice-ips.git
- Перейдите в директорию репо:
$ cd discord-voice-ips
- Запустите скрипт с опциональным аргументом в виде валидного
региона
либо без:
$ ./voice-domains-generator-fast dubai
Если аргументы не переданы, зарезолвятся домены регионов по 'умолчанию':
- russia
- bucharest
- finland
- frankfurt
- madrid
- milan
- rotterdam
- stockholm
- warsaw
-
default_regions
: Массив регионов, с которых будут генерироваться домены. По умолчанию это массив из девяти регионов. Вы можете переопределить его при запуске скрипта. -
total_domains
: Общее количество доменных имен для генерации (по умолчанию 15000). Вы можете изменить это значение в самом начале скрипта, если хотите проверить меньше или больше доменов. -
job
или-j
: Параметр, который позволяет задать количество параллельных процессов при резолвинге доменов. По умолчанию используется значение 60. Это число можно изменить в строке с вызовом команды parallel.
Результаты резолвинга сохраняются в директориях под названием каждого региона:
- regions/
region
/region-voice-resolved: Зарезолвленные домены. - regions/
region
/region-voice-domains: Список всех запрашиваемых доменов. - regions/
region
/region-voice-ip: IP адреса соответствующих доменов. - regions/
region
/region-voice-ipset: Команды для добавления IP адресов в ipset.
$ ./voice-domains-generator-fast.sh
Генерируем и резолвим домены для региона: russia
Прогресс: 100%
Успех!
Время запуска: 10.10.2024 в 21:00:07
Время выполнения: 00:00:46
Доменов зарезолвили: 166
Генерируем и резолвим домены для региона: bucharest
Прогресс: 100%
Успех!
Время запуска: 10.10.2024 в 21:00:53
Время выполнения: 00:00:43
Доменов зарезолвили: 67
...и так далее по дефолтному списку...
Этот скрипт имеет несколько ключевых отличий по сравнению с предыдущим. Вот основные моменты:
-
Стиль написания и оболочка. Скрипт написан с использованием
sh
, в то время как первый используетbash
- сделано для совместимости -
Определение регионов. В этом скрипте переменная
default_regions
определена как строка, а не массив: -
Обработка доменов. Вместо использования
parallel
для параллельного выполнения функций, этот скрипт обрабатывает каждое имя домена последовательно в цикле for и в один поток (очень медленно).
$ ./voice-domains-generator.sh singapore
Генерируем и резолвим домены для региона: singapore
Прогресс: 100%
Успех!
Время запуска: 10.10.2024 в 21:22:23
Время выполнения: 00:06:43
Доменов зарезолвили: 336
Хотя оба скрипта выполняют одну и ту же основную задачу — генерацию и резолвинг доменных имен, они различаются по стилю, эффективности и методам обработки данных. Второй скрипт более простой, но менее эффективный из-за последовательной обработки запросов к DNS-серверу.
- Запускать его нужно после того как отработает генератор (чтобы конвертировать актуальные списки)
- Результат работы автоматически запишется в каждый фолдер региона в формате amnezia-
region
-voice-ip.json - В корень репо также запишется общий список всех регионов в формате amnezia-voice-ip.json
$ ./json-voice-ip-converter.sh
Конвертируем в JSON: bucharest
Конвертируем в JSON: dubai
Конвертируем в JSON: finland
Конвертируем в JSON: frankfurt
Конвертируем в JSON: madrid
Конвертируем в JSON: milan
Конвертируем в JSON: rotterdam
Конвертируем в JSON: russia
Конвертируем в JSON: singapore
Конвертируем в JSON: stockholm
Конвертируем в JSON: warsaw
Содержимое всех списков записано в amnezia-voice-ip.json.
- Стянуть репу
- Включить раздельное туннелирование в Amnezia, в селекторе выбрать "Только адреса из списка должны открываться через VPN"
- Импортировать список с общими доменами
- Импортировать (без замены) список с голосовыми каналами (также можно взять и конкретный регион)
- Подключиться к Amnezia и проверить работу Discord
- Сканер и резолвер сабдоменов, т.к. периодчески возникают подобные сиутации
- Механизм автоматической актуализации списков в репозитории
- Всяческие мануалы