网站首页 > 博客文章 正文
众所周知,在传输层有两个常用的协议TCP和UDP,本文介绍在Linux命令行下,如何使用nc命令发送或接收UDP数据包,这些命令的用法对调试UDP通信程序将有所帮助。
1. 问题的提出
编写了一个使用raw socket在数据链路层接收原始UDP数据包的程序,调试的时候,需要使用局域网中的另一台机器发送UDP数据包,突然发现居然一下子想不出如何在命令行上发送数据包;首先想到的是用curl,但又一想不对,curl只能使用应用层协议透过TCP协议发送数据包,所以可以发HTTP请求包,FTP请求包等,是不能发送UDP数据包的。
终于想起了不怎么使用的nc命令,可以很方便地发送UDP数据包
2. 文章要点
- 理解Linux下的nc命令;
- 使用nc命令在网络上发送或接收UDP报文;
- 抓取nc命令发送的UDP报文;
- 介绍其它可以发送UDP报文的命令。
3. netcat 命令
- nc是netcat的简写,大多数的Linux发行版中默认是安装netcat的,打开一个终端窗口(ctrl+alt_t),用下面命令检查一下是否已经安装了netcat:
nc
- 在ubuntu 20.04下的输出:
usage: nc [-46CDdFhklNnrStUuvZz] [-I length] [-i interval] [-M ttl]
[-m minttl] [-O length] [-P proxy_username] [-p source_port]
[-q seconds] [-s source] [-T keyword] [-V rtable] [-W recvlimit] [-w timeout]
[-X proxy_protocol] [-x proxy_address[:port]] [destination] [port]
- 这个输出表示当前的Linux下已经有nc命令了。
4. 发送 UDP 数据包
- 举个例子,假定我们要从A机发送一个UDP报文到B机,按照server-client的概念,我们把B机作为server端,A机作为client端;
- A机的IP: 192.168.2.112;B机的IP:192.168.2.114
- 启动server
在B机上用如下命令启动Server
nc -u -l 8888
下面是屏幕截图
启动后,并没有更多的提示,当收到信息时,会显示收到的信息
- 检查server是否启动
在B机上启动一个新的终端窗口;
在B机上使用如下命令检查是否已经启动server;
netstat -a|grep 8888
屏幕截图
- 发送UDP报文
在A机上启动client
nc -n 192.168.2.114 8888
client启动后,和server端一样,并没有更多的提示,可以直接输入你要发出的信息
在A机输入信息:I am from ubuntu system A.
下面是A机上的屏幕截图
下面是B机上的屏幕截图
也可以在B机输入信息,信息会发送到A机
在B机输入信息:I am from ubuntu system B.
下面是在B机的截图
下面是在A机的截图
5. 其它可以发送UDP数据包的命令
- 还有一个可以简单地发送UDP报文的方法,我们在A机上退出nc,然后使用下面命令发出信息
echo -n "I am sending an UDP packet using echo command" > /dev/udp/192.168.2.114/8888
- 下面是在A机上的截屏
- 下面是在B机上的截屏
- 很显然使用cat命令也可以发送UDP报文:
欢迎访问我的博客:https://whowin.cn
- 上一篇: Centos系统服务器怎么查看端口是否开放?
- 下一篇: 极简网络的测试工具netcat
猜你喜欢
- 2024-12-17 鸿蒙网络编程系列3-TCP客户端通讯示例
- 2024-12-17 网络协议之:socket协议详解之Socket和Stream Socket
- 2024-12-17 极简网络的测试工具netcat
- 2024-12-17 Centos系统服务器怎么查看端口是否开放?
- 2024-12-17 网络中的瑞士军刀nc\netcat命令,你用过吗?
- 2024-12-17 Linux系统端口检测指令详解
- 2024-12-17 Linux nc 命令详解
- 2024-12-17 linux下nc常用命令简介
你 发表评论:
欢迎- 07-08Google Cloud Platform 加入支持 Docker 的容器引擎
- 07-08日本KDDI与Google Cloud 签署合作备忘录,共探AI未来
- 07-08美国Infoblox与Google Cloud合作推出云原生网络和安全解决方案
- 07-08GoogleCloud为Spanner数据库引入HDD层,将冷存储成本降低80%
- 07-08谷歌推出Cloud Dataproc,缩短集群启动时间
- 07-08Infovista与Google Cloud携手推进射频网络规划革新
- 07-08比利时Odoo与Google Cloud建立增强合作,扩大全球影响力
- 07-08BT 和 Google Cloud 通过 Global Fabric 加速 AI 网络
- 最近发表
-
- Google Cloud Platform 加入支持 Docker 的容器引擎
- 日本KDDI与Google Cloud 签署合作备忘录,共探AI未来
- 美国Infoblox与Google Cloud合作推出云原生网络和安全解决方案
- GoogleCloud为Spanner数据库引入HDD层,将冷存储成本降低80%
- 谷歌推出Cloud Dataproc,缩短集群启动时间
- Infovista与Google Cloud携手推进射频网络规划革新
- 比利时Odoo与Google Cloud建立增强合作,扩大全球影响力
- BT 和 Google Cloud 通过 Global Fabric 加速 AI 网络
- NCSA和Google Cloud合作开发AI驱动的网络防御系统,加强泰国网络空间的安全性
- SAP将在沙特阿拉伯 Google Cloud 上推出BTP服务
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- messagesource (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)