Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
udp2raw — Туннель, который преобразует UDP-трафик в зашифрованный UDP/FakeTCP/ICMP трафик, используя Raw Socket, помогает вам обходить UDP-файрволлы (или нестабильное окружение UDP) | Kitploit
Инструменты/GitHubGitHub/wangyu-/udp2raw
Инструменты шифрования/дешифрованияОбход IDS/IPSСетевая безопасность
GitHubwangyu-/udp2raw

udp2raw

Туннель, который преобразует UDP-трафик в зашифрованный UDP/FakeTCP/ICMP трафик, используя Raw Socket, помогает вам обходить UDP-файрволлы (или нестабильное окружение UDP)

Репозиторий
8.5k1.3k10 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Udp2raw-tunnel

Туннель, который преобразует UDP-трафик в зашифрованный трафик FakeTCP/UDP/ICMP с помощью Raw Socket, помогая обходить UDP-файерволы (или нестабильное UDP-окружение).

При самостоятельном использовании udp2raw туннелирует только UDP-трафик. Тем не менее, если вы используете udp2raw вместе с любым UDP-based VPN, вы можете туннелировать любой трафик (включая TCP/UDP/ICMP). В настоящее время подтверждена поддержка OpenVPN/L2TP/ShadowVPN и tinyfecVPN.

image0

или

image_vpn

udp2raw wiki

简体中文

Поддерживаемые платформы

Хост Linux (включая настольный Linux, Android-телефон/планшет, маршрутизатор OpenWRT или Raspberry Pi) с root-аккаунтом или возможностью cap_net_raw.

Для пользователей Windows и MacOS используйте udp2raw из этого репозитория.

Возможности

Отправка/получение UDP-пакетов с заголовками ICMP/FakeTCP/UDP

Заголовки ICMP/FakeTCP помогают обойти блокировку UDP, UDP QOS или некорректное поведение UDP NAT у некоторых провайдеров. В режиме заголовка ICMP udp2raw работает как ICMP-туннель.

Заголовки UDP также поддерживаются. В режиме заголовка UDP он ведет себя как обычный UDP-туннель, и вы можете просто использовать другие функции (такие как шифрование, защита от повторного воспроизведения или стабилизация соединения).

Симулированный TCP с доставкой в реальном времени/с нарушением порядка

В режиме заголовка FakeTCP udp2raw симулирует трехстороннее рукопожатие при установлении соединения, симулирует seq и ack_seq во время передачи данных. Он также симулирует несколько TCP-опций, таких как: MSS, sackOk, TS, TS_ack, wscale. Файерволы будут считать FakeTCP TCP-соединением, но по сути это UDP: он поддерживает доставку в реальном времени/с нарушением порядка (как обычный UDP), без контроля перегрузки или повторной передачи. Поэтому не будет проблемы TCP over TCP при использовании OpenVPN.

Шифрование, защита от повторного воспроизведения

  • Шифруйте ваш трафик с помощью AES-128-CBC.
  • Защищайте целостность данных с помощью HMAC-SHA1 (или более слабых MD5/CRC32).
  • Защита от атак повторного воспроизведения с помощью окна защиты от повторного воспроизведения.

Notes on encryption

Обнаружение сбоев и стабилизация (восстановление соединения)

Сбои соединения обнаруживаются с помощью heartbeat-пакетов. Если произошел тайм-аут, клиент автоматически сменит номер порта и переподключится. Если переподключение успешно, предыдущее соединение будет восстановлено, и все существующие UDP-сессии останутся действительными.

Например, если вы используете udp2raw + OpenVPN, OpenVPN не потеряет соединение после любого переподключения, даже если сетевой кабель будет переподключен или точка доступа Wi-Fi изменится.

Другие возможности

  • Мультиплексирование Один клиент может обрабатывать несколько UDP-соединений, все они используют одно и то же raw-соединение.
  • Несколько клиентов Один сервер может обслуживать несколько клиентов.
  • Поддержка NAT Все три режима работают в средах NAT.
  • Поддержка OpenVZ Протестировано на VPS BandwagonHost.
  • Простота сборки Нет зависимостей. Чтобы кросс-компилировать udp2raw, все, что вам нужно сделать, это загрузить тулчейн, изменить makefile, указав на тулчейн, выполнить make cross, и все готово. (Примечание: предварительно скомпилированные бинарные файлы для Desktop, Raspberry Pi, Android, некоторых маршрутизаторов OpenWrt уже включены в Релизы).

Ключевые слова

Bypass UDP QoS Bypass UDP Blocking Bypass OpenVPN TCP over TCP problem OpenVPN over ICMP UDP to ICMP tunnel UDP to TCP tunnel UDP over ICMP UDP over TCP

Начало работы

