Skip to content
This repository was archived by the owner on Apr 23, 2025. It is now read-only.

Автоматически перенаправляет трафик для заданных доменов через SOCKS5-прокси, сохраняя прямое подключение для остальных ресурсов. Идеально для обхода ограничений и мониторинга сети.

License

Notifications You must be signed in to change notification settings

Divarion-D/transparent-proxy-gateway

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌐 Прозрачный шлюз с SOCKS-проксированием

Умный маршрутизатор трафика через динамические правила с полной поддержкой IPv4/IPv6

License: AGPL v3 IPv4 IPv6 CIDR

Автоматически перенаправляет трафик через SOCKS5-прокси с поддержкой современных сетевых стандартов. Идеально для обхода ограничений и мониторинга сети.

✨ Особенности

  • 🚀 Автоматическое перенаправление трафика для заданных доменов/IP через прокси
  • 🔄 Динамическое обновление IP-адресов доменов
  • 🛡️ Интеграция с SOCKS5 прокси
  • 📜 Логирование всех операций
  • 🔧 Модульная архитектура с поддержкой параметров командной строки
  • Автоматическое обновление адресов каждые 3 часа
  • 🌐 Поддержка IPv4, IPv6 и CIDR-диапазонов для гибкости в настройках

🖥️ Требования

  • Сервер/ПК с Linux (рекомендуется Ubuntu 22.04+)
  • Два сетевых интерфейса (LAN/WAN)

📡 Архитектура системы

graph LR
    A[Локальная сеть] --> B(LAN Интерфейс)
    B --> C{Проверка правил}
    C -->|Совпадение| D[SOCKS Прокси]
    C -->|Нет совпадения| E[Прямое подключение]
    D --> F[WAN Интерфейс]
    E --> F
Loading

🚀 Быстрый старт

📥 Установка

Внимание в будущий LAN интерфейс должно быть подключено устройство которое будет принимать интернет (роутер, свитч) иначе не запустится DHCP сервер

  1. Клонируйте репозиторий:
git clone https://github.com/Divarion-D/transparent-proxy-gateway.git
cd transparent-proxy-gateway
  1. Запустите установку:
chmod +x proxy.sh
sudo ./proxy.sh --install
  1. Следуйте инструкциям на экране:
    • 🖧 Выберите LAN и WAN интерфейсы

⚙️ Конфигурация

  • ⚠️ Каждая новая запись должна начинаться с новой строки
  1. Добавьте домены в config/domains.txt:
sudo nano config/domains.txt
  1. Добавьте IP в config/ips.txt (поддерживаются как одиночные IP, так и CIDR-диапазоны):
sudo nano config/ips.txt
  1. Настройте прокси в config/redsocks.conf:
sudo nano config/redsocks.conf
redsocks {
    local_ip = 0.0.0.0; # Не изменять
    local_port = 12345; # Не изменять
    ip = proxy_ip; # Адрес SOCKS-прокси
    port = proxy_port; # Порт прокси
    # login = proxy_login; # Имя пользователя прокси
    # password = proxy_password; # Пароль прокси
    type = socks5;
}

Раскомментируйте строки с логином и паролем если требуется аутентификация для прокси:

login = proxy_login;
password = proxy_password;
  1. Примените изменения:
sudo ./proxy.sh --update-ips
sudo ./proxy.sh --restart-redsocks

🛠️ Использование

🔑 Основные команды

Команда Описание
sudo ./proxy.sh --install 🚀 Полная установка системы
sudo ./proxy.sh --uninstall 🚀 Полное удаление шлюза
sudo ./proxy.sh --update-ips 🌍 Принудительное обновление IP
sudo ./proxy.sh --restart-redsocks 🌍 Перезапуск readsocks
sudo ./proxy.sh --reconfigure_firewall 🛡️ Переконфигурация фаервола
sudo ./proxy.sh --help 📖 Показать справку

📌 Добавление правил роутинга

Правила роутинга можно взять отсюда RockBlack-VPN или Диапазоны

  1. Выбираем сайт, который нам нужен.
  2. Открываем файл с правилами.
  3. Содержимое файла будет выглядеть примерно так:
route ADD 23.32.0.0 MASK 255.224.0.0 0.0.0.0
route ADD 47.236.0.0 MASK 255.252.0.0 0.0.0.0
route ADD 47.235.0.0 MASK 255.255.0.0 0.0.0.0
  1. Нужно удалить все, кроме самого IP-адреса, чтобы выглядело так:
23.32.0.0
47.236.0.0
47.235.0.0
  1. Сохраните эти правила в текстовый файл и положите его в папку routing.
  2. Выполните команду для обновления правил роутинга:
sudo ./proxy.sh --update-ips

📂 Структура проекта

