通过 Linux CLI 发送和接收 UDP 数据包通过 Linux CLI 发送和接收 UDP 数据包通过 Linux CLI 发送和接收 UDP 数据包通过 Linux CLI 发送和接收 UDP 数据包
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

通过 Linux CLI 发送和接收 UDP 数据包

发表 admin at 2025年2月28日
类别
  • 未分类
标签

我们已经了解两种主要的传输层协议,例如 TCP 和 UDP。有关 TCP 和 UDP 的更多信息,您可以查看参考部分。在本文中,我们将学习如何使用 nc (主要)命令通过 Linux 命令行界面 (CLI) 发送和接收 UDP 数据包。

期望:

以下是这篇文章的学习要点

  1. 了解 Linux 中的 nc 命令。

  2. 使用nc命令通过网络发送和接收UDP数据包。

  3. 通过nc命令发送一些人类可读的句子。

  4. 捕获nc命令发送的UDP数据包。

  5. 在Wireshark中检查网络数据包。

  6. 找出 Linux 上除 netcat 之外的任何其他命令。

网络猫命令:

Linux 操作系统中默认安装 Netcat(nc) 命令。打开一个终端 [快捷键 Alt+Ctrl+t] 并使用以下命令检查 nc 是否存在。

$nc

这是预期的输出

This is nc from the netcat-openbsd package. An alternative nc is available
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 A IP: 192.168.1.6
System B IP: 192.168.1.102

启动服务器:

要使用 nc 命令启动服务器,请在系统 B 终端中使用以下命令

$ nc –u –l 9999

这是截图

到目前为止,此命令没有任何输出可显示。这只是端口 9999 上的监听模式。

启动客户端:

要使用 nc 命令连接到服务器,请在系统 A 终端中使用以下命令

$ nc -u 192.168.1.102 9999

现在系统A必须连接到系统B。因此我们提供了服务器IP地址和端口号。

这是截图

检查连接:

我们可以检查以下命令来确认客户端与服务器端口的连接。

$ netstat | grep 9999

这是截图

发送UDP数据包:

现在我们可以从系统 A 向系统 B 发送 udp 数据包,反之亦然。

第 1 步:

现在转到系统 A 并发送任何句子,例如

“Hi i am from LinuxHint[System A 192.168.1.6]”

截屏:

第 2 步:

我们应该能够在系统 B 端看到这一点。这是截图

我们还可以将UDP数据包从系统B发送到系统A。

第 1 步:

转到系统 B 并发送如下句子

"Hi i am from LinuxHint[System B 192.168.1.102]"

这是系统B的截图

第 2 步:

这是系统A的截图

在Wireshark中检查数据包:

现在,当我们从系统 A 向系统 B 发送 UDP 数据包,反之亦然时,我们可以在系统 A 或系统 B 中启动 Wireshark。这里我们有捕获文件,让我们做一些分析并确认该服务器和客户端通信是否使用UDP协议。

请注意,我们只会分析第一次通信:

系统A已发送:

“Hi i am from LinuxHint[System A 192.168.1.6]”

致:

System B [192.168.1.102].

我们将使用过滤器“udp.port == 9999”来仅获取Wireshark中的相关数据包。请参阅下面的屏幕截图以了解 Wireshark 捕获的分析:

要了解如何使用 Wireshark,请参阅下面的链接

https://linux教程/wireshark_basics_how_to_use/

其他发送UDP数据包的命令:

还有另一种发送UDP数据包的方法

在系统 B 上运行服务器:

$ nc -u -l 8000

在系统 A 上运行以下命令:

$ echo -n "hello" >/dev/udp/192.168.1.102/8000
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/

©2015-2025 Norria support@norria.com