How to generate UDP packet

22

9

I want to generate UDP packet to test a program, something equivalent to using telnet to test TCP port (Can telnet generate UDP packet?)

How can I do this?

Don Ch

Posted 2010-03-27T04:19:50.770

Reputation: 4 869

Answers

36

One word: Netcat

Netcat is the go-to tool for this sort of thing.

You can thrash whatever port you choose with UDP packets with something like:

nc -u host.example.com 53 < /dev/random

(53 is your port number)

Or you can send an actual file, or tell it to bind that port and listen as a service, or whatever you like.

Satanicpuppy

Posted 2010-03-27T04:19:50.770

Reputation: 6 169

17

If you want to merely send one UDP packet with some specified data, as opposed to Satanicpuppy's answer which continuously sends random data, you can do:

echo "foo" | nc -w1 -u 111.22.333.4 20000

jamis

Posted 2010-03-27T04:19:50.770

Reputation: 171

For some reason, it sends a few "X" packets before sending "foo". Using /dev/udp avoid this. – OrangeDog – 2017-07-21T16:14:42.983

5

This one is good if you are trying to work with large packets. netcat uses 1024 bytes in UDP mode.

nping --udp -p 2090 111.22.333.4 --data-length 1550

UDP mode, to port 2090 at address, with a packet length of 1550 bytes.

This is from the nmap package, or is sometimes packaged as nping separately.

Further info is at https://nmap.org/book/nping-man-general-operation.html

Criggie

Posted 2010-03-27T04:19:50.770

Reputation: 985

4

If you're using Bash, you can use its /dev/udp virtual filesystem, like this:

echo -n "hello" >/dev/udp/localhost/8000

Shamelessly re-used from this answer to "How to send only one UDP packet with netcat?"

jacknad

Posted 2010-03-27T04:19:50.770

Reputation: 141

-1

You can always use UDP terminal programs. Most of them can also send/receive TCP also. For example Docklight scripting terminal has that possibility. And then you send data same way as you would send it to serial port..

User

Posted 2010-03-27T04:19:50.770

Reputation: 1