# Socat<no value>

`Socat`是一款功能强大的网络工具，它可以在两个数据流之间建立连接，并转发数据。你可以把它看成是增强版的 netcat（nc），支持更多协议、功能更强大。

##### 常见用途:

|用途|示例说明|
|---|---|
|搭建 TCP 服务端|模拟监听端口、测试连接|
|TCP/UDP 端口转发|类似端口映射|
|本地端口转发到远程服务器|像 SSH 转发|
|将串口连接转成网络连接|IoT、调试硬件|
|作为中间代理或桥接|把两个程序连在一起传数据|

##### 安装Socat
```bash
apt update && apt install socat
```

##### 示例：监听本地 TCP 25 端口
```bash
socat TCP-LISTEN:25,fork STDOUT
```

- `TCP-LISTEN:25` ：监听本地 TCP 25 端口

- `fork` ：每次连接都创建一个新子进程，允许多个连接

- `STDOUT` ：把接收到的数据打印出来


##### 示例：端口转发
将本地 1234 端口的数据转发到远程服务器 192.168.1.100 的 80 端口：

```bash
socat TCP-LISTEN:1234,fork TCP:192.168.1.100:80
```

注意事项:
某些端口（如 25、80）是特权端口，监听需要 sudo

配置复杂场景时要小心回环、循环转发