Skip to content

ivan-yurich/naiveproxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌐 Язык / Language: 🇷🇺 Русский | 🇬🇧 English

███╗   ██╗ █████╗ ██╗██╗   ██╗███████╗    ██████╗ ██████╗  ██████╗ ██╗  ██╗██╗   ██╗
████╗  ██║██╔══██╗██║██║   ██║██╔════╝    ██╔══██╗██╔══██╗██╔═══██╗╚██╗██╔╝╚██╗ ██╔╝
██╔██╗ ██║███████║██║██║   ██║█████╗      ██████╔╝██████╔╝██║   ██║ ╚███╔╝  ╚████╔╝
██║╚██╗██║██╔══██║██║╚██╗ ██╔╝██╔══╝      ██╔═══╝ ██╔══██╗██║   ██║ ██╔██╗   ╚██╔╝
██║ ╚████║██║  ██║██║ ╚████╔╝ ███████╗    ██║     ██║  ██║╚██████╔╝██╔╝ ██╗   ██║
╚═╝  ╚═══╝╚═╝  ╚═╝╚═╝  ╚═══╝  ╚══════╝    ╚═╝     ╚═╝  ╚═╝ ╚═════╝ ╚═╝  ╚═╝   ╚═╝
                                                                         MANAGER

🚀 Профессиональный менеджер приватного прокси-сервера

Один скрипт. Голый VPS → защищённый прокси с блокировкой рекламы за 10 минут.

Caddy 2 · NaiveProxy · Telegram Bot · DNS блокировка · Диагностика · SSH Hardening


Version ShellCheck Bash Ubuntu License


💛 Поддержать проект

Donate Telegram Website

🔔 Обновления выходят раз в месяц



🎉 Что нового в v4.2.3

🐛 Исправленные баги

/qr команда — фикс curl conflict ✅ /adduser — валидация логина и пароля ✅ Команды бота — очистка от \r\nset +e — ошибка не ломает бот ✅ Диагностика — счётчики pass=$((pass+1)) ✅ ALPN — -servername + -a для бинарного вывода ✅ SSH порт на Ubuntu 22.04+ через sshd_config.d/ ✅ Защита от удаления последнего домена ✅ apt update перед Fail2Ban ✅ Авто-перезапуск Caddy и бота при сбое

⚡ Новые возможности

🤖 16 команд бота + мультиадмины 🚫 DNS блокировка ~1.5М доменов + DoT 🔍 Диагностика — 7 блоков, 18+ проверок 🔒 SSH Hardening — ED25519, ssh.socket fix 🛡️ Fail2Ban 3 уровня (iptables-multiport) ♻️ Auto-recoveryRestart=on-failure 🎨 ASCII баннер + брендинг 💛 Донат через DonationAlerts

👉 Полный Changelog


🤔 Что это

NaiveProxy маскирует трафик под браузер Chrome используя настоящий Chromium network stack. DPI и цензоры видят легитимный HTTPS/2 — и пропускают.

NaiveProxy Manager — один bash-скрипт который превращает голый VPS в полноценный защищённый прокси-сервер с блокировкой рекламы и Telegram управлением.

┌─────────────┐     ┌──────────────┐     ┌───────────────────────────┐     ┌──────────┐
│  Твой       │     │  Цензор/DPI  │     │   Твой VPS                │     │          │
│  телефон    │────▶│              │────▶│   Caddy + NaiveProxy      │────▶│ Интернет │
│  ноутбук    │     │  Видит Chrome│     │   unbound DNS блокировка  │     │          │
└─────────────┘     │  HTTPS/2 ✓   │     │   probe_resistance        │     └──────────┘
 naive-client        └──────────────┘     └───────────────────────────┘
 Chromium stack       Пропускает           реклама заблокирована 🚫

⚡ Быстрый старт

