TCP/UDP 客户端服务端模拟工具socat介绍
socat是一个多功能的网络工具,名字来由是” Socket CAT”,可以看作是netcat的N倍加强版,socat的官方网站:http://www.dest-unreach.org/socat/ 。
socat支持的传输包括:文件、管道、设备(终端或调制解调器等)、socket(Unix,IP4,IP6 - raw,UDP,TCP)、SSL、SOCKS4客户端或代理CONNECT。
socat的主要特点就是在两个数据流之间建立通道;且支持众多协议和链接方式:ip, tcp, udp, ipv6, pipe,exec,system,open,proxy,openssl,socket等。本文只介绍一些最简单的TCP,UDP相关的用法。
安装方法
无需安装,二进制可直接执行
1. 下载源码,编译得到二进制。
源码下载地址: http://www.dest-unreach.org/socat/download/
编译方法可参考:
http://3ms.huawei.com/km/blogs/details/5730077
2. 直接下载本文附件可执行文件
使用介绍
发送UDP报文:
echo "hello" | /root/southTest/socat - udp4-datagram:192.168.1.80:5060
侦听UDP端口:
/root/southTest/socat - udp-listen:12345
会将接收到的内容打印出来
/root/southTest/socat - udp-listen:12345,fork
并发模式
建立TCP连接:
/root/southTest/socat - tcp:192.168.1.18:80
建立连接并发送数据:
echo "hahaha" | /root/southTest/socat - tcp:192.168.1.18:80
IPv6
/root/southTest/socat - tcp:[fd00::123]:12345
侦听TCP端口:
/root/southTest/socat - tcp-listen:12345
收到连接之后会把内容打印出来。
/root/southTest/socat - tcp-listen:12345,fork
并发模式
IPv6
/root/southTest/socat - tcp6-listen:12345,bind=[fd00::121],fork
如果提示:
Address already in use
可以试着加上参数 reuseaddr,如果不行就只能等大概两分钟了。
/root/southTest/socat - tcp-listen:12345,fork,reuseaddr
转发TCP报文
/root/southTest/socat TCP4-LISTEN:8888 TCP4:127.0.0.1:7777
/root/southTest/socat TCP4-LISTEN:8888, fork TCP4:127.0.0.1:7777
fork的作用是支持并发连接
转发UDP报文
/root/southTest/socat UDP4-LISTEN:8888 UDP4:127.0.0.1:7777
/root/southTest/socat UDP4-LISTEN:8888, fork UDP4:127.0.0.1:7777
加入某个组播组:
/root/southTest/socat - UDP4-RECVFROM:6666,ip-add-membership=224.1.0.1:bond1
向某个组播组发送消息:
echo "hello" | /root/southTest/socat - udp4-datagram:224.1.0.1:6666
socat目前还不支持IPv6组播
IPv6 multicasting has not yet been successfully used with socat; please contact the author if you have positive experiences or ideas that go beyond IPV6_ADD_MEMBERSHIP.
http://www.dest-unreach.org/socat/doc/socat-multicast.html
IPv6使用这个java工具吧:
http://3ms.huawei.com/km/blogs/details/5571073
参考手册
http://www.dest-unreach.org/socat/doc/socat.html
- 点赞
- 收藏
- 关注作者
评论(0)