nc(netcat) 命令在 Linux 中的实际使用
Netcat是强大的网络工具、安全工具或网络监控工具之一。它的作用类似于网络上的 cat 命令。它甚至被认为是网络工具的瑞士军刀。
它通常用于以下原因:
- 与 TCP、UDP 或 UNIX 域套接字相关的操作
- 端口扫描
- 端口监听
- 端口重定向
- 打开远程连接
- 跨网络读/写数据
- 网络调试
- 网络守护进程测试
- 简单的 TCP 代理
- 用于 ssh 的 Socks 或 HTTP 代理命令
它的设计牢记它应该是一个灵活的“后端”工具,可以直接使用或由任何其他程序驱动。
安装 netcat(nc) 进程监控工具
要安装 Netcat 工具,请根据您的 Linux 发行版使用以下命令。
如果是 Debian/Ubuntu
$sudo apt-get install netcat
在 CentOS/RHEL 的情况下
$yum install nc
对于 Fedora 22+ 和 RHEL 8
$dnf install nc
使用 netcat 安全工具
1.要开始监听一个端口,首先打开 2 个终端窗口。
用于收听的终端 1
$nc -l -p 1234
终端 2 发送请求
$nc 127.0.0.1 1234
注意:这里的端口号是 1234,默认主机是 localhost。
它不会显示任何内容,但会从终端 1 开始侦听 localhost 的端口 1234。在终端 2 中输入的任何内容也将反映在终端 1 中,这确认连接已成功建立。
2.传输数据。打开 2 个终端窗口。
用于收听的终端 1
$nc -l -p 1234 >output.txt
用于发送请求的终端 2
$echo "GeeksforGeeks" >input.txt
$nc 127.0.0.1 1234
注意:这里的端口号是 1234,默认主机是 localhost。它将 input.txt 文件的数据从终端 2 发送到终端 1 的 output.txt 文件。
3.执行端口扫描。在终端上输入以下命令。
扫描单个端口
$netcat -z -v 127.0.0.1 1234
扫描多个端口
$nc -z -v 127.0.0.1 1234 1235
扫描一系列端口
$nc -z -v 127.0.0.1 1233-1240
注意:这里的端口号是 1234、1235、1233 和 1240,您可以根据需要更改它们。它将显示带有状态(打开或未打开)的端口号。
4.发送 HTTP 请求
$printf “GET /nc.1 HTTPs/1.1\r\nHost: www.geeksforgeeks.org\r\n\r\n” | nc www.geeksforgeeks.org 80
注意:这里的网站是 www.geeksfrogeeks.org,你可以选择任何一个。它将向 www.geeksfrogeeks.org 发送 HTTP 请求。
5.延迟发送线路的间隔。打开2终端如下图:
用于收听的终端 1
$nc -l -p 1234
终端 2 发送请求
$nc -i 5 127.0.0.1 1234
注意:这里的端口号是 1234,默认主机是 localhost。所用时间为 5 秒。每个将在 5 秒后发送。