Lea esto en otros idiomas: English, Español, Deutsch, Français.
Packet Sender es una utilidad de código abierto que permite enviar y recibir paquetes TCP, UDP y SSL (TCP cifrado), así como solicitudes HTTP/HTTPS y generación de paneles. La rama principal es oficialmente compatible con Windows, Mac y Desktop Linux (con Qt). Otros lugares pueden recompilar y redistribuir Packet Sender. Packet Sender es gratuito y tiene licencia GPL v2 o posterior. Se puede utilizar tanto para uso comercial como personal. Si encuentra útil la aplicación, considere donar o patrocinar para que el desarrollo pueda continuar.
Patrocinadores
GUI
Generador de tráfico intenso (GUI)
Red
Descargas
Apoyo
Calculadora de subred IPv4
Wake-On-LAN/paquete mágico
Nube del remitente de paquetes
Modo portátil
Macros y respuestas inteligentes
TCP y SSL persistentes
Solicitudes HTTP/HTTPS
Generador de paneles
Interfaz de línea de comando
Generador de tráfico intenso (CLI)
Remitente de paquetes de construcción
Packet Sender desea agradecer a los siguientes patrocinadores.
IWL es una empresa de California que crea productos de redes informáticas.
NagleCode es un editor y estudio de desarrollo de software.
Eletiope instala iluminación, audiovisuales y salas inmersivas para exposiciones y museos, y para showrooms corporativos.
¿Le gustaría que su nombre/logotipo aparezca aquí?
NOTA: Intente (temporalmente) desactivar su firewall si tiene problemas en Windows.
Las versiones oficiales de Packet Sender se pueden descargar en PacketSender.com. Algunos lugares redistribuyen Packet Sender.
Packet Sender es idéntico para todas las versiones de escritorio. La única diferencia es su tema para que coincida con el sistema operativo.
Se puede navegar por los campos en la parte superior usando CTRL+1, CTRL+2, etc., hasta CTRL+8 (botón enviar). En Mac, la tecla de acceso directo es Comando.
Las teclas de acceso rápido y los campos son:
Algunas notas:
De forma predeterminada, Packet Sender se inicia con servidores UDP, TCP y SSL habilitados en puertos aleatorios (que se muestran como botones en la parte inferior derecha). Puede vincularse a cualquier número de puertos (si el sistema operativo lo permite), utilizando números de puerto separados por comas. Por ejemplo, 0, 1000, 2000
se vincularán a "aleatorio" y a los puertos 1000, 2000.
El botón UDP ahora muestra 3 puertos vinculados. 1 de ellos es aleatorio.
La otra configuración es responder a todas las solicitudes con una respuesta. También puedes hacer que esta solicitud sea una macro. Hay un campo para escribir la respuesta (o cargar un paquete guardado).
De forma predeterminada, Packet Sender se vincula a cualquier dirección IPv4. En esta área de la configuración, puede hacer que se vincule a cualquier IPv6 o a una dirección IP específica.
Vincularse a una dirección específica es muy útil cuando hay varias NIC y desea forzar la comunicación (como paquetes de transmisión) a una específica.
Algunos protocolos esperan que el servidor envíe datos antes de que los envíe el cliente (como muchos servicios telnet). Este flujo de trabajo se puede habilitar con "Recibir antes de enviar".
Si tiene un dispositivo lento (como un servidor integrado con un procesador débil), es posible que desee habilitar el "retraso de 500 ms después de la conexión". Esto permitirá que el servidor lento inicie su controlador.
Los servidores integrados de Packet Sender están configurados para admitir IPv4 o IPv6, pero no ambos al mismo tiempo. Para los clientes, la GUI y la CLI de Packet Sender cambiarán sin problemas entre los dos modos al enviar (es posible que se necesite una ID de alcance para IPv6). Haga clic en el interruptor IPv4 / IPv6 en la parte inferior derecha para cambiar entre los dos.
Dentro de la configuración, también puede forzar a los servidores de Packet Sender a vincularse a una dirección IP personalizada. Esto puede resultar muy útil para sistemas con varias NIC o configuraciones de IP complicadas. Packet Sender activará un error si se le indica que se vincule a una dirección que no existe.
Packet Sender tiene una calculadora de subred incorporada. Está en el menú Herramientas.
Wake-On-LAN (o WOL) es un protocolo que le indica a las computadoras que se despierten del modo de suspensión. Se activa mediante un paquete de difusión con datos especiales basados en la dirección MAC del objetivo. Para más información, echa un vistazo a Wikipedia.
Packet Sender tiene un generador WOL incorporado. Está en el menú Herramientas.
Complete las opciones y la GUI principal se completará con los datos correctos para el formato WOL.
También hay opciones CLI para ayudar a generar y enviar paquetes 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 admite el establecimiento de conexiones cifradas a través de SSL. Esto se admite en la GUI y en la línea de comando.
Packet Sender incluye OpenSSL para su uso en Windows. En Mac y Linux, Packet Sender utilizará las bibliotecas SSL nativas.
Notas SSL:
Packet Sender incluye un certificado interno "Snake Oil" para usarlo como servidor para Windows. El certificado y la clave están en el mismo lugar que el paquete y la configuración.
Nota: Al anular las ubicaciones de los certificados en Configuración también se anula el certificado de aceite de serpiente.
Si hay un error de SSL, Packet Sender lo enviará al registro de tráfico. Si la configuración continúa de todos modos (predeterminada), continuará negociando el cifrado. De lo contrario, la conexión finaliza sin poder conectarse.
La compatibilidad con multidifusión de Packet Sender se activa al intentar enviar a una dirección de multidifusión IPv4 o desde el submenú de multidifusión. La característica es actualmente experimental y tiene estos problemas conocidos.
No hay soporte para multidifusión IPv6, aunque está en la hoja de ruta. Los patrocinadores que deseen compatibilidad con multidifusión IPv6 pueden ponerse en contacto conmigo.
Para cuando el sistema de envío normal no sea suficiente, puede martillar una IP de destino con paquetes para ver si su dispositivo puede manejarlo. Esto se puede encontrar en la barra de herramientas de la GUI en Herramientas -> Generador de tráfico intenso
Tenga en cuenta que esta función es experimental y las métricas mostradas no se han probado por completo. Para una prueba más precisa, es posible que desee consultar la versión CLI de esta herramienta.
Los conjuntos de paquetes se pueden guardar/recuperar/compartir rápidamente utilizando el servicio gratuito Packet Sender Cloud. La nube también se puede utilizar para mostrar y distribuir públicamente sus paquetes (a través de una URL) para colaboración, tutoriales, usuarios finales, etc. Packet Sender puede importar conjuntos de paquetes públicos con una URL pública.
Hay varias razones para hacer esto:
Si está publicando una API de red, mantener una página de nube pública es mucho más fácil que detallar minuciosamente (IP, puerto, tipo, etc.) los paquetes a sus usuarios. Además, actualizar esa página es fácil.
Puede encontrar más información al respecto en https://cloud.packetsender.com/help
Packet Sender tiene un modo "portátil". En el lanzamiento, buscará portablemode.txt
y completará los archivos de configuración que falten en ese directorio de tiempo de ejecución. Estos archivos son packets.ini
, ps_settings.ini
, ps.key
y ps.pem
. También puede tener algunos archivos portátiles y otros en su ubicación estándar eliminando portablemode.txt.
Si no necesita la GUI, puede eliminar estos DDL
Tenga en cuenta que las DLL con caracteres +
en sus nombres pueden causar problemas con la copia de la línea de comandos de Windows si no las rodea con "
.
Si no necesita SSL, puede eliminar estos DDL
El directorio de tiempo de ejecución de los usuarios de Windows es el mismo lugar que el .exe.
Para usuarios de MAC, este directorio de tiempo de ejecución se encuentra en PacketSender.app/Contents/MacOS
. Si se encuentran archivos INI, los usará en lugar de %APPDATA%
o Library/Application Support
.
Packet Sender admite hasta 5 respuestas inteligentes.
Para habilitar esta función, vaya a Archivo -> Configuración en la barra de herramientas de la GUI. Vaya a la pestaña Respuestas inteligentes y active la casilla de verificación Enviar una respuesta inteligente .
Packet Sender admite estas macros al enviar respuestas:
Packet Sender admite conexiones TCP y SSL persistentes a través de una ventana GUI separada. Se habilita mediante una casilla de verificación en la ventana principal o mediante la ventana de Configuración.
Las conexiones persistentes no se admiten a través de la línea de comando.
Packet Sender admite el envío de solicitudes POST/GET a través de HTTP y HTTPS. El menú desplegable de protocolo incluye las siguientes opciones: HTTP GET, HTTP POST, HTTPS GET, HTTPS POST. Al seleccionar HTTP(S), los campos de entrada se actualizarán a: Nombre, Solicitud, Dirección, Datos (cuando se selecciona POST), botón Generar datos (cuando se selecciona POST), Cargar archivo (cuando se selecciona POST).
También puede pegar una URL completa en el campo Solicitud y Packet Sender analizará y completará automáticamente los demás campos.
Packet Sender admite la generación de paneles de control. Los paneles constan de botones con scripts (paquetes) asignados. Al hacer clic en el botón se ejecutarán los paquetes a los que se hace referencia en ese botón.
Los paneles se pueden crear de dos maneras:
Packet Sender admite el inicio en modo de solo panel con el panel de inicio usando la opción de línea de comando --starterpanel
Para comenzar a crear secuencias de comandos para los botones de su panel, deberá abrir un panel e ir a la pantalla de Edición. Una vez que se abre un proyecto de panel, marque el botón en la esquina inferior derecha. Si este botón dice "Visualización", se encuentra en la pantalla de visualización. Haga clic en el botón para mover el panel a la pantalla de Edición.
Una vez en la pantalla de Edición, se pueden agregar botones y scripts al panel.
Los scripts de los botones contendrán el nombre del paquete que se enviará.
Se pueden configurar varios paquetes en un botón agregando cada nombre en una nueva línea.
Panel Generator admite agregar un retraso entre varios paquetes agregando "retraso: número de segundos " entre paquetes.
Panel Generator admite la adición de un script para cargar un nuevo panel agregando "panel: panel id # ". Una vez que se ejecuten todos los scripts anteriores en el botón, el Panel pasará al siguiente panel.
Panel Generator admite la adición de botones que enlazan a archivos o URL almacenados localmente. Los botones de archivo/URL se pueden agregar mientras se está en la pantalla de edición haciendo clic en + en la esquina inferior derecha.
Una vez copiado el archivo o la URL, se le pedirá que ingrese un nombre para el botón. Los botones aparecerán en la parte inferior del panel.
Mientras está en la pantalla de Edición, hacer clic en estos botones le permitirá editar el archivo/enlace URL y el nombre del botón. También puede eliminar el botón haciendo clic en la X en la ventana emergente.
Cuando esté en la pantalla de visualización, al hacer clic en estos botones se iniciará la URL en el navegador predeterminado o se abrirá el archivo (con el programa predeterminado para el tipo de archivo).
Mientras esté en la pantalla de Edición de un Panel, habrá una barra de herramientas con los menús Archivo, Exportar, Configuración, Ayuda. Puede guardar, exportar, importar, cargar proyectos de panel y editar el proyecto de panel actual desde esta barra de herramientas.
Desde Configuración, puede hacer lo siguiente:
Por ahora, DTLS sólo es compatible con la GUI de Windows. Otros sistemas operativos pueden habilitar DTLS compilando desde el código fuente usando Qt6.
Este repositorio contiene una función de protocolo DTLS (Datagram Transport Layer Security). Esta característica ha agregado una interfaz gráfica para configurar y administrar conexiones DTLS, incluida la verificación del servidor y las opciones de persistencia de la sesión.
Olfateando por Wireshark:
Packet Sender se puede utilizar desde la línea de comando de su computadora.
Para Windows, utilice la extensión .com ( packetsender.com
) para utilizar la interfaz de línea de comandos. Opcionalmente, también puedes utilizar packetsender
sin una extensión. El uso de la extensión .exe iniciará la GUI.
Para Linux, el sistema de línea de comandos en Packet Sender sigue el mismo patrón que otras utilidades de Linux. Tiene un nombre largo (como --version) y un nombre corto (como -v). Estas opciones se pueden organizar en cualquier orden y Packet Sender las analizará correctamente. Las últimas 3 opciones son posicionales y deben aparecer al final. Son IP, puerto y datos. Estas últimas opciones son opcionales si se utiliza un paquete almacenado.
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.
La CLI sigue el mismo formato entre Windows, Linux y MAC.
El formato es: 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...
Utilice las opciones de enlace existentes para configurar el servidor.
Vinculación al puerto dinámico usando 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
Vinculación al puerto 8080 usando 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
Enlace al puerto 8080 usando UDP con respuesta de tiempo actual
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
Enlace a IP 192.168.86.26, puerto 54321 mediante 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
La línea de comando de Packet Sender puede vincularse a puertos personalizados para forzar modos IPv4/6 o múltiples NIC usando la opción -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"
La línea de comando tiene la opción de ignorar o abandonar los errores de SSL. El valor predeterminado es ignorar.
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
Tenga en cuenta que esto utiliza los paquetes predeterminados integrados.
packetsender --name "HTTPS POST Params"
packetsender --http GET "https://httpbin.org/get"
packetsender --http POST "https://httpbin.org/post" "{}"
El generador de tráfico intenso de comandos funciona de manera muy similar a la versión GUI, pero es un poco más preciso, con más opciones de control (¡y más intensidad!).
Vea a continuación ejemplos de cómo usarlo. Tenga en cuenta que estos cálculos son "Mejor esfuerzo". Funciona bien, pero los picos del procesador o varios problemas de red pueden alterarlo. El subproceso no es en tiempo real y no es muy inteligente en sus intentos de compensar.
Nota: Para Windows, use la compilación ".com", por lo que cada ejemplo sería paquetes remitente.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"
La única dependencia es Qt SDK
Las versiones de Windows y Mac se crearon con Qt 5.12. Packet Sender es compatible con Qt 6, sin embargo, no es compatible con cmake.
Aquí está la secuencia de comandos para Ubuntu 16.04. Adáptese a su plataforma Linux. Packet Sender no requiere bibliotecas adicionales más allá del Qt SDK original. Me han dicho que hay problemas de compilación con el stock de Fedora. Si un asistente de Fedora tiene alguna idea, hágamelo saber y agregaré sus instrucciones.
Si te sientes aventurero, siéntete libre de construir desde la rama maestra. Contiene la última versión estable. Probablemente debería evitarse la rama de desarrollo.
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
Para ejecutar use:
./PacketSender
Si no se ejecuta, es posible que deba configurarlo como ejecutable.
chmod a+x PacketSender
¿Falta una característica? Puedes contratarme para agregarlo a Packet Sender.
La licencia es GPL v2 o posterior. Contácteme si necesita una licencia diferente. Algunas distribuciones de Packet Sender pueden utilizar OpenSSL. El VPAT más actualizado se puede encontrar en este repositorio.
Packet Sender fue escrito por Dan Nagle y publicado por © NagleCode, LLC - @NagleCode - PacketSender.com