通过 Linux CLI 发送和接收 UDP 数据包
我们已经了解两种主要的传输层协议,例如 TCP 和 UDP。有关 TCP 和 UDP 的更多信息,您可以查看参考部分。在本文中,我们将学习如何使用 nc (主要)命令通过 Linux 命令行界面 (CLI) 发送和接收 UDP 数据包。
期望:
以下是这篇文章的学习要点
了解 Linux 中的 nc 命令。
使用nc命令通过网络发送和接收UDP数据包。
通过nc命令发送一些人类可读的句子。
捕获nc命令发送的UDP数据包。
在Wireshark中检查网络数据包。
找出 Linux 上除 netcat 之外的任何其他命令。
网络猫命令:
Linux 操作系统中默认安装 Netcat(nc) 命令。打开一个终端 [快捷键 Alt+Ctrl+t] 并使用以下命令检查 nc 是否存在。
这是预期的输出
in the netcat-traditional package.
usage: nc [-46bCDdhjklnrStUuvZz] [-I length] [-i interval] [-O length]
[-P proxy_username] [-p source_port] [-q seconds] [-s source]
[-T toskeyword] [-V rtable] [-w timeout] [-X proxy_protocol]
[-x proxy_address[:port]] [destination] [port]
这意味着 nc 命令已经存在于 Linux 中。
一般设置图:
发送UDP数据包:
举个例子,我们将从系统 A 发送 UDP 数据包到系统 B。因此,在服务器-客户端概念中,我们必须在系统 B 端运行服务器,在系统 A 端运行客户端。
我们还有有效的 IP 地址。
System B IP: 192.168.1.102
启动服务器:
要使用 nc 命令启动服务器,请在系统 B 终端中使用以下命令
这是截图
到目前为止,此命令没有任何输出可显示。这只是端口 9999 上的监听模式。
启动客户端:
要使用 nc 命令连接到服务器,请在系统 A 终端中使用以下命令
现在系统A必须连接到系统B。因此我们提供了服务器IP地址和端口号。
这是截图
检查连接:
我们可以检查以下命令来确认客户端与服务器端口的连接。
这是截图
发送UDP数据包:
现在我们可以从系统 A 向系统 B 发送 udp 数据包,反之亦然。
第 1 步:
现在转到系统 A 并发送任何句子,例如
截屏:
第 2 步:
我们应该能够在系统 B 端看到这一点。这是截图
我们还可以将UDP数据包从系统B发送到系统A。
第 1 步:
转到系统 B 并发送如下句子
这是系统B的截图
第 2 步:
这是系统A的截图
在Wireshark中检查数据包:
现在,当我们从系统 A 向系统 B 发送 UDP 数据包,反之亦然时,我们可以在系统 A 或系统 B 中启动 Wireshark。这里我们有捕获文件,让我们做一些分析并确认该服务器和客户端通信是否使用UDP协议。
请注意,我们只会分析第一次通信:
系统A已发送:
致:
我们将使用过滤器“udp.port == 9999”来仅获取Wireshark中的相关数据包。请参阅下面的屏幕截图以了解 Wireshark 捕获的分析:
要了解如何使用 Wireshark,请参阅下面的链接
https://linux教程/wireshark_basics_how_to_use/
其他发送UDP数据包的命令:
还有另一种发送UDP数据包的方法
在系统 B 上运行服务器:
在系统 A 上运行以下命令:
192.168.1.102: System B’s IP
8000: The server port
Message sent: “hello”
但我们只能发送一次“hello”。如果我们终止服务器并重新运行,那么它就可以工作了。
结论:
从上面的练习中我们了解了使用 UDP 协议发送一些消息的机制。最好的方法是在Linux中使用nc命令。
参考:
了解 TCP:https://linux教程/tcp_packet_capture_analysis/