descriptionRelay for bidirectional data transfer
homepage URLhttp://www.dest-unreach.org/socat/
ownergerhard@dest-unreach.org
last changeThu, 12 Feb 2026 13:28:50 +0000 (12 14:28 +0100)
content tags
add:
readme
socat is a relay for bidirectional data transfer between two independent data channels. Each of these data channels may be a file, pipe, device (serial line etc. or a pseudo terminal), a socket (UNIX, IP4, IP6 - raw, UDP, TCP), an SSL socket, proxy CONNECT connection, a file descriptor (stdin etc.), the GNU line editor (readline), a program, or a combination of two of these. These modes include generation of "listening" sockets, named pipes, and pseudo terminals. socat can be used, e.g., as TCP port forwarder (one-shot or daemon), as an external socksifier, for attacking weak firewalls, as a shell interface to UNIX sockets, IP6 relay, for redirecting TCP oriented programs to a serial line, to logically connect serial lines on different computers, or to establish a relatively secure environment (su and chroot) for running client or server shell scripts with network connections. Many options are available to refine socats behaviour: terminal parameters, open() options, file permissions, file and process owners, basic socket options like bind address, advanced socket options like IP source routing, linger, TTL, TOS (type of service), or TCP performance tuning. More capabilities, like daemon mode with forking, client address check, "tail -f" mode, some stream data processing (line terminator conversion), choosing sockets, pipes, or ptys for interprocess communication, debug and trace options, logging to syslog, stderr or file, and last but not least precise error messages make it a versatile tool for many different purposes. In fact, many of these features already exist in specialized tools; but until now, there does not seem to exists another tool that provides such a generic, flexible, simple and almost comprehensive (UNIX) byte stream connector.
shortlog
2026-02-12 Gerhard RiegerVersion 1.8.1.1mastertag-1.8.1.1
2026-02-12 Gerhard RiegerA few minor corrections
2026-02-12 Gerhard RiegerFixed a few buffer read overruns
2026-02-12 Gerhard RiegerFixed issue with POSIXMQ in unidirectional context
2026-02-12 Gerhard RiegerAvoid compilation issue in xio-netlink.c with Musl...
2026-02-11 Gerhard RiegerFixed strchr with const for new glibc
2026-02-11 Gerhard RiegerFixed timestamps of -v and -x (really)
2025-12-08 Gerhard RiegerVersion 1.8.1.0tag-1.8.1.0
2025-12-07 Gerhard RiegerBetter doc for -t
2025-12-07 Gerhard RiegerShort forms of openssl-min-proto-version etc.
2025-12-07 Gerhard RiegerEXEC, SHELL, SYSTEM with option symbolic-link
2025-12-07 Gerhard Riegertest.sh: new option -X; combine -N -Z -X
2025-12-07 Gerhard RiegerNew option tiocswinsz (winsz)
2025-12-07 Gerhard RiegerFilan shows more info on dynamic FD states
2025-12-07 Gerhard RiegerFilan: print terminal size; -W for SIGWINCH handling
2025-12-07 Gerhard RiegerTermios combined modes now in new option function ...
...
tags
2 months ago tag-1.8.1.1
4 months ago tag-1.8.1.0
13 months ago tag-1.8.0.3
16 months ago tag-1.8.0.2
19 months ago tag-1.8.0.1
2 years ago tag-1.8.0.0
3 years ago tag-1.7.4.4
4 years ago tag-1.7.4.3
4 years ago tag-1.7.4.2
5 years ago tag-1.7.4.1
5 years ago tag-1.7.4.0
6 years ago tag-1.7.3.4
7 years ago tag-1.7.3.3
9 years ago tag-1.7.3.2
10 years ago tag-2.0.0-b9
10 years ago tag-1.7.3.1
...
heads
2 months ago master
10 years ago socat2
forks
Cached version (2148s old)
socat/cJ-socat-ntox86.git cJ-orcz@zougloub.eu 14 years ago
socat/sam.git Sam's socat patches sam@liddicott.com 16 years ago