HowTo: Linux Serial Port Sniffer

htt‮‬ps://www.lautturi.com
HowTo: Linux Serial Port Sniffer

To create a serial port sniffer in Linux, you can use the socat utility, which is a command-line tool for creating and manipulating network connections.

To use socat to sniff a serial port, you will need to specify the serial port device file (e.g., /dev/ttyS0) as the input source, and a file or network connection as the output destination.

For example, to create a serial port sniffer that captures data from the /dev/ttyS0 serial port and writes it to a file named sniffer.log, you can use the following command:

socat /dev/ttyS0,raw,echo=0,baud=9600,crnl file:sniffer.log

This will create a socat command that reads data from the /dev/ttyS0 serial port, with raw input and output, no echoing of input, a baud rate of 9600, and automatic translation of newlines to carriage return-newline sequences. The data will be written to the sniffer.log file as it is received.

To sniff the serial port and send the data over a network connection instead of writing it to a file, you can use the tcp-listen or udp-listen options to create a network server, and then connect to that server using a client program.

For example, to create a serial port sniffer that listens for incoming TCP connections on port 12345 and sends data received from the /dev/ttyS0 serial port to connected clients, you can use the following command:

socat /dev/ttyS0,raw,echo=0,baud=9600,crnl tcp-listen:12345

To connect to this server and receive data from the serial port, you can use a client program such as nc (the netcat utility) or telnet, like this:

nc localhost 12345

For more information about the socat utility and its options, you can refer to the socat man page or search online for tutorials and examples.

Created Time:2017-10-29 22:08:44  Author:lautturi