Linux发送udptcp包最简单方法-netcat
2022年11月3日大约 2 分钟约 501 字
Linux 发送 udp/tcp 包最简单方法-netcat
由于测试需要,需要从一台 linux 向另一台建立连接,并发送 tcp/udp 包。觉得用 python 写个 client/server 脚本有点麻烦,于是想找一个命令直接发送,一搜就搜到了 netcat
网络拓扑
服务器
先在机器 B 上进行 netcat 服务器端的配置,配置使其监听机器 B 的 6901 端口,输入以下命令
> nc -v -n -l 192.168.0.4 6901
这里的参数解释如下:
- -v 显示详细输出
- -n 只使用数字的地址,不用 DNS 域名解析
- -l 使用监听模式
显示出第二行 Listening on... 的时候就说明监听成功啦
Listening on [192.168.0.4] (family 0, port 6901)
客户端
在服务器端开启成功后,我们在机器 A 上进行客户端的链接,使其链接到机器 B 的 6901 端口
> nc -v 192.168.0.4 6901
按下回车后应该可以看到如下输出
Connection to 192.168.0.4 6901 port [tcp/*] succeeded!
同时在机器 B 的终端上会显示:
Connection from 192.168.0.3 33446 received!
后记
到这里 A 和 B 两台机器其实已经建立了 tcp 链接,也发过 tcp 包了。如果想要建立 udp 链接,则需要使用 -u 参数即可。建立链接之后,可以在任一机器终端输入文字并按回车,文字也会马上出现在另一台机器的终端上,比如你可以在 A 上输入:
hello, I am A. Who are you ?
B 的终端就会收到并展示这句话,有点互联网早期聊天的感觉。只要通过 netcat 这个小小的、简单的命令,就可以做到相互通话,操作系统提供的 socket 网络编程接口功不可没。打算有空去看看netcat 的源码 ,从简单的命令接触 socket 编程