Linux下的nc命令:网络工具的瑞士军刀_网络

在 Linux 系统中,有许多强大的网络工具可用于网络连接、数据传输和端口扫描。其中一个非常强大的工具是 nc,也称为 Netcat,被称为网络工具的瑞士军刀,因为它可以执行各种网络任务。本文将深入探讨 nc 命令的使用方法,提供详细的示例代码,帮助大家用这个强大的工具。 

nc命令是Linux系统中非常强大且灵活的网络工具之一。它可以用来建立各种网络连接、发送和接收数据,还可以用来进行端口扫描等网络测试。下面我将介绍nc命令的用法和一些常见的应用场景。 

主要选项:
-l 或 –listen:在服务器模式下监听指定端口,等待客户端连接。
-n:禁用DNS反向解析,加快连接速度。
-v:显示详细的调试信息。
-z:仅进行端口扫描,不进行实际连接。
-u:使用UDP协议进行连接。

 

基本用法

nc 命令的基本语法如下:

nc  [选项] 主机 端口

  • 主机:指定目标主机的IP地址或主机名
  • 端口:指定目标主机上的端口号

示例:

$ nc example.com 80
  • 1.
[root@jenkins yum.repos.d]# nc -nv 10.202.12.113 8080
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 10.202.12.113:8080.
^C
[root@jenkins yum.repos.d]# nc -nv 10.202.12.113 8081
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connection refused.
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

 

 

监听端口

可以使用 nc 命令在本地主机上监听指定端口,并将所有传入连接转发到终端。这对于创建简单的网络服务器非常有用。

示例:$ nc -l -p 8080

端口扫描

nc 可以用于扫描目标主机上的端口,以检查哪些端口是开放的,语法:nc -vz localhost m-n。

$ nc -zv target_host 80-100 

端口扫描既可以是单个端口也可以是多个端口,以上指令扫描的是m-n之间端口号,来验证这些端口中哪些是可通的、是可以连接的、开放的。

此指令是想尝试连接到本地的 m 到 n 端口。对于每个成功的连接,它都会打印一个消息并退出。如果端口是关闭的或不可达的,它将不打印任何消息。使用 -vz 选项可以显示详细的输出并仅显示开放的端口。

😙首先通过netstat -an指令列出某设备或者说IP上所有开放的端口号

发现192.168.149.129的138端口号是开放的,我们通过指令nc -vz 来扫描130-145之间的所有端口号,除了138端口之外所有都显示connection refused。