diff --git a/README.md b/README.md new file mode 100644 index 0000000..9abba46 --- /dev/null +++ b/README.md @@ -0,0 +1,114 @@ +# Cascad + +Скрипт для настройки каскадных NAT-соединений на Linux. +Перенаправляет трафик между серверами через iptables/ip6tables на уровне ядра — без промежуточных процессов, с максимальной скоростью. + +**Ключевые слова:** cascade VPN, iptables NAT forwarding, DNAT MASQUERADE, port forwarding VPS, WireGuard relay, AmneziaWG bridge, VLESS proxy chain, XRay Reality relay, MTProto proxy, каскад VPN, проброс портов, мост VPN, обход блокировок, IPv6 NAT, Google BBR + +## Принцип работы + +``` +Клиент (телефон/ПК) ──► Сервер-мост ──► Целевой сервер + порт 443 203.0.113.10:443 +``` + +Скрипт создаёт правила **DNAT + MASQUERADE** в iptables. Ядро Linux пересылает пакеты напрямую — никаких дополнительных процессов, скорость ограничена только каналом. + +## Возможности + +- **Мультипротокольность** — UDP (WireGuard, AmneziaWG), TCP (VLESS, XRay, Reality, MTProto) +- **IPv4 и IPv6** — полная поддержка обоих стеков +- **Кастомные правила** — разные порты входа/выхода, любой протокол +- **Пакетное создание** — диапазон портов за одну операцию +- **Google BBR** — автоматическое ускорение TCP +- **Бэкап / восстановление** — сохранение и откат конфигурации +- **Проверка доступности** — тест TCP-соединения к целевым серверам +- **CLI-режим** — управление без интерактивного меню (для скриптов и автоматизации) +- **Логирование** — все действия записываются в `/var/log/cascad.log` +- **Защита от дубликатов** — проверка перед добавлением правил +- **Автобэкап при сбросе** — невозможно случайно потерять конфигурацию +- **Валидация ввода** — проверка IP-адресов и портов + +## Установка + +Подключитесь к VPS под `root` и выполните: + +```bash +bash <(curl -sL https://raw.githubusercontent.com/arblark/cascad/main/cascad.sh) +``` + +После первого запуска скрипт доступен глобально по команде: + +```bash +cascad +``` + +## Использование + +### Интерактивное меню + +```bash +cascad +``` + +### CLI-режим + +```bash +# Добавить правило (порт входа = порт выхода) +cascad add tcp 203.0.113.10 443 + +# Добавить правило с разными портами +cascad add udp 203.0.113.10 51820 51821 + +# Список правил +cascad list + +# Удалить правило +cascad del tcp 203.0.113.10 443 443 + +# Проверить доступность целей +cascad check + +# Создать бэкап +cascad backup + +# Восстановить из бэкапа +cascad restore + +# Статус системы +cascad status + +# Сбросить все правила +cascad flush + +# Справка +cascad help +``` + +## Быстрый старт + +1. Установите скрипт (см. выше). +2. В меню выберите протокол (WireGuard, VLESS и т.д.). +3. Введите IP и порт целевого (зарубежного) сервера. +4. В клиенте (AmneziaWG, v2rayNG, Nekobox и т.д.) замените адрес сервера на **IP этого VPS**. +5. Готово — трафик идёт через мост. + +## Требования + +- Linux (Ubuntu / Debian) +- root-доступ +- iptables + +Зависимости (`iptables-persistent`, `netfilter-persistent`) устанавливаются автоматически при первом запуске. + +## Структура файлов + +| Путь | Описание | +|---|---| +| `/usr/local/bin/cascad` | Глобальная команда | +| `/var/log/cascad.log` | Лог действий | +| `/etc/cascad/backups/` | Бэкапы правил iptables | + +## Лицензия + +MIT