socat 1.8.0.3

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

Tags netcat network diagnostic server c
License GNU GPLv3
State stable

Recent Releases

1.8.0.323 Feb 2025 19:35 minor feature: Security: readline.sh has new option -lf for stderr. If this option is not given it logs to a file in. (cwd) only when. is not writable by other users. Corrections: display of option phases in help output. filan -s displayed "(stream)" instead of "tcp" with addresses. (regression). a that made ignoreeof fail in 1.8.0.0 and 1.8.0.1; corrected test IGNOREEOF. Thanks to Rusty Bird for the precise problem report. the regression introduced with version 1.8.0.1 that in socks5 addresses the explicit socksport (2nd address parameter) was ignored. Thanks to Jakub FiΕ‘er for reporting this. Do not log simple successful write with NOTICE level. On partial write to not poll with sleep() but use select()/poll(). Partial write situations respect total inactivity timeout when nonblocking. a that could lead to error "xiopoll(...): Bad file descriptor" or to undefined behaviour before terminating Socat with addresses EXEC, SYSTEM, or SHELL. Option ip-add-source-membership did not work. Thanks to Duncan Sands and others for reporting this and sending the. Option ip-add-membership with only two parameters crashed or failed when malloc() does not initialize memory with zeros. Thanks to Nicolas Cavallari for reporting and ing this. The readline() library function does not output the newline of empty input lines. Changed Socat to explicitly print the newline in this case. implementation of options o-creat, o-excl, and o-cloexec with POSIXMQ- addresses. POSIXMQ addresses are no longer experimental. With version 1.8.0.0, and with 1.8.0.1 and option -0, the following command failed: socat UDP-LISTEN:1234,fork,reuseaddr,bind=127.0.0.1 - Message: "E xioopen_ipdgram_listen(): unknown address family 0": Thanks to Brian Woo for reporting this. Test: UDP_LISTEN_BIND4. Protected SSL_connect() from SIGCHLD,SIGUSR1. Nanosleep() trace output now in decimal form. UNIX-LISTEN with bind option terminated with INTERNAL error, this is now handled properly. Test: UNIX_L_BIND. Removed unused by