socat安装使用方法

socat,一个多功能的网络工具,名字来源于SOcket CAT,是netcat的增强版,也就是netcat++(扩展了设计,并有新的实现)。

推荐:socat官方文档

以及 socat - Handling all Kinds of Sockets (pdf)

0x01 安装

# debian/ubuntu
apt-get install socat

# centos/redhat
yum install -y socat

0x02 通过源码安装

在centos或者redhat通过yum安装后的socat,运行报错:

E parseopts(): unknown option "tcpwrap"

这里是版本没编译进去tcpwrap,先卸载当前socat后,再进行源码编译安装:

(目前最新版本是1.7.3.3)

yum install -y tcp_wrappers tcp_wrappers-devel readline-devel openssl-devel
yum install -y gcc

v=1.7.3.3
wget http://www.dest-unreach.org/socat/download/socat-${v}.tar.gz
tar zxvf socat-${v}.tar.gz
cd socat-${v}
./configure
make && make install

0x03 windows版socat

git clone https://github.com/StudioEtrange/socat-windows

(暂时不推荐用,存在各种问题)

0x04 fork EXEC

将一个使用标准输入输出的单进程程序变为一个使用fork方法的多进程服务

socat TCP4-LISTEN:2333,tcpwrap=script,reuseaddr,fork EXEC:"/usr/bin/env python2 -u pcat.py"

(其中TCP4-LISTEN可简写为tcp-l,而python -u表示输出不缓存)

0x05 其他

socat的用途很多,可参见开头列举的文档以及pdf,以后pcat有空再补充。