如何生成UDP数据包

Lyd*_* Ch 25 networking telnet tcpip udp

我想生成UDP包来测试一个程序,相当于用telnet来测试TCP端口(Can telnet generate UDP packet?)

我怎样才能做到这一点?

Sat*_*ppy 39

一个字:网

Netcat 是此类事情的首选工具。

您可以使用 UDP 数据包对您选择的任何端口进行处理,例如:

nc -u host.example.com 53 < /dev/random
Run Code Online (Sandbox Code Playgroud)

(53 是您的端口号)

或者您可以发送一个实际文件,或者告诉它绑定该端口并作为服务进行侦听,或者您喜欢的任何内容。


小智 18

如果您只想发送一个带有某些指定数据的 UDP 数据包,而不是持续发送随机数据的Satanicpuppy 的答案,您可以这样做:

echo "foo" | nc -w1 -u 111.22.333.4 20000
Run Code Online (Sandbox Code Playgroud)


小智 8

如果您使用 Bash,则可以使用其/dev/udp虚拟文件系统,如下所示:

echo -n "hello" >/dev/udp/localhost/8000
Run Code Online (Sandbox Code Playgroud)

无耻地重复使用了“How to send only one UDP packet with netcat?”的答案。


Cri*_*gie 6

如果您尝试处理大数据包,则此方法很好。netcat 在 UDP 模式下使用 1024 字节。

nping --udp -p 2090 111.22.333.4 --data-length 1550
Run Code Online (Sandbox Code Playgroud)

UDP模式,地址为2090端口,包长1550字节。

这是来自 nmap 包,或者有时单独打包为 nping。

更多信息在https://nmap.org/book/nping-man-general-operation.html