Установка

Загрузите бинарный релиз с https://github.com/wangyu-/udp2raw-tunnel/releases

Запуск

Предположим, ваш UDP заблокирован, или применяется QOS, или просто плохо поддерживается. Предположим, IP вашего сервера 44.55.66.77, и у вас есть служба, слушающая UDP-порт 7777.

root@kitploit:~
# Run at server side:
./udp2raw_amd64 -s -l0.0.0.0:4096 -r 127.0.0.1:7777    -k "passwd" --raw-mode faketcp -a

# Run at client side
./udp2raw_amd64 -c -l0.0.0.0:3333  -r44.55.66.77:4096  -k "passwd" --raw-mode faketcp -a

(The above commands need to be run as root. For better security, with some extra steps, you can run udp2raw as non-root. Check this link for more info )

Вывод сервера:

Вывод клиента:

Теперь между клиентом и сервером через TCP-порт 4096 установлен зашифрованный raw-туннель. Подключение к UDP-порту 3333 на стороне клиента эквивалентно подключению к порту 7777 на стороне сервера. Никакой UDP-трафик не будет раскрыт.

Примечание

Для запуска на Android смотрите Android_Guide

-a опция автоматически добавляет для вас правило iptables (или несколько правил iptables), udp2raw полагается на это правило iptables для стабильной работы. Убедитесь, что вы не забыли -a (это частая ошибка). Если вы не хотите, чтобы udp2raw автоматически добавлял правило iptables, вы можете добавить его вручную (посмотрите опцию -g) и опустить -a.

Продвинутая тема

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

root@kitploit:~
udp2raw-tunnel
git version:4623f878e0    build date:Nov  3 2024 23:15:46
repository: https://github.com/wangyu-/udp2raw-tunnel

usage:
    run as client : ./this_program -c -l local_listen_ip:local_port -r server_address:server_port  [options]
    run as server : ./this_program -s -l server_listen_ip:server_port -r remote_address:remote_port  [options]

common options,these options must be same on both side:
    --raw-mode            <string>        available values:faketcp(default),udp,icmp and easy-faketcp
    -k,--key              <string>        password to gen symetric key,default:"secret key"
    --cipher-mode         <string>        available values:aes128cfb,aes128cbc(default),xor,none
    --auth-mode           <string>        available values:hmac_sha1,md5(default),crc32,simple,none
    -a,--auto-rule                        auto add (and delete) iptables rule
    -g,--gen-rule                         generate iptables rule then exit,so that you can copy and
                                          add it manually.overrides -a
    --disable-anti-replay                 disable anti-replay,not suggested
    --fix-gro                             try to fix huge packet caused by GRO. this option is at an early stage.
                                          make sure client and server are at same version.
client options:
    --source-ip           <ip>            force source-ip for raw socket
    --source-port         <port>          force source-port for raw socket,tcp/udp only
                                          this option disables port changing while re-connecting
other options:
    --conf-file           <string>        read options from a configuration file instead of command line.
                                          check example.conf in repo for format
    --fifo                <string>        use a fifo(named pipe) for sending commands to the running program,
                                          check readme.md in repository for supported commands.
    --log-level           <number>        0:never    1:fatal   2:error   3:warn
                                          4:info (default)     5:debug   6:trace
    --log-position                        enable file name,function name,line number in log
    --disable-color                       disable log color
    --disable-bpf                         disable the kernel space filter,most time its not necessary
                                          unless you suspect there is a bug
    --dev                 <string>        bind raw socket to a device, not necessary but improves performance
    --sock-buf            <number>        buf size for socket,>=10 and <=10240,unit:kbyte,default:1024
    --force-sock-buf                      bypass system limitation while setting sock-buf
    --seq-mode            <number>        seq increase mode for faketcp:
                                          0:static header,do not increase seq and ack_seq
                                          1:increase seq for every packet,simply ack last seq
                                          2:increase seq randomly, about every 3 packets,simply ack last seq
                                          3:simulate an almost real seq/ack procedure(default)
                                          4:similiar to 3,but do not consider TCP Option Window_Scale,
                                          maybe useful when firewall doesnt support TCP Option
    --lower-level         <string>        send packets at OSI level 2, format:'if_name#dest_mac_adress'
                                          ie:'eth0#00:23:45:67:89:b9'.or try '--lower-level auto' to obtain
                                          the parameter automatically,specify it manually if 'auto' failed
    --wait-lock                           wait for xtables lock while invoking iptables, need iptables v1.4.20+
    --gen-add                             generate iptables rule and add it permanently,then exit.overrides -g
    --keep-rule                           monitor iptables and auto re-add if necessary.implys -a
    --hb-len              <number>        length of heart-beat packet, >=0 and <=1500
    --mtu-warn            <number>        mtu warning threshold, unit:byte, default:1375
    --clear                               clear any iptables rules added by this program.overrides everything
    --retry-on-error                      retry on error, allow to start udp2raw before network is initialized
    -h,--help                             print this help message

