27 lines
1.0 KiB
Markdown
27 lines
1.0 KiB
Markdown
---
|
|
title: "socat"
|
|
category: "Networking and remote access"
|
|
tagline: "Connect any two data streams: sockets, ports, files or pipes."
|
|
source: "pacman"
|
|
package: "socat"
|
|
command: "socat"
|
|
website: "http://www.dest-unreach.org/socat/"
|
|
---
|
|
|
|
## What it is
|
|
|
|
socat is a relay: it opens two connections and passes data between them in both directions. Either end can be a TCP or UDP port, a Unix socket, a file, a serial device or a program's input and output, which makes it a general tool for forwarding ports, testing network services and debugging sockets.
|
|
|
|
```
|
|
socat TCP-LISTEN:8080,fork TCP:localhost:3000 # forward port 8080 to 3000
|
|
```
|
|
|
|
## Why it's here
|
|
|
|
- **Glue for networking.** Forward a port, expose a Unix socket over TCP, or the reverse.
|
|
- **Debugging.** Talk to a service by hand to see what it sends.
|
|
|
|
## On CoreDesktop
|
|
|
|
socat is installed from pacman. CoreDesktop's AI agent sandbox uses it to connect Hermes Agent to its gateway through a local socket. Type `socat` in a terminal to use it yourself. `update` keeps it current with the pacman packages.
|