===== Curated practical uses for socat, a whole TCP/UDP/UNIXSOCK relay tool =====
\\
==== 1. Connect a remote mysql UNIX socket to the localhost ====
# 192.168.100.5 => remote mysql server
# anyIPreachable => your host
# first, on remote server, run
socat TCP-LISTEN:3307,reuseaddr,fork UNIX-CONNECT:/var/lib/mysql/mysql.sock &
# optionally, on your localhost, run an ssh tunnel
# (to add encryption to the communication)
ssh -L 3307:127.0.0.1:3307 192.168.100.5
# then on your localhost, run this:
# (use 127.0.0.1 if ssh tunnel, 192.168.100.5 (the remote server IP) otherwise)
socat UNIX-LISTEN:/var/lib/mysql/mysql.sock,fork,reuseaddr,unlink-early,user=mysql,group=mysql,mode=777 TCP:192.168.100.5:3307 &
## now you can do `mysql` client on localhost and run sql commands :)
\\
==== 2. Create a **simple network-based TCP logging** endpoint ====
socat -u TCP4-LISTEN:3334,reuseaddr,fork OPEN:/tmp/test.log,creat,append &
\\
==== 3. Create a HTTP -> HTTPS proxy for certificate errors when unsupported. ====
# creates an http server at 127.0.0.1:8008 that proxies to https
socat TCP4-LISTEN:8008,reuseaddr,fork openssl:185.93.2.243:443,verify=0
\\
\\
==== Sources: ====
https://www.redhat.com/sysadmin/getting-started-socat