Правила iptables, -a и -g

Эта программа отправляет пакеты через raw socket. В режиме FakeTCP обработка TCP-пакетов ядром Linux должна быть заблокирована правилом iptables с обеих сторон, иначе ядро будет автоматически отправлять RST для нераспознанного TCP-пакета, и вы столкнетесь с проблемами стабильности/производительности. Вы можете использовать опцию -a, чтобы программа автоматически добавляла/удаляла правило iptables при запуске/выходе. Вы также можете использовать опцию -g для генерации правила iptables и добавить его вручную.

--cipher-mode и --auth-mode

Рекомендуется использовать aes128cbc + hmac_sha1 для максимальной безопасности. Если вы хотите запустить программу на маршрутизаторе, вы можете попробовать xor + simple, которые в большинстве случаев могут обмануть проверку пакетов файерволами, но не защищают от серьезных атак. Режим none предназначен только для отладки. Не рекомендуется устанавливать cipher-mode или auth-mode в none.

--seq-mode

Режим FakeTCP не ведет себя на 100% как реальное TCP-соединение. Интернет-провайдеры могут отличить симулированный TCP-трафик от реального (хотя это дорого). seq-mode может помочь немного изменить поведение увеличения seq. Если у вас возникают проблемы с соединением, попробуйте изменить значение.

--lower-level

--lower-level позволяет отправлять пакеты на уровне 2 OSI (канальный уровень), что позволяет обходить любые локальные правила iptables. Если у вас сложные правила iptables, которые конфликтуют с udp2raw, и вы не можете (или слишком ленивы) редактировать правила iptables, --lower-level может быть очень полезен. Попробуйте --lower-level auto для автоматического определения параметров, вы можете указать их вручную, если auto не сработает.

Ручной формат: if_name#dest_mac_adress, например: eth0#00:23:45:67:89:b9.

--keep-rule

Мониторинг iptables и автоматическое повторное добавление правил iptables (для блокировки обработки TCP ядром) при необходимости. Особенно полезно, когда правила iptables могут быть очищены другими программами (например, если вы используете OpenWRT, каждый раз при изменении и применении настройки правила iptables могут быть очищены и перестроены).

--conf-file

Вы также можете загружать параметры из конфигурационного файла, чтобы скрыть секреты от команды ps.

Например, перепишите параметры для приведенного выше примера сервера (в разделе Начало работы) в конфигурационный файл:

server.conf

root@kitploit:~
-s
# You can add comments like this
# Comments MUST occupy an entire line
# Or they will not work as expected
# Listen address
-l 0.0.0.0:4096
# Remote address
-r 127.0.0.1:7777
-a
-k passwd
--raw-mode faketcp

Обратите внимание на параметр -k: в режиме командной строки кавычки вокруг пароля будут удалены оболочкой. В конфигурационных файлах мы не удаляем кавычки.

Затем запустите сервер командой:

root@kitploit:~
./udp2raw_amd64 --conf-file server.conf

--fifo

Используйте fifo (именованный канал) для отправки команд работающей программе. Например, --fifo fifo.file.

На стороне клиента вы можете использовать echo reconnect >fifo.file, чтобы принудительно переподключить клиента. В настоящее время для сервера не реализовано ни одной команды.

Тест производительности

Метод тестирования:

iperf3 TCP через OpenVPN + udp2raw (Режим UDP iperf3 не используется из-за ошибки, упомянутой в этом issue: https://github.com/esnet/iperf/issues/296 . Вместо этого мы упаковываем TCP-трафик в UDP с помощью OpenVPN для тестирования производительности. Подробнее читайте в Application.

Команда iperf3:

root@kitploit:~
iperf3 -c 10.222.2.1 -P40
iperf3 -c 10.222.2.1 -P40 -R

Окружение

  • Клиент Vultr $2.5/месяц (одно ядро 2.4GHz, 512MB RAM, Токио, Япония)
  • Сервер BandwagonHost $3.99/год (одно ядро 2.0GHz, 128MB RAM, Лос-Анджелес, США)

Test1

raw_mode: faketcp cipher_mode: xor auth_mode: simple

image4

(обратная скорость была аналогичной и не загружена)

Test2

raw_mode: faketcp cipher_mode: aes128cbc auth_mode: md5

image5

(обратная скорость была аналогичной и не загружена)

wiki

Проверьте wiki для получения дополнительной информации:

https://github.com/wangyu-/udp2raw-tunnel/wiki

Скачать инструмент