searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

测试工具socat使用方法分享

2023-11-20 08:50:50
117
0

在云主机业务中,比如负载均衡业务场景,需要探测后端服务是否可达,可以使用socat进行tcp和udp端口的探测。

Socat 是一个基于命令行的linux开源程序,通过tcp或者udp的端口建立连接来传输数据。因为流可以由大量不同类型的数据接收器和源构建,并且因为许多地址选项可以应用于流,所以 socat 可以用于许多不同的目的。

socat的命令行如下:
socat  [options] <address> <address>

一、tcp端口通信

如在云网络中,云主机vm1和云主机vm2进行网络通信,假设vm1的ipv4地址为192.168.1.3,vm2的ipv4地址为10.1.1.3;vm1的ipv6地址为2001::3,vm2的ipv6地址为 2003:1::2
vm1访问vm2的8080端口,步骤如下

1、在vm2上开启socat的tcp监听服务
ipv4:
socat tcp-listen:8080,reuseaddr,fork EXEC:'echo "vm2 tcp connected"'
//reuseaddr代表地址复用,fork EXEC:'echo "vm2 tcp connected"'表示打印回显为"vm2 tcp connected"

ipv6:
socat tcp6-listen:8080,reuseaddr,fork EXEC:'echo "vm2 tcp6 connected"'
2、在vm1上运行socat 访问vm1的端口8080

ipv4:
socat - tcp-connect:10.1.1.3:8080
指定本地源ip地址和端口如下:
socat - tcp-connect:10.1.1.3:8080,bind=192.168.1.3:5000

ipv6:
socat - tcp6-connect:[2003:1::2]:8080

二、udp端口通信

假设vm1的ipv4地址为192.168.1.3,vm2的ipv4地址为10.1.1.3;vm1的ipv6地址为2001::3,vm2的ipv6地址为 2003:1::2
vm1访问vm2的8000端口,步骤如下

1、在vm2上开启socat的tcp监听服务
ipv4:
socat udp-listen:8000,reuseaddr,fork EXEC:'echo "vm2 udp connected"'

ipv6:
socat udp6-listen:8000,reuseaddr,fork EXEC:'echo "vm2 udp6 connected"'

2、在vm1上运行socat 访问vm1的端口8000

ipv4:
echo "test"|socat - udp-connect:10.1.1.3:8000

ipv6:
echo "test"|socat - udp-connect:[2003:1::2]:8000
 
0条评论
作者已关闭评论
y****n
2文章数
0粉丝数
y****n
2 文章 | 0 粉丝
y****n
2文章数
0粉丝数
y****n
2 文章 | 0 粉丝
原创

测试工具socat使用方法分享

2023-11-20 08:50:50
117
0

在云主机业务中,比如负载均衡业务场景,需要探测后端服务是否可达,可以使用socat进行tcp和udp端口的探测。

Socat 是一个基于命令行的linux开源程序,通过tcp或者udp的端口建立连接来传输数据。因为流可以由大量不同类型的数据接收器和源构建,并且因为许多地址选项可以应用于流,所以 socat 可以用于许多不同的目的。

socat的命令行如下:
socat  [options] <address> <address>

一、tcp端口通信

如在云网络中,云主机vm1和云主机vm2进行网络通信,假设vm1的ipv4地址为192.168.1.3,vm2的ipv4地址为10.1.1.3;vm1的ipv6地址为2001::3,vm2的ipv6地址为 2003:1::2
vm1访问vm2的8080端口,步骤如下

1、在vm2上开启socat的tcp监听服务
ipv4:
socat tcp-listen:8080,reuseaddr,fork EXEC:'echo "vm2 tcp connected"'
//reuseaddr代表地址复用,fork EXEC:'echo "vm2 tcp connected"'表示打印回显为"vm2 tcp connected"

ipv6:
socat tcp6-listen:8080,reuseaddr,fork EXEC:'echo "vm2 tcp6 connected"'
2、在vm1上运行socat 访问vm1的端口8080

ipv4:
socat - tcp-connect:10.1.1.3:8080
指定本地源ip地址和端口如下:
socat - tcp-connect:10.1.1.3:8080,bind=192.168.1.3:5000

ipv6:
socat - tcp6-connect:[2003:1::2]:8080

二、udp端口通信

假设vm1的ipv4地址为192.168.1.3,vm2的ipv4地址为10.1.1.3;vm1的ipv6地址为2001::3,vm2的ipv6地址为 2003:1::2
vm1访问vm2的8000端口,步骤如下

1、在vm2上开启socat的tcp监听服务
ipv4:
socat udp-listen:8000,reuseaddr,fork EXEC:'echo "vm2 udp connected"'

ipv6:
socat udp6-listen:8000,reuseaddr,fork EXEC:'echo "vm2 udp6 connected"'

2、在vm1上运行socat 访问vm1的端口8000

ipv4:
echo "test"|socat - udp-connect:10.1.1.3:8000

ipv6:
echo "test"|socat - udp-connect:[2003:1::2]:8000
 
文章来自个人专栏
文章 | 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0