📜  nc(netcat) 命令在 Linux 中的实际使用(1)

📅  最后修改于: 2023-12-03 14:44:33.466000             🧑  作者: Mango

nc (netcat) 命令在 Linux 中的实际使用

1. 简介

nc(Commanding Tool)是一个用于 TCP/IP 协议的流量分析工具。通过该工具,我们可以在 Linux 系统上监听端口,发送/接收数据。nc 是 Linux 下网络诊断的必备工具之一,我们可以通过该工具来测试服务端口是否开放,也可以用于简单的数据传输,将一个文件发送到另一台计算机,或者通过 UDP 协议发送数据包等等。

2. nc 如何使用

下面我们来看一些常用的 nc 命令实例。

2.1. 监听端口

如果我们需要在本机监听一个端口,以等待其他主机的连接,那么可以使用 nc 进行监听,示例如下:

nc -l 8080

这样就可以在本机 8080 端口上监听连接请求,当有其他主机连接到该端口时,nc 会显示连接的详细信息。

2.2. 连接服务端

如果我们需要连接到某个服务器端口,可以通过如下命令实现:

nc ip地址 端口号

例如:

nc 192.168.1.100 80

以上命令会在本机上建立一个到 192.168.1.100 的 80 端口的连接,可以通过该连接发送数据或者接受数据。

当与服务器建立了连接之后,我们可以手动输入数据,将其发送到服务端:

> GET /

以上命令会向服务端发送 HTTP 访问请求,然后我们就可以获取服务端返回的数据。

2.3. 传输文件

nc 可以用于将文件从一台计算机传输到另一台计算机,使用方式如下:

在接收方,监听端口:

nc -l 8888 > filename

在发送方,将文件发送到接收方:

nc 接收方IP 8888 < filename

以上命令发送 filename 文件到接收方的 8888 端口上,然后在接收方我们可以看到该文件已经保存在本地磁盘上。

2.4. 使用 UDP 协议

nc 同样支持 UDP 协议,以下示例演示了如何通过 nc 向远程主机发送 UDP 包:

echo "hello, world" | nc -u 192.168.1.100 4321

以上命令将 "hello, world" 作为 UDP 数据包发送到远程主机的 4321 端口上。

2.5. 发送邮件

有时我们需要在终端中发送邮件,可以使用如下命令:

(echo "From: xxx@example.com"; echo "To: xxx@example.com"; echo "Subject: Test Mail"; echo "Text Body"| nc  smtp.example.com 25) > /dev/null

以上命令发送一封名为 Test Mail 的邮件,邮件正文为 "Text Body"。

3. 总结

nc 命令是一个非常强大的网络调试工具,支持 TCP/IP、UDP 等多种协议。上述示例仅仅是一些常用命令,实际中还有很多功能和参数可用,可以帮助你更好地进行网络调试和分析。