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 encriptado), así como peticiones HTTP/HTTPS y generación de paneles. La rama mainline soporta oficialmente Windows, Mac y Linux de escritorio (con Qt). Otros lugares pueden recompilar y redistribuir Packet Sender. Packet Sender es gratuito y tiene licencia GPL v2 o posterior. Puede utilizarse tanto para uso comercial como personal. Si encuentra útil la aplicación, por favor considere donar/patrocinar para que el desarrollo pueda continuar.
Packet Sender quiere dar las gracias a los siguientes patrocinadores.
IWL es una empresa californiana que crea productos para redes informáticas.
NagleCode es un editor de software y estudio de desarrollo.
¿Desea que su nombre/logo aparezca aquí?
NOTA: Pruebe a desactivar (temporalmente) su cortafuegos si tiene problemas en Windows.
Las versiones oficiales de Packet Sender pueden descargarse en PacketSender.com. Algunos sitios redistribuyen Packet Sender.
Packet Sender es idéntico para todas las versiones de escritorio. La única diferencia es su diseño para que coincida con el sistema operativo.
Puede navegar por los campos de la parte superior utilizando CTRL+1, CTRL+2, etc, hasta CTRL+8 (botón de envío). En Mac, la tecla de acceso directo es Comando.
Las teclas de acceso directo y los campos son:
Algunas notas:
Los servidores incorporados de Packet Sender están configurados para soportar IPv4 o IPv6 pero no ambos al mismo tiempo. Para los clientes, la GUI y CLI de Packet Sender cambiarán sin problemas entre los dos modos en el momento del envío (el scope ID puede ser necesario para IPv6). Pulse el switch 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 enlazarse a una dirección IP personalizada. Esto puede ser muy útil para sistemas con múltiples NICs o configuraciones IP complicadas. Packet Sender provocará un error si se le indica que se vincule a una dirección que no existe.
Packet Sender tiene una calculadora de subredes incorporada. Se encuentra en el menú Herramientas.
Packet Sender soporta el establecimiento de conexiones encriptadas sobre SSL. Esto es soportado en la GUI y en la línea de comandos.
Packet Sender incluye OpenSSL para su uso en Windows. En Mac y Linux, Packet Sender utilizará las librerías SSL nativas.
Este producto incluye software desarrollado por el Proyecto OpenSSL para su uso en el OpenSSL Toolkit. (http://www.openssl.org/)
Notas sobre SSL:
Packet Sender incluye un certificado interno "Snake Oil" para su uso como servidor para Windows. El certificado y la clave se encuentran en el mismo lugar que el paquete y la configuración.
Nota: Anular las ubicaciones del certitifcado en Ajustes también anula el certificado Snake-Oil.
Si se produce un error SSL, Packet Sender lo mostrará en el registro de tráfico. Si la configuración es continuar de todas formas (por defecto), continuará negociando la encriptación. En caso contrario, la conexión finalizará con un fallo de conexión.
El soporte multidifusión de Packet Sender se activa al intentar enviar a una dirección multidifusión IPv4 o desde el submenú 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 soporte para multidifusión IPv6 pueden contactarme.
Para cuando el sistema de envío normal no es suficiente, puede martillear una IP objetivo con paquetes para ver si su dispositivo puede manejarlo. Puede encontrarlo 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 que las métricas mostradas no se han probado completamente. Para una prueba más precisa, puede que desee consultar la versión CLI de esta herramienta.
Los conjuntos de paquetes pueden guardarse/recuperarse/compartirse rápidamente utilizando el servicio gratuito Packet Sender Cloud. La nube también puede utilizarse 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 pública de la nube es significativamente más fácil que detallar penosamente (IP, puerto, tipo, etc.) los paquetes a sus usuarios. Además, actualizar esa página es fácil.
Encontrará más información al respecto en https://cloud.packetsender.com/help
Packet Sender tiene un modo "portable". Al iniciarse, buscará portablemode.txt
y rellenará los archivos de configuración que falten en ese directorio de ejecución. Estos archivos son packets.ini
, ps_settings.ini
, ps.key
, y ps.pem
.
También puede tener algunos archivos portables y los demás en su ubicación estándar eliminando portablemode.txt.
Si no necesita la GUI, puede eliminar estos DDLs
Si no necesita SSL, puede eliminar estas DDL
El directorio de tiempo de ejecución usuarios de Windows es el mismo lugar que el .exe.
Para los usuarios de MAC, este directorio de tiempo de ejecución está en PacketSender.app/Contents/MacOS
.
Si se encuentran archivos INI, los utilizará en lugar de %APPDATA%
o Library/Application Support
.
Packet Sender soporta hasta 5 respuestas inteligentes.
Para activar 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 Enviar una respuesta inteligente.
Packet Sender soporta estas macros cuando envía respuestas:
Packet Sender soporta conexiones TCP y SSL persistentes a través de una ventana GUI separada. Se activa mediante una casilla de verificación en la ventana principal o a través de la ventana de Configuración.
Las conexiones persistentes no son compatibles a través de la línea de comandos.
Packet Sender admite el envío de solicitudes POST/GET a través de HTTP y HTTPS. El desplegable de protocolo incluye las siguientes opciones: HTTP GET, HTTP POST, HTTPS GET, HTTPS POST. Al seleccionar HTTP(S), los campos de entrada udpatearán a: Nombre, Solicitud, Dirección, Datos (cuando se selecciona POST), Botón Generar Datos (cuando se selecciona POST), Cargar Fichero (cuando se selecciona POST).
También puede pegar una URL completa en el campo Solicitud y Packet Sender analizará y rellenará automáticamente los demás campos.
Packet Sender soporta la generación de paneles de control. Los paneles consisten en botones con scripts (paquetes) asignados a ellos. Al hacer clic en el botón se ejecutará el paquete o paquetes referenciados en ese botón.
Los paneles pueden crearse de dos maneras:
Packet Sender admite el inicio en modo solo panel con el panel de inicio usando la opción de línea de comando --starterpanel
Para empezar a scriptear los botones de su panel, necesitará abrir un panel e ir a la pantalla de Edición. Una vez abierto el proyecto de un panel, compruebe el botón de la esquina inferior derecha. Si este botón dice "Visualización", se encuentra en la pantalla Visualización. Pulse el botón para pasar el panel a la pantalla de Edición.
Una vez en la pantalla de Edición, se pueden añadir botones y scripts al panel.
Los scripts de los botones contendrán el nombre del paquete a enviar.
Se pueden asignar varios paquetes a un botón añadiendo cada nombre en una nueva línea.
El generador de paneles permite añadir un retardo entre varios paquetes añadiendo "retardo:# de segundos" entre paquete y paquete.
El generador de paneles admite la adición de un script para cargar un nuevo panel añadiendo "panel:panel id #". Una vez ejecutados todos los scripts anteriores del botón, el Panel pasará al siguiente panel.
El Generador de paneles admite la adición de botones que enlazan con archivos o URL almacenados localmente. Los botones de archivo/URL pueden añadirse mientras se está en la pantalla de edición haciendo clic en el + de la esquina inferior derecha.
Una vez copiado el archivo o la URL, se le pedirá que introduzca un nombre para el botón. Los botones aparecerán en la parte inferior del panel.
Mientras se encuentre en la pantalla de edición, al hacer clic en estos botones podrá editar el enlace del archivo/URL y el nombre del botón. También puede eliminar el botón haciendo clic en la X de la ventana emergente.
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. Desde esta barra de herramientas puede guardar, exportar, importar, cargar proyectos de paneles y editar el proyecto del panel actual.
Desde Ajustes, puede hacer lo siguiente:
Packet Sender puede utilizarse desde la línea de comandos de su ordenador.
Para Windows, utilice la extensión .com (packetsender.com
) para utilizar la interfaz de la línea de comandos. Opcionalmente, también puede utilizar packetsender
sin extensión. Si utiliza la extensión .exe iniciará la interfaz gráfica de usuario.
Para Linux, el sistema de línea de comandos de 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 pueden disponerse en cualquier orden y Packet Sender las analizará correctamente. Las 3 últimas opciones son posicionales y deben aparecer en último lugar. Son IP, puerto y datos. Estas últimas opciones son opcionales si se utiliza un paquete almacenado.
packetsender --help
Packet Sender es una utilidad de prueba de red UDP/TCP/SSL/HTTP de NagleCode.
Consulte https://PacketSender.com/ para más información.
Opciones:
-?, -h, --help Muestra ayuda sobre las opciones de la línea de comandos.
--help-all Muestra la ayuda incluyendo opciones específicas de Qt.
-v, --version Muestra información sobre la versión.
-q, --quiet Modo silencioso. Sólo muestra los datos recibidos.
-x, --hex Analiza los datos a enviar como hexadecimales (por defecto para
TCP/UDP/SSL).
-a, --ascii Analiza los datos a enviar en formato mixto-ascii (por defecto para http
y GUI).
-A, --ASCII Analiza los datos a enviar como ascii puro (sin
traducción \xx).
-w, --wait <ms> Se esperará hasta <millisegundos> para una respuesta después del
envío. Un valor de cero significa sn espera (Por defecto).
-f, --file <path> Enviar el contenido de la ruta especificada. Máximo 10 MiB para
UDP, 100 MiB para TCP/SSL.
-b, --bind <port> Vincular puerto. Por defecto es 0 (dinámico).
-6, --ipv6 Forzar IPv6. Igual que -B "::". Por defecto es IP:Any.
-4, --ipv4 Forzar IPv4. Igual que -B "0.0.0.0". Por defecto es IP:Any.
-B, --bindip <IP> Enlazar IP personalizada. Por defecto es IP:Any.
-t, --tcp Enviar TCP (por defecto).
-s, --ssl Enviar SSL e ignorar errores.
-S, --SSL Enviar SSL y parar por errores.
-u, --udp Enviar UDP.
--http <http> Enviar HTTP. Los valores permitidos son GET (por defecto) y
POST
-n, --name <name> Enviar el paquete previamente guardado llamado <name>. Otras
opciones anulan los parámetros del paquete guardado.
--bps <bps> Tráfico intenso. Calcula la tasa basándose en el valor de
bits por segundo.
--num <number> Tráfico intenso. Número de paquetes a enviar. Por defecto
ilimitado.
--rate <Hertz> Tráfico intenso. Tasa. Se ignora en la opción bps.
--usdelay <microseconds> Tráfico intenso. Retardo de reenvío. Utilizado si la tasa es 0.
Ignorado en la opción bps.
Argumentos:
address Dirección/URL de destino. Opcional para paquete guardado.
port Puerto de destino/datos POST. Opcional para el paquete
guardado
data Datos a enviar. Opcional para el paquete guardado.
El CLI sigue el mismo formato entre Windows, Linux y MAC.
El formato es packetsender [options] puerto de dirección de datos
packetsender -taw 500 mirrors.xmission.com 21 "USER anonimo\nPASS [email protected]\r\n"
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
Tiempo de respuesta:5:51:37.042 pm
Respuesta HEX:32 32 30 2D 57 65 6C 63 6F 6D 65 20...
Respuesta ASCII:220-Bienvenido a XMission Internet...
La línea de comandos de Packet Sender puede vincularse a puertos personalizados para forzar modos IPv4/6 o múltiples NIC utilizando la opción -B.
packetsender -taw 3000 fe80::c07b:d517:e339:5a08 5005 "Hola\r"
packetsender -taw 3000 192.168.0.201 5005 "Hello\r"
packetsender -B 192.168.0.200 -taw 3000 192.168.0.201 5005 "Hola\r"
packetsender -B fe80::a437:399a:3091:266a%ethernet_32769 -taw 3000 fe80::c07b:d517:e339:5a08 5005 "Hola\r"
packetsender -B fe80::a437:399a:3091:266a -taw 3000 fe80::c07b:d517:e339:5a08 5005 "Hola\r"
La línea de comandos tiene la opción de ignorar o abandonar en los errores SSL. El valor por defecto es ignorar.
packetsender -saw 500 expired.packetsender.com 443 "GET / HTTP/1.0\r\n\r\n"
Error SSL: El certificado ha caducado
SSL (54202)://expired.packetsender.com:443 47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a 0d 0a
Cifrado: Cifrado con AES(128)
Tiempo de respuesta:3:24:55.695 pm
Respuesta 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
Respuesta ASCII:HTTP/1.1 421 \r\nServidor: nginx/1.10.0 (Ubuntu)\r
Tenga en cuenta que esto utiliza los paquetes incorporados por defecto.
packetsender --name "Parámetros POST HTTPS"
packetsender --http GET "https://httpbin.org/get"
packetsender --http POST "https://httpbin.org/post" "{}"
El generador de tráfico intenso por comandos funciona de forma muy parecida 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 utilizarlo. Tenga en cuenta que estos cálculos son "Best Effort". Lo hace bien, pero los picos del procesador o diversos contratiempos de la red pueden echarlo a perder. El threading no es en tiempo real, y no es superinteligente con sus intentos de compensar.
Nota: Para Windows, use la construcción ".com", así que cada ejemplo sería packetsender.com
packetsender --rate 20 --name "Mi impresionante paquete"
packetsender --bps 2000 --name "Mi impresionante paquete"
packetsender --rate 0 --name "Mi impresionante paquete"
packetsender --usdelay 2000000 --name "Mi impresionante paquete"
La única dependencia es Qt SDK
Las versiones para Windows y Mac fueron creadas usando Qt 5.12. Packet Sender soporta Qt 6, sin embargo no soporta cmake.
Esta es la secuencia de comandos para Ubuntu 16.04. Por favor, adáptela a su plataforma Linux. Packet Sender no requiere librerías adicionales más allá del Qt SDK de stock. Me han dicho que hay problemas de compilación con Fedora stock. Si un asistente de Fedora tiene alguna idea, por favor hágamelo saber y añadiré sus instrucciones.
Si se siente aventurero, siéntase libre de realizar la instalación de la Ramificación Maestra. Contiene la última compilación estable. Probablemente debería evitar la rama de desarrollo.
sudo apt-get update
sudo apt-get install qt5-default build-essential
wget https://github.com/dannagle/PacketSender/archive/(Versión).tar.gz
tar -xzvf (Versión).tar.gz
cd PacketSender-(Versión)/src
qmake PacketSender.pro
make
Para ejecutarlo utilice
./PacketSender
Si no se ejecuta, puede que tenga que configurarlo como ejecutable
chmod a+x PacketSender
¿Echa en falta alguna característica? Puede contratarme para que la añada a Packet Sender.
La licencia es GPL v2 o posterior. Póngase en contacto conmigo si necesita una licencia diferente. Algunas distribuciones de Packet Sender pueden utilizar OpenSSL. El VPAT más actual puede encontrarse en este repo.
Packet Sender fue escrito por Dan Nagle y es publicado por © NagleCode, LLC - @NagleCode - PacketSender.com