socat,一个多功能的网络工具,名字来源于SOcket CAT,是netcat的加强版,也就是netcat++(扩展了设计,并有新的实现)。python
推荐:socat官方文档
以及 socat - Handling all Kinds of Sockets (pdf)linux
------------------------------------------------------------------------git
0x01 安装github
# debian/ubuntu apt-get install socat # centos/redhat yum install -y socat
0x02 经过源码安装ubuntu
在centos或者redhat经过yum安装后的socat,运行报错:windows
E parseopts(): unknown option "tcpwrap"
这里是版本没编译进去tcpwrap,先卸载当前socat后,再进行源码编译安装:centos
(目前最新版本是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
(暂时不推荐用,存在各类问题)app
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有空再补充。