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。soca...
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
参考手册
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)