/transparent-proxy-gateway/
├── proxy.sh              # 🖥️ Основной скрипт
├── config.sh             # 🖥️ Главный файл конфигурации
├── redsocks.conf     # ⚙️ Конфигурация прокси
├── user_list/
│   ├── domains.txt       # 📜 Список ваших доменов для перенаправления
│   └──  ips.txt           # 📜 Список ваших IP для перенаправления
├── scripts/
│   ├──create_ru_list.sh  # 🔄 Скрипт получения всех заюлокированых IP в россии
│   └── update_ips.sh     # 🔄 Скрипт обновления IP
├── routing/              # 📜 Файлы с IP-адресами для сайтов
└── logs/                 # 🗂️ Директория логов

📊 Логирование

Все операции записываются в папку logs/. Для мониторинга в реальном времени:

tail -f logs/redsocks/redsocks.log

🔍 Проверка работоспособности DHCP-сервера

Если клиенты получают IP-адреса, но интернет отсутствует, выполните следующие проверки:

1. Статус службы DHCP

sudo systemctl status isc-dhcp-server
# Должен быть активен (active)

2. Проверка арендованных адресов

sudo cat /var/lib/dhcp/dhcpd.leases
# Должны отображаться выданные клиентам IP

3. Конфигурация DHCP

sudo cat /etc/dhcp/dhcpd.conf
# Проверьте наличие:
# - Правильного диапазона (range)
# - Корректного шлюза (option routers)

4. Тест выдачи IP

sudo dhclient -v -r $LAN_IFACE  # Сброс текущего DHCP
sudo dhclient -v $LAN_IFACE     # Новая попытка получения IP

5. Проверка связи с шлюзом

# На клиенте:
ping 10.0.0.1
# Если недоступно:
# - Проверьте кабельное подключение
# - Убедитесь в правильности выбора LAN-интерфейса

6. Логирование DHCP

sudo journalctl -u isc-dhcp-server -f
# Ищите ошибки выделения адресов

7. Проброс DNS-запросов

# На клиенте:
sudo nslookup google.com 10.0.0.1
# Должен вернуть IP-адрес

🛠️ Типичные проблемы DHCP

❌ Клиенты не получают IP

  1. Проверьте привязку к интерфейсу:
sudo cat /etc/default/isc-dhcp-server
# INTERFACESv4 должно содержать $LAN_IFACE
  1. Перезапустите службу:
sudo systemctl restart isc-dhcp-server

❌ Конфликт IP-адресов

Добавьте резервацию:

host printer {
    hardware ethernet 00:1A:2B:3C:4D:5E;
    fixed-address 10.0.0.50;
}

🔄 Полная диагностика сети

Выполните на шлюзе:

./proxy.sh --reconfigure_firewall && \
systemctl restart isc-dhcp-server redsocks

После проверок не забудьте сохранить изменения:

netfilter-persistent save

Примечание: Для применения всех изменений может потребоваться перезагрузка клиентов.

❓ Частые вопросы

❌ Нет интернет-доступа после настройки

  1. 🔌 Проверьте физическое подключение кабелей
  2. ⚙️ Убедитесь в правильности выбора WAN-интерфейса
  3. 🕵️‍♂️ Проверьте настройки прокси в redsocks.conf
  4. 📋 Проверить добавленные IP-адреса доменов:
sudo ipset list proxy_domains
  1. 📋 Проверить созданы ли правила роутинга:
sudo nft list ruleset
# Должно быть:
# - POSTROUTING
# - PREROUTING
# - PROXY_ROUTE
  1. 📋 Проверить созданы ли настройки firewall
sudo iptables -t nat -L -nv

# Должно быть:
# - POSTROUTING MASQUERADE
# - PREROUTING REDIRECT
# - PROXY_ROUTE

🚫 Домены не перенаправляются

  1. 📝 Убедитесь, что домены добавлены в domains.txt
  2. 🔄 Выполните принудительное обновление IP:
sudo ./proxy.sh --update-ips

⚠️ Ошибки в конфигурации

Проверьте синтаксис файлов:

redsocks --test -c config/redsocks.conf

📜 Лицензия

AGPL License. Подробнее см. в файле LICENSE.


Отказ от ответственности (Disclaimer)

🔹 Этот проект предоставляется "как есть" (as-is), без каких-либо гарантий, явных или подразумеваемых. Авторы не несут ответственности за любые прямые или косвенные последствия использования данного программного обеспечения. 🔹 Проект предоставляется в образовательных целях

💻 Разработано: Divarion-D
📂 Репозиторий: https://github.com/Divarion-D/transparent-proxy-gateway

About

Автоматически перенаправляет трафик для заданных доменов через SOCKS5-прокси, сохраняя прямое подключение для остальных ресурсов. Идеально для обхода ограничений и мониторинга сети.

Topics

Resources

License

Stars

Watchers

Forks

Languages