阅读其他语言版本:英语、西班牙语、德语、法语。
Packet Sender 是一个开源实用程序,允许发送和接收 TCP、UDP 和 SSL(加密 TCP)数据包以及 HTTP/HTTPS 请求和面板生成。主线分支正式支持Windows、Mac和桌面Linux(带有Qt)。其他地方可能会重新编译并重新分发Packet Sender。 Packet Sender 是免费的并获得 GPL v2 或更高版本的许可。它可用于商业和个人用途。如果您发现该应用程序有用,请考虑捐赠/赞助,以便继续开发。
赞助商
图形用户界面
密集流量生成器 (GUI)
网络
下载
支持
IPv4 子网计算器
局域网唤醒 / Magic Packet
数据包发送云
便携模式
宏和智能响应
持久 TCP 和 SSL
HTTP/HTTPS 请求
面板发生器
命令行界面
密集流量生成器 (CLI)
构建数据包发送器
Packet Sender 衷心感谢以下赞助商。
IWL 是一家生产计算机网络产品的加利福尼亚公司。
NagleCode 是一家软件发行商和开发工作室。
Eletiope 为展览、博物馆以及企业展厅安装照明、视听和沉浸式房间。
您想在这里列出您的名字/徽标吗?
注意:如果 Windows 出现问题,请尝试(暂时)禁用防火墙。
Packet Sender 的正式版本可以在 PacketSender.com 下载。有些地方重新分发Packet Sender。
所有桌面版本的数据包发送器都是相同的。唯一的区别是它的主题与操作系统相匹配。
可以使用 CTRL+1、CTRL+2 等,最多 CTRL+8(发送按钮)来导航顶部的字段。在 Mac 上,快捷键是 Command。
热键和字段是:
一些注意事项:
默认情况下,Packet Sender 启动时会在随机端口上启用 UDP、TCP 和 SSL 服务器(显示为右下角的按钮)。您可以使用逗号分隔的端口号绑定到任意数量的端口(如果操作系统允许)。例如, 0, 1000, 2000
将绑定到“随机”和端口 1000、2000。
UDP 按钮现在显示 3 个绑定端口。其中 1 个是随机的。
另一个设置是通过回复来响应所有请求。您也可以将此请求设为宏。有一个字段用于输入回复(或加载已保存的数据包)。
默认情况下,数据包发送方绑定到任何 IPv4 地址。在此设置区域中,您可以将其绑定到任何 IPv6,或绑定到特定的 IP 地址。
当有多个 NIC 并且您想要强制从特定的 NIC 进行通信(如广播数据包)时,绑定到特定地址非常有用。
某些协议期望服务器在客户端发送数据之前发送数据(例如许多 telnet 服务)。可以通过“发送前接收”启用此工作流程。
如果您的设备速度较慢(例如处理器较弱的嵌入式服务器),您可能希望启用“连接后延迟 500 毫秒”。这将允许缓慢的服务器有时间启动其处理程序。
Packet Sender 的内置服务器配置为支持 IPv4 或 IPv6,但不能同时支持两者。对于客户端,数据包发送器 GUI 和 CLI 将在发送时在两种模式之间无缝切换(IPv6 可能需要范围 ID)。单击右下角的 IPv4/IPv6 切换按钮可在两者之间切换。
在设置中,您还可以强制数据包发送器的服务器绑定到自定义 IP 地址。这对于具有多个 NIC 或复杂 IP 设置的系统非常有用。如果告诉数据包发送方绑定到不存在的地址,则会触发错误。
Packet Sender 有一个内置的子网计算器。它位于“工具”菜单下。
LAN 唤醒(或 WOL)是一种告诉计算机从睡眠状态唤醒的协议。它由带有基于目标 MAC 地址的特殊数据的广播数据包触发。欲了解更多信息,请查看维基百科。
数据包发送器有一个内置的 WOL 生成器。它位于“工具”菜单下。
填写选项,主 GUI 将填充 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 建立加密连接。 GUI 和命令行均支持此功能。
Packet Sender 捆绑 OpenSSL 以在 Windows 中使用。在 Mac 和 Linux 上,Packet Sender 将使用本机 SSL 库。
SSL 注意事项:
Packet Sender 捆绑了一个内部“万金油”证书,用作 Windows 服务器。证书和密钥与数据包和设置位于同一位置。
注意:覆盖“设置”中的证书位置也会覆盖万金油证书。
如果存在 SSL 错误,Packet Sender 会将其输出到流量日志中。如果设置无论如何都要继续(默认),它将继续协商加密。否则,连接会以连接失败而结束。
数据包发送器的多播支持是通过尝试发送到 IPv4 多播地址或从多播子菜单触发的。该功能目前处于实验阶段,存在这些已知问题。
尽管已在路线图上,但不支持 IPv6 多播。欢迎需要 IPv6 多播支持的赞助商与我联系。
当正常的发送系统不够时,你可以用数据包锤击目标IP,看看你的设备是否可以处理它。这可以在 GUI 工具栏中的工具 -> 密集流量生成器中找到
请注意,此功能是实验性的,显示的指标尚未经过充分测试。为了进行更准确的测试,您可能需要查看此工具的 CLI 版本。
使用免费的数据包发送者云服务可以快速保存/检索/共享数据包集。云还可以用于公开显示和分发您的数据包(通过 URL)以进行协作、教程、最终用户等。数据包发送方可以导入具有公共 URL 的公共数据包集。
这样做有多种原因:
如果您要发布网络 API,维护公共云页面比痛苦地向用户详细说明数据包(IP、端口、类型等)要容易得多。另外,更新该页面很容易。
有关它的更多信息,请访问 https://cloud.packetsender.com/help
数据包发送器具有“便携式”模式。启动时,它将查找portablemode.txt
并填充该运行时目录中任何丢失的设置文件。这些文件是packets.ini
、 ps_settings.ini
、 ps.key
和ps.pem
。通过删除 portablemode.txt,您还可以使一些文件可移植,而其他文件则位于其标准位置。
如果您不需要 GUI,则可以删除这些 DDL
请注意,如果名称中带有+
字符的 DLL 没有用"
括起来,则可能会导致 Windows 命令行复制出现问题。
如果您不需要 SSL,则可以删除这些 DDL
Windows用户的运行时目录与.exe位于同一位置。
对于 MAC 用户,此运行时目录位于PacketSender.app/Contents/MacOS
。如果找到 INI 文件,它将使用它们而不是%APPDATA%
或Library/Application Support
。
Packet Sender 最多支持 5 个智能响应。
要启用此功能,请转至 GUI 工具栏上的“文件”->“设置” 。转到“智能响应”选项卡并启用“发送智能响应”复选框。
Packet Sender 在发送响应时支持这些宏:
Packet Sender 通过单独的 GUI 窗口支持持久 TCP 和 SSL 连接。它可以通过主窗口上的复选框或通过“设置”窗口启用。
不支持通过命令行进行持久连接。
Packet Sender 支持通过 HTTP 和 HTTPS 发送 POST/GET 请求。协议下拉列表包括以下选项:HTTP GET、HTTP POST、HTTPS GET、HTTPS POST。选择 HTTP(S) 时,输入字段将更新为:名称、请求、地址、数据(选择 POST 时)、生成数据按钮(选择 POST 时)、加载文件(选择 POST 时)。
您还可以在“请求”字段中粘贴完整的 URL,数据包发送器将解析并自动填充其他字段。
Packet Sender 支持生成控制面板。面板由分配有脚本(数据包)的按钮组成。单击该按钮将执行该按钮上引用的数据包。
可以通过以下两种方式之一创建面板:
Packet Sender 支持使用命令行选项--starterpanel
在仅面板模式下启动启动面板
要开始为面板上的按钮编写脚本,您需要打开面板并转到编辑屏幕。打开面板项目后,检查右下角的按钮。如果此按钮显示“正在查看”,则您位于“正在查看”屏幕。单击按钮将面板移至编辑屏幕。
进入编辑屏幕后,可以将按钮和脚本添加到面板中。
按钮脚本将包含要发送的数据包的名称。
通过在新行中添加每个名称,可以将多个数据包设置为一个按钮。
面板生成器支持通过在数据包之间添加“延迟:秒数”来在多个数据包之间添加延迟。
面板生成器支持添加脚本来通过添加“panel: panel id # ”来加载新面板。执行按钮上的所有先前脚本后,面板将转换到下一个面板。
面板生成器支持添加链接到本地存储的文件或 URL 的按钮。在编辑屏幕中,可以通过单击右下角的+添加文件/URL 按钮。
复制文件或 URL 后,系统将提示您输入按钮的名称。按钮将填充在面板底部。
在编辑屏幕上,单击这些按钮将允许您编辑文件/URL 链接和按钮名称。您还可以通过单击弹出窗口上的X来删除该按钮。
在“查看”屏幕上时,单击这些按钮将在默认浏览器中启动 URL 或打开文件(使用该文件类型的默认程序)。
在面板的编辑屏幕中,将有一个工具栏,其中包含文件、导出、设置、帮助菜单。您可以从此工具栏保存、导出、导入、加载面板项目以及编辑当前面板项目。
从“设置”中,您可以执行以下操作:
目前,DTLS 仅在 Windows 的 GUI 中受支持。其他操作系统可以通过使用 Qt6 从源代码编译来启用 DTLS。
该存储库包含 DTLS(数据报传输层安全)协议功能。此功能添加了图形界面来配置和管理 DTLS 连接,包括服务器验证和会话持久选项。
通过 Wireshark 嗅探:
可以从计算机上的命令行使用数据包发送器。
对于 Windows,请使用扩展名 .com ( packetsender.com
) 来使用命令行界面。或者,您也可以使用不带扩展名的packetsender
。使用扩展名 .exe 将启动 GUI。
对于 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.
Windows、Linux 和 MAC 之间的 CLI 遵循相同的格式。
格式为: 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
使用UDP绑定到端口8080
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
使用带有当前时间响应的 UDP 绑定到端口 8080
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
使用SSL绑定到IP 192.168.86.26,端口54321
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 命令行可以使用 -B 选项绑定到自定义端口以强制使用 IPv4/6 模式或多个 NIC。
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" "{}"
命令密集流量生成器的工作方式与 GUI 版本大致相同,但它更准确,具有更多控制选项(并且强度更高!)。
请参阅下面的示例了解如何使用它。请注意,这些计算是“尽力而为”的。它表现不错,但处理器峰值或各种网络故障可能会导致它无法运行。线程不是实时的,并且在尝试补偿时也不是超级智能的。
注意:对于 Windows,请使用“.com”版本,因此每个示例均为 packetender.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平台。除了现有的 Qt SDK 之外,Packet Sender 不需要其他库。我被告知库存 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 由 Dan Nagle 编写,并由 © NagleCode, LLC - @NagleCode - PacketSender.com 发布