概述
socat,是linux下的一个工具,其功能与有“瑞士军刀”之称的netcat类似,不过据说可以看做netcat的加强版。的确如此,它有一些netcat所不具备却又很有需求的功能,例如ssl连接这种。nc可能是因为比较久没有维护,确实显得有些陈旧了。
安装
Ubuntu上可以直接sudo apt-get install socat
基本语法
1 | socat [options] |
其中这2个address就是关键了,如果要解释的话,address就类似于一个文件描述符,socat所做的工作就是在2个address指定的描述符间建立一个pipe用于发送和接收数据。
那么address的描述就是socat的精髓所在了,几个常用的描述方式如下:
- -,STDIN,STDOUT :表示标准输入输出,可以就用一个横杠代替,这个就不用多说了吧….
- /var/log/syslog : 也可以是任意路径,如果是相对路径要使用./,打开一个文件作为数据流。
- TCP:: : 建立一个TCP连接作为数据流,TCP也可以替换为UDP
- TCP-LISTEN: : 建立TCP监听端口,TCP也可以替换为UDP
- EXEC: : 执行一个程序作为数据流。
以上规则中前面的TCP等都可以小写。
在这些描述后可以附加一些选项,用逗号隔开,如fork,reuseaddr,stdin,stdout,ctty等。



