Этот репозиторий содержит:
- Списки доменов и IP-адресов используемых голосовыми серверами Discord и в целом (gui, api и т.д.)
- Скрипт для парсинга IP с готового списка сабдоменов голосовых каналов
- Скрипт создания IPset списка с последующей загрузкой в него получившихся IP списков
- Скрипт для генерации списка сабдоменов голосовых серверов в формате region[1-15000].discord.gg и их резолв с последующей записью в фолдер regions
- Скрипт для преобразования списков IP-адресов в JSON формат для удобного импорта в Amnezia
Репозиторий будет полезен тем, кто хочет настроить "корректную" маршрутизацию для обеспечения "стабильной" работы Discord.
main-domains-resolver.sh
- резолвит основные домены Discord в IP-адреса. Читает список доменов из main_domains/discord-main-domains-list, сохраняет IP-адреса в main_domains/discord-main-ip-list и генерирует JSON-файл amnezia/amnezia-discord-domains.json для использования с Amnezia VPNvoice-domains-generator.sh
- генерирует и резолвит домены голосовых серверов Discord для указанных регионов. Результаты сохраняются в соответствующих папках внутри regions/ и объединяются в общие списки в voice_domains/. (шустрый, но зависит от CPU)json-voice-ip-converter.sh
- конвертирует результаты резолвинга голосовых серверов из файлов в regions/ в JSON-формат для Amnezia VPN. Генерирует JSON-файлы для каждого региона в amnezia/ и общий файл amnezia/amnezia-voice-ip.jsonipset-adder.sh
- скрипт генерирует ipset списки из содержимого фолдеровvoice_domains
иmain_domains
, ипортирует их в заданный IPset при этом учитывая уже добавленные в него IPamnezia
- фолдер со списками доменов и IP в формате JSON для настройки раздельного туннелирования в Amneziaregions
- фолдер со списками IP голосовых каналов разбитых по регионам (сгенерированный силамиvoice-domains-generator
)main_domains
- фолдер со списками основных доменов и IPvoice_domains
- фолдер со списками голосовых доменов и IPcustom-solutions
- фолдер с решениями от заинтересованных и неравнодушных
- amnezia/ Содержит JSON-файлы с IP-адресами для Amnezia VPN.
- main_domains/
discord-main-domains-list
— список основных доменов Discord для резолвинга.discord-main-ip-list
— результат резолвинга основных доменов.discord-main-ipset-list
— IPSet список основных IP-адресов.
- regions/
Содержит папки по регионам с результатами резолвинга голосовых серверов.
- <region>/
<region>-voice-domains
— список зарезолвленных доменов.<region>-voice-ip
— список IP-адресов.<region>-voice-ipset
— IPSet список для региона.<region>-voice-resolved
— сопоставление доменов и IP.
- <region>/
- voice_domains/
discord-voice-domains-list
— объединённый список доменов голосовых серверов.discord-voice-ip-list
— объединённый список IP-адресов.discord-voice-ipset-list
— объединённый IPSet список.
- Убедитесь, что main_domains/discord-main-domains-list заполнен.
- Запустите скрипт:
./main-domains-resolver.sh
- Результаты резолвинга будут сохранены в следующие файлы:
- Основные IP-адреса:
./main_domains/discord-main-ip-list
- Основные IP-адреса в формате JSON:
./amnezia/amnezia-discord-domains.json
- Запуск без опций сегенерирует и зарезолвит регионы по умолчанию (
$DEFAULT_REGIONS
):
./voice-domains-generator.sh
Регионы генерируемые по умолчанию:
- russia
- bucharest
- finland
- frankfurt
- madrid
- milan
- rotterdam
- stockholm
- warsaw
Отредактируйте переменную DEFAULT_REGIONS
в voice-domains-generator.sh
, если требуется
- Вы также можете указать в качестве аргумента конкретный регион, например тот, который отсутствует по умолчанию:
./voice-domains-generator.sh singapore
- Результаты резолвинга для каждого региона сохраняются в соответствующие файлы в папке
regions/<имя региона>
.
Для конвертации списков основных и голосовых серверов в формат JSON выполните:
./json-voice-ip-converter.sh
Результаты будут сохранены в папку amnezia/.
- Для автоматического добавления IP-адресов основных и голосовых серверов в IPset, используйте:
./ipset-adder.sh auto
- Для автоматического добавления IP-адресов основных и голосовых серверов в конкретный IPset лист, используйте режим
list
передав в качестве аргумента:
./ipset-adder.sh list <ip_list_name>
- Если вы не хотите использовать IPset, а только сгенерировать списки в его формате, выполните:
./ipset-adder.sh noipset
- Запуск в интерактивном режиме:
./ipset-adder.sh
- jq для работы с JSON
- parallel для параллельной обработки запросов резолвинга
Для роутеров с установленным KVAS доступна облегчённая версия репозитория - ветка light. Подробнее в этом репо.
- Стянуть репу
- Включить раздельное туннелирование в Amnezia, в селекторе выбрать "Только адреса из списка должны открываться через VPN"
- Импортировать список с общими доменами
- Импортировать (без замены) список с голосовыми каналами (также можно взять и конкретный регион)
- Подключиться к Amnezia и проверить работу Discord
discord-voice-ips/
├── README.md
├── amnezia/
│ ├── amnezia-bucharest-voice-ip.json
│ ├── amnezia-discord-domains.json
│ ├── amnezia-dubai-voice-ip.json
│ ├── amnezia-finland-voice-ip.json
│ ├── amnezia-frankfurt-voice-ip.json
│ ├── amnezia-madrid-voice-ip.json
│ ├── amnezia-milan-voice-ip.json
│ ├── amnezia-rotterdam-voice-ip.json
│ ├── amnezia-russia-voice-ip.json
│ ├── amnezia-singapore-voice-ip.json
│ ├── amnezia-stockholm-voice-ip.json
│ ├── amnezia-voice-ip.json
│ └── amnezia-warsaw-voice-ip.json
├── custom-solutions/
├── ipset-adder.sh
├── json-voice-ip-converter.sh
├── main-domains-resolver.sh
├── voice-domains-generator.sh
├── main_domains/
│ ├── discord-main-domains-list
│ ├── discord-main-ip-list
│ └── discord-main-ipset-list
├── regions/
│ ├── bucharest/
│ │ ├── bucharest-voice-domains
│ │ ├── bucharest-voice-ip
│ │ ├── bucharest-voice-ipset
│ │ └── bucharest-voice-resolved
│ ├── dubai/
│ │ ├── dubai-voice-domains
│ │ ├── dubai-voice-ip
│ │ ├── dubai-voice-ipset
│ │ └── dubai-voice-resolved
│ ├── finland/
│ │ ├── finland-voice-domains
│ │ ├── finland-voice-ip
│ │ ├── finland-voice-ipset
│ │ └── finland-voice-resolved
│ ├── frankfurt/
│ │ ├── frankfurt-voice-domains
│ │ ├── frankfurt-voice-ip
│ │ ├── frankfurt-voice-ipset
│ │ └── frankfurt-voice-resolved
│ ├── madrid/
│ │ ├── madrid-voice-domains
│ │ ├── madrid-voice-ip
│ │ ├── madrid-voice-ipset
│ │ └── madrid-voice-resolved
│ ├── milan/
│ │ ├── milan-voice-domains
│ │ ├── milan-voice-ip
│ │ ├── milan-voice-ipset
│ │ └── milan-voice-resolved
│ ├── rotterdam/
│ │ ├── rotterdam-voice-domains
│ │ ├── rotterdam-voice-ip
│ │ ├── rotterdam-voice-ipset
│ │ └── rotterdam-voice-resolved
│ ├── russia/
│ │ ├── russia-voice-domains
│ │ ├── russia-voice-ip
│ │ ├── russia-voice-ipset
│ │ └── russia-voice-resolved
│ ├── singapore/
│ │ ├── singapore-voice-domains
│ │ ├── singapore-voice-ip
│ │ ├── singapore-voice-ipset
│ │ └── singapore-voice-resolved
│ ├── stockholm/
│ │ ├── stockholm-voice-domains
│ │ ├── stockholm-voice-ip
│ │ ├── stockholm-voice-ipset
│ │ └── stockholm-voice-resolved
│ └── warsaw/
│ │ ├── warsaw-voice-domains
│ │ ├── warsaw-voice-ip
│ │ ├── warsaw-voice-ipset
│ │ └── warsaw-voice-resolved
└── voice_domains/
├── discord-voice-domains-list
├── discord-voice-ip-list
└── discord-voice-ipset-list
- Сканер и резолвер сабдоменов, т.к. периодчески возникают подобные ситуации
- Механизм автоматической актуализации списков в репозитории