Универсальный проброс трафика через iptables
Простой и эффективный скрипт для создания прокси-моста (порт-форвардинга) между серверами. Позволяет принимать трафик на одном сервере и прозрачно перенаправлять его на другой.
✅ Проброс TCP и UDP трафика
✅ Поддержка одинаковых и разных портов (вход/выход)
✅ Автоматическое включение IP forwarding и BBR
✅ Сохранение правил после перезагрузки (netfilter-persistent)
✅ Интеграция с UFW (автоматическое открытие портов)
✅ Управление правилами: просмотр, удаление, полная очистка
✅ Работает на любых дистрибутивах Linux
Протокол/Сервис Пункт меню Пример использования
MTProto / Telegram Proxy 3 Проброс на Telemt, MTProto
VLESS / XRay 2 Проброс прокси-трафика
AmneziaWG / WireGuard 1 Проброс VPN-трафика
SSH, RDP, любые порты 4 Кастомные правила
Установка
# Скачать скрипт
wget -O port-forwarder.sh https://raw.githubusercontent.com/androideworld/port-forwarder/main/port-forwarder.sh
# Сделать исполняемым
chmod +x port-forwarder.sh
# Запустить от root
sudo ./port-forwarder.shИли одной строкой
sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/androideworld/port-forwarder/main/port-forwarder.sh)"После первого запуска скрипт сам установит себя в /usr/local/bin/port-forwarder — команда станет доступна глобально.
sudo port-forwarderМеню скрипта
╔══════════════════════════════════════════════════════════════╗
║ Port Forwarder v1.0 ║
║ Проброс трафика через iptables ║
╚══════════════════════════════════════════════════════════════╝
1) Настроить AmneziaWG / WireGuard (UDP)
2) Настроить VLESS / XRay (TCP)
3) Настроить TProxy / MTProto (TCP)
4) 🛠 Создать Кастомное правило (разные порты)
5) Посмотреть активные правила
6) Удалить одно правило
7) Сбросить ВСЕ настройки
0) Выход🔧 Как это работает
Клиент → РФ-сервер:ПОРТ → iptables DNAT → NL-сервер:ПОРТ → Целевой сервис
↑
Скрипт создаёт правила#Что делает скрипт Включает IP forwarding — разрешает маршрутизацию Включает BBR — ускоряет TCP-соединения Создаёт правила iptables: INPUT — разрешает входящий трафик на порт PREROUTING (DNAT) — перенаправляет на целевой сервер POSTROUTING (MASQUERADE) — подменяет обратный адрес FORWARD — разрешает проход пакетов Сохраняет правила через netfilter-persistent
Пример 1: Проброс MTProto на NL-сервер
# Запустить скрипт → выбрать пункт 3
# Ввести IP NL-сервера: 194.104.10.162
# Ввести порт: 10443
# Готово! Теперь клиенты подключаются к РФ-серверу:10443# Запустить скрипт → выбрать пункт 4
# Протокол: tcp
# IP назначения: 10.0.0.1
# Входящий порт (на этом сервере): 8080
# Исходящий порт (на целевом): 22
# SSH-трафик с порта 8080 уйдёт на порт 22 целевого сервераПример 3: Получить ссылку для Telegram (MTProto)
# IP вашего РФ-сервера
SERVER_IP=$(curl -s https://api.ipify.org)
# Ссылка с секретом от NL-сервера
echo "tg://proxy?server=$SERVER_IP&port=10443&secret=eeВАШ_СЕКРЕТ"Команда Что делает iptables -t nat -L -n -v Просмотр NAT-правил iptables -L -n -v Просмотр filter-правил netfilter-persistent save Сохранить текущие правила netfilter-persistent reload Перезагрузить правила
Реальный IP клиента не передаётся — на целевом сервере все клиенты видны как IP сервера-ретранслятора Нет логирования подключений — используйте HAProxy, если нужны логи Только один целевой сервер — нет балансировки
Характеристика iptables (этот скрипт) HAProxy Скорость ⚡ Максимальная Высокая Логирование ❌ Нет ✅ Да Реальный IP клиента ❌ Нет ✅ Да (PROXY protocol) Балансировка ❌ Нет ✅ Да Простота ✅ Проще Сложнее
ОС: Linux (Ubuntu/Debian/CentOS) Права: root Зависимости: iptables, netfilter-persistent (устанавливаются автоматически)
sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/androideworld/port-forwarder/main/port-forwarder.sh)"