NikkiNet
Прокси-менеджер для Windows (стиль Nekoray/HApp): локальный смешанный прокси 127.0.0.1:8888 (HTTP + SOCKS) на движке sing-box и приложение с интерфейсом управления 127.0.0.1:8000. Чистый Python 3.8+ без внешних зависимостей.
Возможности
- Серверы VLESS / VMess / Trojan / Shadowsocks / WireGuard / Hysteria2 —
вставкой ссылок
vless://…и им подобных или вручную - Подписки с автообновлением и отсевом неработающих серверов
- Автотест задержек, авто-выбор самого быстрого сервера (в т.ч. по стране)
- Правила маршрутизации: домены / ключевые слова / IP — через прокси или напрямую
- Системный прокси Windows одним кликом; TUN-режим (нужны права администратора)
- Cloudflare WARP одной кнопкой
- Доступ из локальной сети: раздача прокси на телефон/другой ПК с логином и паролем
- Автосбор серверов из GitHub-списков и публичных сайтов прямо из панели
- Автообновление приложения из GitHub Releases (с этой страницы)
Установка (Windows 10/11)
Способ 1 — установщик (рекомендуется). Скачайте
NikkiNet-Setup-x.y.z.exe из
последнего релиза
и запустите. Python и все компоненты (sing-box, wintun) уже внутри —
ничего доустанавливать не нужно. Приложение ставится в
C:\Program Files\NikkiNet, ярлыки появляются на рабочем столе и в меню «Пуск».
Способ 2 — портативный архив. Скачайте NikkiNet-windows-x64.zip,
распакуйте архив целиком в любую папку (не запускайте файлы из архива!),
запустите install.bat и нажмите «Да» в окне UAC. Если Python не установлен —
установщик сам скачает и поставит его.
В обоих случаях при запуске панель откроется автоматически: http://127.0.0.1:8000
Удаление: «Параметры → Приложения → NikkiNet → Удалить» (для установщика)
или uninstall.bat (для архива).
Android
Отдельного .apk у NikkiNet нет: приложение использует Windows-компоненты
(sing-box.exe, wintun.dll, системный прокси). На телефоне ставится тот же
движок sing-box в готовом Android-клиенте:
- v2rayNG — https://github.com/2dust/v2rayNG/releases
- SFA (sing-box for Android) — https://github.com/SagerNet/sing-box-for-android/releases
Перенос серверов с компьютера (скрипт не требует зависимостей):
python export_android.pyОн создаёт:
android/subscriptions.txt— URL ваших подписок (в клиенте: «Группы» → «+» → Subscription → вставить URL; серверы будут обновляться сами)android/links.txt— share-ссылкиvless://,vmess://,trojan://,ss://,hysteria2://по одной в строке (в клиенте: «+» → «Импорт из буфера обмена»)
Публичные HTTP/SOCKS-прокси из бесплатных списков переносятся только через подписки. Не используйте их для банков, почты и других чувствительных данных: владелец такого прокси технически видит ваш трафик.
Доступ из локальной сети
По умолчанию прокси слушает только 127.0.0.1 и с других устройств недоступен.
В панели есть карточка «Доступ из локальной сети»:
- включите переключатель — приложение создаст логин и пароль (их можно изменить);
- на телефоне или другом ПК в той же Wi-Fi сети укажите адрес из панели
(например,
192.168.1.5:8889) как HTTP-прокси и введите логин/пароль; - для SOCKS5-клиентов — тот же адрес, тип SOCKS5, авторизация по логину/паролю.
Порт открывается правилом брандмауэра только для локальной подсети
(LocalSubnet). Без логина и пароля режим не включается — открытого прокси не
будет. Интерфейс приложения (порт 8000) по-прежнему доступен только с этого компьютера.
Чтобы выключить, снимите переключатель: правило брандмауэра удаляется, прокси
снова слушает только 127.0.0.1.
Автосбор серверов из интернета
В панели есть карточка «Автосбор серверов из интернета» с двумя кнопками:
- Собрать из интернета — обходит GitHub-списки и публичные сайты из
netparse.py(разделSEEDS), вытаскивает ссылкиvless://,vmess://,trojan://,ss://,hysteria2://,tuic://и адресаip:port; - Собрать из списков — только GitHub- и веб-списки, без обхода сайтов.
Галочка «Проверять через sing-box» включает настоящую проверку: каждый кандидат подключается через sing-box и должен отдать реальный HTTP-ответ (по умолчанию не дольше 1500 мс). Без неё остаётся только TCP-отклик — такие адреса часто не работают как прокси, поэтому галочку лучше не снимать.
Сбор идёт в фоне, прогресс и журнал видны в карточке; рабочие серверы
автоматически добавляются в список с источником autoparse и не дублируются.
Обход сайтов соблюдает robots.txt, ограничен по глубине и количеству страниц,
поисковики используются только как дополнительный источник (многие блокируют
автоматические запросы, поэтому основной путь — SEEDS).
Бесплатные узлы из публичных списков не контролируются вами: владелец узла может видеть и подменять трафик. Не используйте их для банков, почты, госуслуг и работы. Для постоянного использования берите свой VPS или доверенную платную подписку.
Автообновление
Приложение проверяет релизы в этом репозитории раз в 6 часов и при открытии панели. Если найдена версия новее текущей — вверху панели появляется баннер «Обновить и перезапустить»: приложение скачивает релиз, заменяет свои файлы и перезапускается. Пользовательские данные (config.json — серверы, подписки, настройки) при обновлении не трогаются. Установщик для обновления не нужен — он требуется только для первой установки.
Для мейнтейнера: как выпустить релиз
Релиз собирается и публикуется автоматически при пуше git-тега:
git tag v1.3.1
git push origin v1.3.1GitHub Actions скачает sing-box и wintun, соберёт NikkiNet-windows-x64.zip
и NikkiNet-Setup-x.y.z.exe (Inno Setup, со встроенным Python) и прикрепит
оба файла к новому Release. Чтобы установленные копии увидели
обновление, номер тега без буквы v должен быть больше, чем APP_VERSION
в version.py (сравнение числовое: 1.10.0 > 1.2.0).
Локальная сборка установщика (нужен Inno Setup 6):
python installer/make_icon.py
./installer/build_dist.ps1 -Version 1.3.1 -Compile
# результат: installer/Output/NikkiNet-Setup-1.3.1.exeСостав
| Файл | Назначение |
|---|---|
proxy_app.py | ядро: состояние, логика, HTTP-API панели |
singbox.py | генерация конфигов и управление sing-box |
subs.py | парсер ссылок и подписок |
warp.py | регистрация Cloudflare WARP |
ui.py | интерфейс приложения (HTML, открывается в окне Edge/Chrome) |
version.py | версия приложения + репозиторий обновлений |
appupdate.py | проверка релизов и самообновление |
netparse.py | встроенный автосбор серверов (списки + публичные сайты) |
webscan.py | сканер страниц: ссылки, конфиги, таблицы, base64 |
parser-app/ | отдельное приложение-парсер с UI и своим установщиком |
| export_android.py | экспорт серверов и подписок для Android (v2rayNG/SFA) |
| install.bat / start.bat / uninstall.bat | установка / запуск / удаление |
| installer/nikkinet.iss | скрипт установщика (Inno Setup) |
| installer/build_dist.ps1 | сборка дистрибутива и NikkiNet-Setup.exe |
| installer/make_icon.py | генерация иконки, только стандартная библиотека |