📅  最后修改于: 2023-12-03 14:44:33.466000             🧑  作者: Mango
nc(Commanding Tool)是一个用于 TCP/IP 协议的流量分析工具。通过该工具,我们可以在 Linux 系统上监听端口,发送/接收数据。nc 是 Linux 下网络诊断的必备工具之一,我们可以通过该工具来测试服务端口是否开放,也可以用于简单的数据传输,将一个文件发送到另一台计算机,或者通过 UDP 协议发送数据包等等。
下面我们来看一些常用的 nc 命令实例。
如果我们需要在本机监听一个端口,以等待其他主机的连接,那么可以使用 nc 进行监听,示例如下:
nc -l 8080
这样就可以在本机 8080 端口上监听连接请求,当有其他主机连接到该端口时,nc 会显示连接的详细信息。
如果我们需要连接到某个服务器端口,可以通过如下命令实现:
nc ip地址 端口号
例如:
nc 192.168.1.100 80
以上命令会在本机上建立一个到 192.168.1.100 的 80 端口的连接,可以通过该连接发送数据或者接受数据。
当与服务器建立了连接之后,我们可以手动输入数据,将其发送到服务端:
> GET /
以上命令会向服务端发送 HTTP 访问请求,然后我们就可以获取服务端返回的数据。
nc 可以用于将文件从一台计算机传输到另一台计算机,使用方式如下:
在接收方,监听端口:
nc -l 8888 > filename
在发送方,将文件发送到接收方:
nc 接收方IP 8888 < filename
以上命令发送 filename 文件到接收方的 8888 端口上,然后在接收方我们可以看到该文件已经保存在本地磁盘上。
nc 同样支持 UDP 协议,以下示例演示了如何通过 nc 向远程主机发送 UDP 包:
echo "hello, world" | nc -u 192.168.1.100 4321
以上命令将 "hello, world" 作为 UDP 数据包发送到远程主机的 4321 端口上。
有时我们需要在终端中发送邮件,可以使用如下命令:
(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"。
nc 命令是一个非常强大的网络调试工具,支持 TCP/IP、UDP 等多种协议。上述示例仅仅是一些常用命令,实际中还有很多功能和参数可用,可以帮助你更好地进行网络调试和分析。