socat

socat ( SOcket CAT )是一个多用途双向数据转接工具。

socat 功能跟 NetCat 一样,但更安全(支持 chroot ),兼容多种协议, 支持操作 文件 ( file )、 管道 ( pipe )、 设备 ( device )、 TCP 套接字、 Unix 套接字、 SOCKS 客户端、 CONNECT 代理以及 SSL 等等。

安装

Linux

Linux 系统,使用包管理器进行安装,以 Debian/Ubuntu 为例:

# apt update && apt install socat

OSX

OSX 系统,使用装包神奇 brew 进行安装:

$ brew update && brew install socat

典型用法

端口转发

TCP

监听本地 80 端口,并将请求转发(代理)到 10.0.0.1:8080 上:

# socat TCP-LISTEN:80,reuseaddr,fork TCP:10.0.0.1:8080

UDP

监听本地 53 端口,并将请求转发(代理)到 10.0.0.1:5353 上:

# socat UDP-LISTEN:53,reuseaddr,fork UDP:10.0.0.1:5353