Прочтите это на других языках: английском, испанском, немецком, французском.
Packet Sender — это утилита с открытым исходным кодом, позволяющая отправлять и получать пакеты TCP, UDP и SSL (зашифрованные TCP), а также запросы HTTP/HTTPS и создание панелей. Основная ветка официально поддерживает Windows, Mac и Desktop Linux (с Qt). Другие места могут перекомпилировать и перераспределить Packet Sender. Packet Sender бесплатен и распространяется под лицензией GPL v2 или новее. Его можно использовать как для коммерческого, так и для личного использования. Если вы считаете приложение полезным, рассмотрите возможность пожертвования/спонсорства, чтобы развитие могло продолжиться.
Спонсоры
графический интерфейс
Генератор интенсивного трафика (GUI)
Сеть
Загрузки
Поддерживать
Калькулятор подсети IPv4
Wake-On-LAN / Волшебный пакет
Облако отправителей пакетов
Портативный режим
Макросы и умные ответы
Постоянный TCP и SSL
HTTP/HTTPS-запросы
Панельный генератор
Интерфейс командной строки
Генератор интенсивного трафика (CLI)
Создание отправителя пакета
Packet Sender хотел бы поблагодарить следующих спонсоров.
IWL — калифорнийская компания, создающая продукты для компьютерных сетей.
NagleCode — издатель и студия разработки программного обеспечения.
Eletiope устанавливает освещение, аудиовизуальные средства и иммерсивные комнаты для выставок и музеев, а также для корпоративных выставочных залов.
Хотели бы вы, чтобы ваше имя/логотип было указано здесь?
ПРИМЕЧАНИЕ. Попробуйте (временно) отключить брандмауэр, если возникли проблемы в Windows.
Официальные версии Packet Sender можно загрузить на PacketSender.com. В некоторых местах перераспределяется Packet Sender.
Packet Sender идентичен для всех настольных версий. Единственное отличие — это тема, соответствующая операционной системе.
По полям вверху можно перемещаться с помощью CTRL+1, CTRL+2 и т. д., вплоть до CTRL+8 (кнопка отправки). На Mac сочетание клавиш — Command.
Горячие клавиши и поля:
Некоторые примечания:
По умолчанию Packet Sender запускается с серверами UDP, TCP и SSL, включенными на случайных портах (показаны кнопками в правом нижнем углу). Вы можете привязать любое количество портов (если это позволяет ОС), используя номера портов, разделенные запятыми. Например, 0, 1000, 2000
будут привязаны к «случайным» портам 1000, 2000.
Кнопка UDP теперь показывает 3 связанных порта. 1 из них случайный.
Другая настройка — отвечать на все запросы ответом. Вы также можете сделать этот запрос макросом. Есть поле для ввода ответа (или загрузки сохраненного пакета).
По умолчанию Packet Sender привязывается к любому адресу IPv4. В этой области настроек вы можете привязать его к любому IPv6 или к определенному IP-адресу.
Привязка к определенному адресу очень полезна, когда имеется несколько сетевых карт и вы хотите принудительно передать связь (например, широковещательные пакеты) на конкретную.
Некоторые протоколы ожидают, что сервер отправит данные до отправки клиентом (например, многие службы telnet). Этот рабочий процесс можно включить с помощью параметра «Получить перед отправкой».
Если у вас медленное устройство (например, встроенный сервер со слабым процессором), вы можете включить «задержку 500 мс после подключения». Это позволит медленному серверу запустить свой обработчик.
Встроенные серверы Packet Sender настроены на поддержку либо IPv4, либо IPv6, но не обоих одновременно. Для клиентов графический интерфейс и интерфейс командной строки Packet Sender будут плавно переключаться между двумя режимами после отправки (для IPv6 может потребоваться идентификатор области). Нажмите переключатель IPv4/IPv6 в правом нижнем углу, чтобы переключиться между ними.
В настройках вы также можете принудительно привязать серверы Packet Sender к пользовательскому IP-адресу. Это может быть очень полезно для систем с несколькими сетевыми адаптерами или сложными настройками IP. Отправитель пакетов вызовет ошибку, если ему будет предложено привязаться к несуществующему адресу.
Packet Sender имеет встроенный калькулятор подсети. Он находится в меню «Инструменты».
Wake-On-LAN (или WOL) — это протокол, который сообщает компьютерам о выходе из спящего режима. Он запускается широковещательным пакетом со специальными данными на основе MAC-адреса цели. Для получения дополнительной информации загляните в Википедию.
Packet Sender имеет встроенный генератор WOL. Он находится в меню «Инструменты».
Заполните параметры, и основной графический интерфейс будет заполнен правильными данными для формата WOL.
Существуют также параметры CLI, помогающие генерировать и отправлять пакеты WOL.
packetsender --wol f8:23:66:30:e5:30
Sending broadcast Wake-On-LAN to target: F8:23:66:30:E5:30 on port 7
UDP (60360)://255.255.255.255:7 ff ff ff ff ff ff f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30
Packet Sender поддерживает установку зашифрованных соединений через SSL. Это поддерживается в графическом интерфейсе и в командной строке.
Packet Sender объединяет OpenSSL для использования в Windows. На Mac и Linux Packet Sender будет использовать собственные библиотеки SSL.
SSL-примечания:
Packet Sender включает в себя внутренний сертификат «Snake Oil» для использования в качестве сервера для Windows. Сертификат и ключ находятся там же, где и пакет и настройки.
Примечание. Переопределение расположения сертификатов в настройках также отменяет действие сертификата Snake Oil.
Если возникнет ошибка SSL, Packet Sender выведет ее в журнал трафика. Если настройка все равно будет продолжена (по умолчанию), согласование шифрования продолжится. В противном случае соединение завершается сбоем подключения.
Поддержка многоадресной рассылки Packet Sender активируется при попытке отправки на адрес многоадресной рассылки IPv4 или из подменю многоадресной рассылки. В настоящее время эта функция является экспериментальной и имеет следующие известные проблемы.
Поддержки многоадресной рассылки IPv6 нет, хотя она находится в планах. Спонсоры, которым нужна поддержка многоадресной рассылки IPv6, могут связаться со мной.
Когда обычной системы отправки недостаточно, вы можете забить целевой IP-адрес пакетами, чтобы проверить, справится ли ваше устройство с этим. Его можно найти на панели инструментов графического интерфейса в меню «Инструменты» -> «Генератор интенсивного трафика».
Обратите внимание, что эта функция является экспериментальной, и отображаемые показатели не были полностью протестированы. Для более точного теста вы можете посмотреть версию этого инструмента с интерфейсом командной строки.
Наборы пакетов можно быстро сохранять, извлекать и совместно использовать с помощью бесплатной службы Packet Sender Cloud. Облако также можно использовать для публичного отображения и распространения ваших пакетов (через URL-адрес) для совместной работы, учебных пособий, конечных пользователей и т. д. Отправитель пакетов может импортировать общедоступные наборы пакетов с общедоступным URL-адресом.
Для этого есть разные причины:
Если вы публикуете сетевой API, поддерживать страницу общедоступного облака значительно проще, чем мучительно детализировать (IP, порт, тип и т. д.) пакеты для ваших пользователей. Кроме того, обновить эту страницу легко.
Более подробную информацию об этом можно найти по адресу https://cloud.packetsender.com/help.
Packet Sender имеет «портативный» режим. При запуске он будет искать файл portablemode.txt
и заполнять все недостающие файлы настроек в этом каталоге времени выполнения. Это файлы packets.ini
, ps_settings.ini
, ps.key
и ps.pem
. Вы также можете сделать некоторые файлы переносимыми, а другие — в их стандартном расположении, удалив Portablemode.txt.
Если вам не нужен графический интерфейс, вы можете удалить эти DDL.
Обратите внимание, что библиотеки DLL с символами +
в именах могут вызвать проблемы при копировании из командной строки Windows, если вы не окружите их знаком "
.
Если вам не требуется SSL, вы можете удалить эти DDL.
Каталог времени выполнения пользователей Windows находится в том же месте, что и .exe.
Для пользователей MAC этот каталог времени выполнения находится по адресу PacketSender.app/Contents/MacOS
. Если файлы INI найдены, они будут использоваться вместо %APPDATA%
или Library/Application Support
.
Packet Sender поддерживает до 5 интеллектуальных ответов.
Чтобы включить эту функцию, перейдите в «Файл» -> «Настройки» на панели инструментов графического интерфейса. Перейдите на вкладку «Умные ответы» и установите флажок «Отправить умный ответ» .
Packet Sender поддерживает следующие макросы при отправке ответов:
Packet Sender поддерживает постоянные соединения TCP и SSL через отдельное окно графического интерфейса. Он включается с помощью флажка в главном окне или в окне «Настройки».
Постоянные соединения через командную строку не поддерживаются.
Packet Sender поддерживает отправку запросов POST/GET через HTTP и HTTPS. Раскрывающийся список протоколов включает следующие параметры: HTTP GET, HTTP POST, HTTPS GET, HTTPS POST. При выборе HTTP(S) поля ввода изменятся на: Имя, Запрос, Адрес, Данные (когда выбран POST), кнопка «Создать данные» (когда выбран POST), «Загрузить файл» (когда выбран POST).
Вы также можете вставить полный URL-адрес в поле «Запрос», и отправитель пакета проанализирует и автоматически заполнит другие поля.
Packet Sender поддерживает создание панелей управления. Панели состоят из кнопок, которым назначены скрипты (пакеты). При нажатии на кнопку будут выполнены пакеты, указанные на этой кнопке.
Панели могут быть созданы одним из двух способов:
Packet Sender поддерживает запуск в режиме только панели с помощью стартовой панели с использованием параметра командной строки --starterpanel
Чтобы начать создавать сценарии для кнопок на панели, вам нужно открыть панель и перейти на экран редактирования. После открытия панельного проекта нажмите кнопку в правом нижнем углу. Если на этой кнопке написано «Просмотр», вы находитесь на экране «Просмотр». Нажмите кнопку, чтобы переместить панель на экран редактирования.
На экране редактирования на панель можно добавить кнопки и скрипты.
Скрипты кнопок будут содержать имя отправляемого пакета.
Для кнопки можно назначить несколько пакетов, добавив каждое имя в новой строке.
Panel Generator поддерживает добавление задержки между несколькими пакетами путем добавления «задержки: # секунд » между пакетами.
Генератор панелей поддерживает добавление сценария для загрузки новой панели путем добавления «панели: идентификатор панели # ». Как только все предыдущие сценарии на кнопке будут выполнены, панель перейдет к следующей панели.
Генератор панелей поддерживает добавление кнопок, которые ссылаются на локально хранящиеся файлы или URL-адреса. Кнопки «Файл/URL» можно добавить на экране редактирования, нажав + в правом нижнем углу.
После копирования файла или URL-адреса вам будет предложено ввести имя для кнопки. Кнопки появятся в нижней части панели.
На экране «Редактирование» нажатие этих кнопок позволит вам отредактировать ссылку на файл/URL-адрес и имя кнопки. Вы также можете удалить кнопку, нажав X во всплывающем окне.
На экране «Просмотр» нажатие этих кнопок приведет к запуску URL-адреса в браузере по умолчанию или открытию файла (с помощью программы по умолчанию для данного типа файла).
На экране редактирования панели отображается панель инструментов с меню «Файл», «Экспорт», «Настройки», «Справка». С этой панели инструментов вы можете сохранять, экспортировать, импортировать, загружать проекты панелей и редактировать текущий проект панели.
В настройках вы можете сделать следующее:
На данный момент DTLS поддерживается только в графическом интерфейсе Windows. Другие операционные системы могут включить DTLS путем компиляции из исходного кода с использованием Qt6.
Этот репозиторий содержит функцию протокола DTLS (Datagram Transport Layer Security). В эту функцию добавлен графический интерфейс для настройки соединений DTLS и управления ими, включая параметры проверки сервера и сохранения сеанса.
Обнюхивание с помощью Wireshark:
Packet Sender можно использовать из командной строки на вашем компьютере.
В Windows используйте расширение .com ( packetsender.com
), чтобы использовать интерфейс командной строки. При желании вы также можете использовать packetsender
без расширения. Использование расширения .exe запустит графический интерфейс.
В Linux система командной строки в Packet Sender построена по тому же образцу, что и другие утилиты Linux. Он имеет длинное имя (например, --version) и короткое имя (например, -v). Эти параметры можно расположить в любом порядке, и Packet Sender правильно их проанализирует. Последние 3 опции являются позиционными и должны появляться последними. Это IP, порт и данные. Эти последние параметры являются необязательными при использовании сохраненного пакета.
packetsender --help
Usage: C:Program FilesPacketSenderpacketsender.com [options] address port data
Packet Sender is a Network UDP/TCP/SSL/HTTP Test Utility by NagleCode
See https://PacketSender.com/ for more information.
Options:
-h, --help Displays help on commandline options.
--help-all Displays help including Qt specific options.
-v, --version Displays version information.
-q, --quiet Quiet mode. Only output received data.
-x, --hex Parse data-to-send as hex (default for
TCP/UDP/SSL).
-a, --ascii Parse data-to-send as mixed-ascii (default for http
and GUI).
-A, --ASCII Parse data-to-send as pure ascii (no xx
translation).
-l, --listen Listen instead of send. Use bind options to specify
port/IP. Otherwise, dynamic/All.
-r, --response <ascii> Server mode response data in mixed-ascii. Macro
supported.
-w, --wait <ms> Wait up to <milliseconds> for a response after
sending. Zero means do not wait (Default).
-f, --file <path> Send contents of specified path. Max 10 MiB for
UDP, 100 MiB for TCP/SSL.
-b, --bind <port> Bind port. Default is 0 (dynamic).
-6, --ipv6 Force IPv6. Same as -B "::". Default is IP:Any.
-4, --ipv4 Force IPv4. Same as -B "0.0.0.0". Default is
IP:Any.
-B, --bindip <IP> Bind custom IP. Default is IP:Any.
-t, --tcp Send TCP (default).
-s, --ssl Send SSL and ignore errors.
-S, --SSL Send SSL and stop for errors.
-u, --udp Send UDP.
--http <http> Send HTTP. Allowed values are GET (default) and
POST
-n, --name <name> Send previously saved packet named <name>. Other
options overrides saved packet parameters.
--wol <mac> Send Wake-On-LAN / Magic Packet to <mac> and
(optional) <port>.
--bps <bps> Intense traffic. Calculate rate based on value of
bits per second.
--num <number> Intense traffic. Number of packets to send. Default
unlimited.
--rate <Hertz> Intense traffic. Rate. Ignored in bps option.
--usdelay <microseconds> Intense traffic. Resend delay. Used if rate is 0.
Ignored in bps option.
--max Intense traffic. Run as fast as possible.
Arguments:
address Destination address/URL. Optional for saved packet.
port Destination port/POST data. Optional for saved
packet.
data Data to send. Optional for saved packet.
CLI имеет один и тот же формат для Windows, Linux и MAC.
Формат: packetsender [options] address port data
packetsender -taw 500 mirrors.xmission.com 21 "USER anonymousrnPASS [email protected]"
TCP (65505)://mirrors.xmission.com:21 55 53 45 52 20 61 6e 6f 6e 79 6d 6f 75 73 0d 0a 50 41 53 53 20 63 68 72 6f 6d 65 40 65 78 61 6d 70 6c 65 2e 63 6f 6d 0d 0a
Response Time:5:51:37.042 pm
Response HEX:32 32 30 2D 57 65 6C 63 6F 6D 65 20...
Response ASCII:220-Welcome to XMission Internet...
Используйте существующие параметры привязки для настройки сервера.
Привязка к динамическому порту с использованием TCP
packetsender -l
TCP Server started on 0.0.0.0:52567
Use ctrl+c to exit server.
From: 127.0.0.1, Port:52568
Response Time:2024-06-04 19:01:53.198
Response HEX:48 65 6C 6C 6F
Response ASCII:Hello
From: 127.0.0.1, Port:52569
Response Time:2024-06-04 19:02:24.063
Response HEX:57 6F 72 6C 64
Response ASCII:World
Привязка к порту 8080 с помощью UDP
packetsender -l -u -b 8080
UDP Server started on 0.0.0.0:8080
Use ctrl+c to exit server.
From: ::ffff:127.0.0.1, Port:49500
Response Time:2024-06-04 19:04:28.890
Response HEX:48 65 6C 6C 6F 20 55 44 50 20 50 61 63 6B 65 74
Response ASCII:Hello UDP Packet
Привязка к порту 8080 с использованием UDP с ответом текущего времени
packetsender -l -u -b 8080 -r "{{TIME}}"
Loading response packet.
UDP Server started on 0.0.0.0:8080
Use ctrl+c to exit.
From: ::ffff:127.0.0.1, Port:59594
Response Time:2024-06-05 20:48:18.180
Response HEX:68 65 6C 6C 6F 20 70 61 63 6B 65 74 20 73 65 6E 64 65 72
Response ASCII:hello packet sender
From: You (Response), Port:59594
Response Time:2024-06-05 20:48:18.182
Response HEX:30 38 3a 34 38 3a 31 38 20 70 6d
Response ASCII:08:48:18 pm
Привязка к IP 192.168.86.26, порт 54321 с помощью SSL
packetsender -l -s -B 192.168.86.26 -b 54321
Binding to custom IP 192.168.86.26
Listening for SSL packets in server mode.
SSL Server started on 192.168.86.26:54321
Use ctrl+c to exit server.
From: 192.168.86.26, Port:52588
Response Time:2024-06-04 19:11:30.726
Error/Info:Encrypted with AESGCM(256)
From: 192.168.86.26, Port:52588
Response Time:2024-06-04 19:11:30.726
Error/Info:Authenticated with RSA
From: 192.168.86.26, Port:52588
Response Time:2024-06-04 19:11:30.726
Error/Info:Peer cert issued by
From: 192.168.86.26, Port:52588
Response Time:2024-06-04 19:11:30.726
Error/Info:Our Cert issued by SnakeOil
From: 192.168.86.26, Port:52588
Response Time:2024-06-04 19:11:30.747
Response HEX:43 6F 6F 6C 20 53 53 4C
Response ASCII:Cool SSL
Командная строка Packet Sender может привязываться к пользовательским портам для принудительного использования режимов IPv4/6 или нескольких сетевых карт с помощью опции -B.
packetsender -taw 3000 fe80::c07b:d517:e339:5a08 5005 "Hellor"
packetsender -taw 3000 192.168.0.201 5005 "Hellor"
packetsender -B 192.168.0.200 -taw 3000 192.168.0.201 5005 "Hellor"
packetsender -B fe80::a437:399a:3091:266a%ethernet_32769 -taw 3000 fe80::c07b:d517:e339:5a08 5005 "Hellor"
packetsender -B fe80::a437:399a:3091:266a -taw 3000 fe80::c07b:d517:e339:5a08 5005 "Hellor"
В командной строке есть возможность игнорировать или отказываться от ошибок SSL. По умолчанию — игнорировать.
packetsender -saw 500 expired.packetsender.com 443 "GET / HTTP/1.0rnrn"
SSL Error: The certificate has expired
SSL (54202)://expired.packetsender.com:443 47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a 0d 0a
Cipher: Encrypted with AES(128)
Response Time:3:24:55.695 pm
Response HEX:48 54 54 50 2f 31 2e 31 20 34 32 31 20 0d 0a 53 65 72 76 65 72 3a 20 6e 67 69 6e 78 2f 31 2e 31 30 2e 30 20 28 55 62 75 6e 74 75 29 0d
Response ASCII:HTTP/1.1 421 rnServer: nginx/1.10.0 (Ubuntu)r
Обратите внимание, что здесь используются встроенные пакеты по умолчанию.
packetsender --name "HTTPS POST Params"
packetsender --http GET "https://httpbin.org/get"
packetsender --http POST "https://httpbin.org/post" "{}"
Командный генератор интенсивного трафика работает почти так же, как версия с графическим интерфейсом, но он немного более точен, имеет больше возможностей управления (и большую интенсивность!).
Ниже приведены примеры использования. Обратите внимание, что эти расчеты являются «наилучшими из возможных». Все работает нормально, но скачки процессора или различные сбои в сети могут вывести его из строя. Поточная обработка не осуществляется в режиме реального времени и не слишком умна в попытках компенсации.
Примечание. Для Windows используйте сборку «.com», поэтому каждый пример будет называться packagesender.com.
packetsender --rate 20 --name "My Awesome Packet"
packetsender --bps 2000 --name "My Awesome Packet"
packetsender --rate 0 --name "My Awesome Packet"
packetsender --usdelay 2000000 --name "My Awesome Packet"
Единственная зависимость — Qt SDK.
Версии для Windows и Mac были созданы с использованием Qt 5.12. Packet Sender поддерживает Qt 6, но не поддерживает cmake.
Вот последовательность команд для Ubuntu 16.04. Пожалуйста, адаптируйтесь к вашей платформе Linux. Packet Sender не требует дополнительных библиотек, кроме стандартного Qt SDK. Мне сказали, что есть проблемы со сборкой стандартной версии Fedora. Если у мастера Fedora есть идеи, дайте мне знать, и я добавлю ваши инструкции.
Если вы любите приключения, смело стройте из основной ветки. Он содержит последнюю стабильную сборку. Вероятно, следует избегать ветки разработки.
sudo apt-get update
sudo apt-get install qt5-default build-essential
wget https://github.com/dannagle/PacketSender/archive/(Version).tar.gz
tar -xzvf (Version).tar.gz
cd PacketSender-(Version)/src
qmake PacketSender.pro
make
Для запуска используйте:
./PacketSender
Если он не запускается, возможно, вам придется установить его исполняемый файл.
chmod a+x PacketSender
Не хватает функции? Вы можете нанять меня, чтобы добавить его в Packet Sender.
Лицензия — GPL v2 или более поздняя версия. Свяжитесь со мной, если вам нужна другая лицензия. Некоторые дистрибутивы Packet Sender могут использовать OpenSSL. Самую последнюю версию VPAT можно найти в этом репозитории.
Packet Sender был написан Дэном Нэглом и опубликован © NagleCode, LLC – @NagleCode – PacketSender.com