bash <(curl -fsSL https://raw.githubusercontent.com/ivanstudiya-cpu/naiveproxy/main/naiveproxy.sh)

✨ Возможности

🔐 Безопасность

  • SSH Hardening ED25519 + sshd_config.d/
  • Авто-сохранение SSH ключа
  • Fail2Ban 3 уровня (iptables-multiport)
  • UFW deny all + защита сканеров
  • probe_resistance — выглядит как сайт
  • Страница-камуфляж DevStack
  • Защита последнего домена

📡 Прокси

  • Auto TLS — Let's Encrypt
  • HTTP/2 + HTTP/3
  • QR код — один скан с телефона
  • Мультипользователь без рестарта
  • Несколько доменов
  • TCP BBR
  • Restart=on-failure

🚫 DNS блокировка

  • ~1.5М доменов рекламы
  • unbound + DNS-over-TLS
  • 3 источника blocklists
  • Whitelist
  • Автообновление

🤖 Telegram бот

  • 16 команд
  • Мультиадмины
  • QR код картинкой
  • Авто-установка зависимостей
  • Системный сервис 24/7

🔍 Диагностика

  • 7 блоков, 18+ проверок
  • Цветной отчёт
  • Отправка в Telegram

📋 Требования

ОС Ubuntu 20.04 / 22.04 / 24.04
Права root
Домен A-запись → IP сервера
Порты 80/tcp · 443/tcp · 443/udp
RAM от 512 MB

🤖 Telegram Бот

sudo bash naiveproxy.sh bot-install    # Автозапуск
Команда Действие
/help /status /stats Информация
/diagnose /cert /logs Диагностика
/users /adduser /deluser /qr Пользователи
/restart /update /selfupdate Управление
/admins /addadmin /deladmin Администрирование

🚫 DNS блокировка рекламы

sudo bash naiveproxy.sh dns-install
Источник Что блокирует
StevenBlack/hosts Реклама + малварь
AdAway Мобильная реклама
Hagezi Pro Агрессивная блокировка

🔍 Диагностика

sudo bash naiveproxy.sh diagnose
[1/7] Caddy          ✅ запущен · ✅ naive padding · ✅ модуль
[2/7] Конфигурация   ✅ :443,domain · ✅ пользователи
[3/7] TLS и сеть     ✅ DNS · ✅ порты · ✅ ALPN h2 · ✅ сертификат
[4/7] Firewall       ✅ UFW · ✅ Fail2Ban активен
[5/7] Ресурсы        ✅ RAM 40% · ✅ Диск 37%
[6/7] Логи           ✅ нет ошибок
[7/7] Версия         ✅ актуальна

📊 ИТОГ: ✅ 18  ⚠️ 0  ❌ 0

⚠️ Caddyfile — критически важно

{
    order forward_proxy before file_server
    servers :443 {
        protocols h1 h2 h3
    }
}

:443, your-domain.com {
  tls your@email.com
  forward_proxy {
    basic_auth USER PASS
    hide_ip
    hide_via
    probe_resistance
  }
  file_server { root /var/www/html }
}

📱 Клиенты

URI: naive+https://USERNAME:PASSWORD@YOUR_DOMAIN:443
Клиент Платформа
NekoBox Android
Shadowrocket iPhone ($2.99)
Hiddify Windows / macOS

❓ FAQ

🚀 Установка и базовая настройка

Какой VPS купить? Минимальные требования

Минимум для работы:

  • 512 MB RAM, 1 vCPU, 10 GB диска
  • Любой провайдер с Ubuntu 20.04+

Рекомендуемые провайдеры:

  • AEZA — Россия, СНГ, дешёвые тарифы от 150₽/мес
  • VDSina — отличное соотношение цена/качество
  • Hetzner — Германия, очень быстрый (от €4/мес)
  • DigitalOcean — Нидерланды, США (от $4/мес)
  • Vultr — много локаций (от $2.50/мес)

⚠️ Избегай Российских хостеров для прокси — могут блокировать.

Какой домен купить и где?

Подойдёт любой домен:

  • .com, .net, .org — стандартные
  • .io, .dev, .tech — модные
  • .xyz, .online, .site — дешёвые

Где покупать:

  • REG.RU — рос. карты, .рф домены (~700₽/год)
  • Namecheap — международный, .com от $10/год
  • Cloudflare Registrar — по себестоимости

Главное — настроить A-запись:

your-domain.com → IP_ВАШЕГО_СЕРВЕРА
Установка обрывается на этапе сборки Caddy
# Проверь свободную RAM (нужно от 512 MB)
free -h

# Если мало — добавь swap
sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# Запусти установку снова
sudo bash /usr/local/bin/naiveproxy.sh install
Как обновить скрипт до последней версии
# Способ 1 — из меню
sudo bash /usr/local/bin/naiveproxy.sh
# → Пункт 14) Обновить скрипт

# Способ 2 — одной командой
curl -fsSL https://raw.githubusercontent.com/ivanstudiya-cpu/naiveproxy/main/naiveproxy.sh \
  -o /usr/local/bin/naiveproxy.sh && chmod +x /usr/local/bin/naiveproxy.sh

🔌 Подключение клиентов

Клиент не подключается — что делать?

Пошаговая диагностика:

# 1. Запусти полную диагностику системы
sudo bash naiveproxy.sh diagnose

# 2. Проверь Caddyfile
cat /etc/caddy/Caddyfile | grep ":443"
# Должно быть: :443, your-domain.com {

# 3. Проверь ALPN (должен быть h2)
echo | openssl s_client -connect YOUR_DOMAIN:443 -alpn h2 -servername YOUR_DOMAIN 2>/dev/null | grep -a "ALPN protocol"

# 4. Проверь что порт открыт
ss -tlnp | grep :443

# 5. Проверь логи
journalctl -u caddy -n 30 --no-pager
Какое приложение лучше для Android?

Топ-3 для Android:

  1. NekoBox ⭐ — лучший, open source, без рекламы

  2. Hiddify — простой, для новичков

  3. Husi — форк NekoBox с улучшениями

⚠️ v2rayNG не работает с NaiveProxy!

Какое бесплатное приложение для iPhone?

Бесплатные варианты:

  1. Hiddify ⭐ — лучший бесплатный, есть в App Store
  2. FoXray — бесплатный, частичная поддержка
  3. Streisand — бесплатный, нет в РФ App Store

Платные (для сравнения):

  • Shadowrocket ($2.99) — лучшая поддержка
  • Quantumult X ($7.99) — для продвинутых

Способ подключения:

  1. Скопируй URI: naive+https://user:pass@domain:443
  2. Открой Hiddify → Import from clipboard
Какое приложение для Windows / Mac?

Windows:

  • Hiddify Next — UI клиент, легко настроить
  • naive.exe — официальный CLI клиент от klzgrad
  • NekoRay — продвинутый GUI

macOS:

  • Hiddify Next — рекомендую
  • V2BoX — есть в App Store
  • ClashX Pro — для опытных

Linux:

  • NekoRay — GUI на Qt
  • naive CLI — для серверов
Как импортировать URI быстро?

Метод 1 — QR код (телефон):

sudo bash naiveproxy.sh qr
# Просто отсканируй камерой в приложении

Метод 2 — через Telegram бот:

В боте: /qr username

Метод 3 — копировать URI:

sudo bash naiveproxy.sh config
# Скопируй URI → "Import from clipboard" в приложении

🚫 DNS блокировка рекламы

DNS блокировка сломала сайт — как починить
# Способ 1 — добавить в whitelist
sudo bash naiveproxy.sh dns
# → 4) Разрешить домен → введи домен

# Способ 2 — временно отключить
sudo systemctl stop unbound

# Способ 3 — полностью удалить
sudo bash naiveproxy.sh dns
# → 5) Удалить блокировщик
YouTube реклама не блокируется полностью

Это нормально! YouTube встраивает рекламу в видеопоток с того же домена (googlevideo.com), что и само видео. Заблокировать только рекламу невозможно — блокировка домена убьёт и видео.

Что работает:

  • ✅ Баннеры YouTube (на главной)
  • ✅ Pre-roll реклама (иногда)
  • ❌ Реклама внутри видео — не блокируется

Решение для YouTube: YouTube Premium или приложения типа NewPipe (Android), YouTube Vanced.

Как обновить blocklists вручную
sudo bash naiveproxy.sh dns-update

Или через меню:

sudo bash naiveproxy.sh dns
# → 2) Обновить blocklists

🤖 Telegram бот

Telegram бот не отвечает на команды
# 1. Проверь статус
systemctl status naiveproxy-bot

# 2. Посмотри логи
journalctl -u naiveproxy-bot -n 30 --no-pager

# 3. Перезапусти
systemctl restart naiveproxy-bot

# 4. Если не помогло — переустанови
sudo bash naiveproxy.sh bot-install
Как получить Telegram bot token?
  1. Открой @BotFather в Telegram
  2. Отправь /newbot
  3. Введи имя бота (любое)
  4. Введи username бота (должен заканчиваться на bot)
  5. Скопируй токен вида 123456789:ABCdefGHIjklMNOpqrSTUvwxYZ

Введи токен в скрипте:

sudo bash naiveproxy.sh
# → 7) Настройка Telegram + Бот
Как узнать свой Telegram Chat ID?

Способ 1 — через бота:

  1. Напиши своему боту любое сообщение
  2. Открой в браузере: https://api.telegram.org/botYOUR_TOKEN/getUpdates
  3. Найди "chat":{"id":12345} — это твой ID

Способ 2 — через @userinfobot:

  1. Напиши @userinfobot
  2. Он покажет твой ID
Команда /qr не отправляет картинку
# Установи qrencode
apt install -y qrencode

# Перезапусти бот
systemctl restart naiveproxy-bot

# Проверь /qr в боте
Как добавить второго администратора?

В Telegram боте отправь:

/addadmin 123456789

(где 123456789 — Chat ID второго админа)

Посмотреть список:

/admins

🔒 SSH Hardening и безопасность

Как скачать SSH ключ на свой компьютер
# Скачать ключ через scp
scp root@YOUR_IP:/etc/naiveproxy/ssh_private_key ~/.ssh/id_naiveproxy

# Установить правильные права
chmod 600 ~/.ssh/id_naiveproxy

# Подключиться с ключом
ssh -i ~/.ssh/id_naiveproxy -p NEW_PORT user@YOUR_IP

# Или показать ключ в консоли
sudo bash naiveproxy.sh ssh-key
Заблокировал себя после SSH hardening

Доступ только через VNC/KVM консоль хостинга:

# 1. Открой VNC/KVM в панели хостера
# 2. Выполни:

ufw allow 22/tcp
systemctl restart sshd

# 3. Теперь зайди по SSH на стандартный 22 порт

Если SSH порт изменён но забыл какой:

grep -E "^Port " /etc/ssh/sshd_config /etc/ssh/sshd_config.d/*.conf 2>/dev/null
Fail2Ban забанил меня — как разбанить
# Посмотреть кто забанен
fail2ban-client status sshd

# Разбанить свой IP
fail2ban-client unban YOUR_IP

# Разбанить все IP
fail2ban-client unban --all

# Добавить свой IP в whitelist (навсегда)
echo "ignoreip = 127.0.0.1/8 ::1 YOUR_IP" >> /etc/fail2ban/jail.local
systemctl restart fail2ban
Как сменить SSH порт ещё раз?
sudo bash naiveproxy.sh ssh-hardening
# Скрипт спросит новый порт и применит все настройки

🔧 Управление сервером

Caddy не запускается — что делать
# 1. Проверь конфиг
caddy validate --config /etc/caddy/Caddyfile

# 2. Посмотри логи
journalctl -u caddy -n 50 --no-pager

# 3. Запусти в foreground для отладки
caddy run --config /etc/caddy/Caddyfile

# 4. Частые причины:
# - Порты 80/443 заняты (apache2, nginx)
# - Нет прав на /var/log/caddy
# - DNS не настроен (нет A-записи)
Как сменить пароль пользователю
sudo bash naiveproxy.sh users
# → 3) Изменить пароль

Или через Telegram бот:

/deluser username
/adduser username newpassword
Как добавить второй домен на тот же сервер
# 1. Создай A-запись для нового домена → тот же IP
# 2. Добавь домен:
sudo bash naiveproxy.sh domains
# → 1) Добавить домен
# 3. Caddy автоматически получит сертификат для нового домена
Сертификат не получается — Let's Encrypt ошибка

Частые причины:

# 1. DNS не настроен — проверь
dig +short your-domain.com

# 2. Порт 80 заблокирован — открой
ufw allow 80/tcp

# 3. Уже превысил лимит (5 неудачных за час)
# Подожди 1 час и попробуй снова

# 4. CAA-запись блокирует Let's Encrypt
# Проверь у регистратора — должна быть пустая или letsencrypt.org
Как сделать бэкап и восстановить
# Создать бэкап
tar -czf naiveproxy-backup-$(date +%Y%m%d).tar.gz \
  /etc/caddy/Caddyfile \
  /etc/naiveproxy/ \
  /var/www/html/index.html

# Скачать на свой компьютер
scp root@YOUR_IP:~/naiveproxy-backup-*.tar.gz ~/Downloads/

# Восстановить на новом сервере
sudo bash naiveproxy.sh install  # сначала установить
tar -xzf naiveproxy-backup.tar.gz -C /
systemctl restart caddy
Как полностью удалить NaiveProxy
sudo bash naiveproxy.sh remove
# Удалит: Caddy, конфиги, логи, systemd сервисы

# Дополнительно очистить:
apt remove --purge -y caddy fail2ban unbound
rm -rf /etc/caddy /etc/naiveproxy /etc/unbound /var/log/caddy

📊 Мониторинг и логи

Где смотреть логи
# Логи Caddy (доступы)
tail -f /var/log/caddy/access.log

# Логи NaiveProxy (CONNECT туннели)
tail -f /var/log/caddy/naive.log

# Systemd логи
journalctl -u caddy -f
journalctl -u naiveproxy-bot -f

# Все логи через скрипт
sudo bash naiveproxy.sh logs
Как посмотреть статистику трафика
sudo bash naiveproxy.sh monitor

Покажет:

  • Трафик за сутки/месяц
  • Активные пользователи
  • Количество подключений
  • Топ доменов
Сервер тормозит — как найти причину
# Запусти диагностику
sudo bash naiveproxy.sh diagnose

# Топ процессов по CPU
top -bn1 | head -20

# Использование памяти
free -h

# Активные соединения
ss -ant | wc -l

# Размер логов (могут забить диск)
du -sh /var/log/*

💛 Поддержка проекта

Как поддержать разработку

Варианты поддержки:

  1. 💛 Донат на DonationAlerts: 👉 donationalerts.com/r/ivan_yurievich

  2. Поставь звезду на GitHub

  3. 📢 Расскажи друзьям — поделись ссылкой

  4. 🐛 Сообщи о баге — открой Issue на GitHub

  5. 💡 Предложи идею — в Telegram канале

Спасибо за поддержку! 🙏

Где задать вопрос?

Контакты для связи:

  • 📱 Telegram каналt.me/ivan_it_net
  • 🌐 Сайтivan-it.net
  • 💻 GitHub Issues — для багов и предложений

⏱️ Обычно отвечаю в течение суток.


💛 Поддержать проект

Если скрипт помог тебе — поддержи разработку! 🙏

Donate

👉 https://www.donationalerts.com/r/ivan_yurievich

Что даст твой донат:

  • 🚀 Больше времени на разработку
  • 🐛 Быстрые фиксы багов
  • Новые фичи каждый месяц
  • 📚 Документация и поддержка
  • 🆕 Эксклюзив для донатеров в Telegram

Все способы поддержки:

Способ Ссылка
💛 Донат donationalerts.com/r/ivan_yurievich
GitHub Star Поставить звезду
📱 Telegram канал t.me/ivan_it_net
🌐 Сайт ivan-it.net
📢 Поделиться Расскажи друзьям

Спасибо за поддержку! Каждый донат мотивирует делать проект ещё лучше 💛


📜 Changelog

v4.2.3 — ALPN Fix ← ТЕКУЩАЯ
  • 🐛 Фикс grep: binary file matches — флаг -a
  • ✅ Диагностика корректно показывает ALPN: h2 на всех серверах
v4.2.2 — Security Audit (10 фиксов)

Критичные:

  • 🔒 SSH sshd_config.d/ + ssh.socket отключение
  • 🛡️ Защита от удаления последнего домена
  • 📦 apt update перед Fail2Ban
  • 🔧 PasswordAuthentication/PermitRootLogin добавление

Безопасность:

  • ⚡ Fail2Ban iptables-multiport
  • 🌐 UFW allow 80/tcp (ACME)
  • 🔑 Пароли 20 символов [a-zA-Z0-9_-]
  • ♻️ Caddy Restart=on-failure

Бот:

  • /qr фикс curl
  • /adduser валидация
  • ✅ Очистка \r\n
  • set +e в обработчике

Диагностика:

  • 🐛 Счётчики pass=$((pass+1))
  • 🐛 ALPN -servername
  • 🐛 Naive padding multi-criteria
v4.2.1 — Banner & Branding
  • ✨ ASCII баннер + Telegram канал + сайт
  • 🐛 Переменные DIM, BLUE
v4.2.0 — DNS Ad Blocker
  • ✨ unbound + ~1.5М доменов
  • ✨ DNS-over-TLS
  • 🆕 dns, dns-install, dns-update
v4.1.0 — Security Audit
  • 🔒 Валидация бота + санитизация args
v4.0.0 — Telegram Bot
  • ✨ 16 команд + мультиадмины + QR картинкой
v3.9.0 — Diagnostics
  • ✨ 7 блоков, 18+ проверок
v3.8.0 — Security & UX
  • ✨ SSH ключ + QR + Fail2Ban 3 уровня
v3.7.0 — Critical Caddyfile Fix
  • 🔴 :443, domain вместо domain:443

📄 Лицензия

GPL-3.0 © Иван Юрьевич (Ivan Yurievich)
Запрещено коммерческое использование без разрешения автора.
📞 Связь: Telegram · ivan-it.net


💛 Понравилось? Поддержи проект!

Donate Star

📱 Telegram · 🌐 ivan-it.net · 💻 GitHub

NaiveProxy Manager · by Иван Юрьевич · Обновления раз в месяц

Releases

No releases published

Packages

 
 
 

Contributors