使用 netcat [nc] 命令对 Linux 和 Unix 进行端口扫描

使用 netcat [nc] 命令对 Linux 和 Unix 进行端口扫描

我如何在自己的服务器上找出哪些端口是开放的?如何使用 nc 命令进行端口扫描来替换 Linux 或类 Unix 中的 nmap 命令

nmap (“Network Mapper”)是一个用于网络探测和安全审核的开源工具。如果 nmap 没有安装或者你不希望使用 nmap,那你可以用 netcat/nc 命令进行端口扫描。它对于查看目标计算机上哪些端口是开放的或者运行着服务是非常有用的。你也可以使用 nmap 命令进行端口扫描 。

如何使用 nc 来扫描 Linux,UNIX 和 Windows 服务器的端口呢?

如果未安装 nmap,试试 nc/netcat 命令,如下所示。-z 参数用来告诉 nc 报告开放的端口,而不是启动连接。在 nc 命令中使用 -z 参数时,你需要在主机名/ip 后面限定端口的范围和加速其运行:


  1. ### 语法 ###
  2. ### nc -z -v {host-name-here} {port-range-here}
  3. nc -z -v host-name-here ssh
  4. nc -z -v host-name-here 22
  5. nc -w 1 -z -v server-name-here port-Number-her
  6. ### 扫描 1 to 1023 端口 ###
  7. nc -zv vip-1.vsnl.nixcraft.in 1-1023

输出示例:


  1. Connection to localhost 25 port [tcp/smtp] succeeded!
  2. Connection to vip-1.vsnl.nixcraft.in 25 port [tcp/smtp] succeeded!
  3. Connection to vip-1.vsnl.nixcraft.in 80 port [tcp/http] succeeded!
  4. Connection to vip-1.vsnl.nixcraft.in 143 port [tcp/imap] succeeded!
  5. Connection to vip-1.vsnl.nixcraft.in 199 port [tcp/smux] succeeded!
  6. Connection to vip-1.vsnl.nixcraft.in 783 port [tcp/*] succeeded!
  7. Connection to vip-1.vsnl.nixcraft.in 904 port [tcp/vmware-authd] succeeded!
  8. Connection to vip-1.vsnl.nixcraft.in 993 port [tcp/imaps] succeeded!

你也可以扫描单个端口:


  1. nc -zv v.txvip1 443
  2. nc -zv v.txvip1 80
  3. nc -zv v.txvip1 22
  4. nc -zv v.txvip1 21
  5. nc -zv v.txvip1 smtp
  6. nc -zvn v.txvip1 ftp
  7. ### 使用1秒的超时值来更快的扫描 ###
  8. netcat -v -z -n -w 1 v.txvip1 1-1023

输出示例:

图01:Linux/Unix:使用 Netcat 来测试 TCP 和 UDP 与服务器建立连接

  1. -z : 端口扫描模式即零 I/O 模式。
  2. -v : 显示详细信息 [使用 -vv 来输出更详细的信息]。
  3. -n : 使用纯数字 IP 地址,即不用 DNS 来解析 IP 地址。
  4. -w 1 : 设置超时值设置为1。

更多例子:


  1. $ netcat -z -vv www.cyberciti.biz http
  2. www.cyberciti.biz [75.126.153.206] 80 (http) open
  3. sent 0, rcvd 0
  4. $ netcat -z -vv google.com https
  5. DNS fwd/rev mismatch: google.com != maa03s16-in-f2.1e100.net
  6. DNS fwd/rev mismatch: google.com != maa03s16-in-f6.1e100.net
  7. DNS fwd/rev mismatch: google.com != maa03s16-in-f5.1e100.net
  8. DNS fwd/rev mismatch: google.com != maa03s16-in-f3.1e100.net
  9. DNS fwd/rev mismatch: google.com != maa03s16-in-f8.1e100.net
  10. DNS fwd/rev mismatch: google.com != maa03s16-in-f0.1e100.net
  11. DNS fwd/rev mismatch: google.com != maa03s16-in-f7.1e100.net
  12. DNS fwd/rev mismatch: google.com != maa03s16-in-f4.1e100.net
  13. google.com [74.125.236.162] 443 (https) open
  14. sent 0, rcvd 0
  15. $ netcat -v -z -n -w 1 192.168.1.254 1-1023
  16. (UNKNOWN) [192.168.1.254] 989 (ftps-data) open
  17. (UNKNOWN) [192.168.1.254] 443 (https) open
  18. (UNKNOWN) [192.168.1.254] 53 (domain) open

也可以看看 :

本文来自合作伙伴“Linux中国”

原文发布时间为:2013-04-02.

时间: 2024-10-21 22:53:33

使用 netcat [nc] 命令对 Linux 和 Unix 进行端口扫描的相关文章

使用netcat [nc]命令对Linux和Unix进行端口扫描

我如何在自己的服务器上找出哪些端口是开放的?如何使用 nc 命令进行端口扫描来替换Linux 或类 Unix 中的 nmap 命令? nmap ("Network Mapper")是一个用于网络探测和安全审核的开源工具.如果 nmap 没有安装或者你不希望使用 nmap,那你可以用 netcat/nc 命令进行端口扫描.它对于查看目标计算机上哪些端口是开放的或者运行着服务是非常有用的.你也可以使用 nmap 命令进行端口扫描. 如何使用 nc 来扫描 Linux,UNIX 和 Wind

使用nc命令检查Linux系统远程端口是否打开

端口是与 Linux 操作系统上的应用或进程的通讯端点的逻辑实体.在使用之前,了解目标机器上哪些端口是打开并正在运行服务是非常有用的. 我们可以使用 netstat 或其他几个 Linux 命令如 NMAP 在本地机器上轻松地列出 Linux 中的打开端口. 在本指南中,我们将向你展示如何使用简单的 netcat(简称 nc)命令来确定远程主机上的端口是否可访问/打开. netcat(或简称 nc)是一个功能强大且易于使用的程序,可用于 Linux 中与 TCP.UDP 或 UNIX 域套接字相

Linux管理员:企业端口扫描策略

  企业端口扫描策略 1.端口扫描的目的 对于位于网络中的计算机系统来说,一个端口就是一个潜在的通信通道,也就是一个入侵通道.对目标计算机进行端口扫描,能得到许多有用的信息从而发现系统的安全漏洞.通过其可以使系统用户了解系统目前向外界提供了哪些服务,从而为系统用户管理网络提供了一种参考的手段. 从技术原理上来说,端口扫描向目标主机的TCP/UDP服务端口发送探测数据包,并记录目标主机的响应.通过分析响应来判断服务端口是打开还是关闭,就可以得知端口提供的服务或信息. 端口扫描也可以通过捕获本地主机

向Linux系统管理员:企业端口扫描实战

俗话说得好:"千里之堤,毁于蚁穴."一个小小的漏洞造成一旦被攻击者发现,最终后果有可能是整个网络的瘫痪.而怎么来发现企业网络的安全漏洞呢?需要掌握和采用一些什么关键技术?有什么比较流行和高效的工具可以用来辅助系统管理员来进行漏洞的扫描和发现呢? 企业端口扫描策略 1.端口扫描的目的 对于位于网络中的计算机系统来说,一个端口就是一个潜在的通信通道,也就是一个入侵通道.对目标计算机进行端口扫描,能得到许多有用的信息从而发现系统的安全漏洞.通过其可以使系统用户了解系统目前向外界提供了哪些服务

linux nc命令

参考 :http://www.linuxso.com/command/nc.html NC 全名 Netcat (网络刀),作者是 Hobbit && ChrisWysopal.因其功能十分强大,体积小巧而出名,又被大家称为"瑞士军刀".nc - TCP/IP swiss army knife nc 常用于溢出.反向链接.上传文本等.其实是一个非标准的 telnet 客户端程序.也是一个 putty.exe 客户端程序. socat 是一个 nc 的替代品,可以称为 n

详解Unix/Linux中周期执行指令Crontab命令_unix linux

简介 crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读取和执行. 通常,crontab储存的指令被守护进程激活,crond常常在后台运行,每一分钟检查是否有预定的作业需要执行.这类作业一般称为cron jobs. cron 是 Unix/Linux 中提供定期执行 shell 命令的服务,包括 crond 和 crontab 两部分:      crond: cron

Linux利用nc命令监控服务器端口的方法_Linux

最近碰到一个项目,前端用apache htttpd进行发布(80端口),通过双机负载均衡转发到后端的两个tomcat进行处理(8081和8082端口),现在需要随时监控这三个端口的情况,一旦down掉需要能够立即告警处理.批量的系统监控比较好的是用nagios软件来实现,这样小项目专门装一个nagios软件,有点繁琐了.在网上查了一些资料,总结实验了一下,可以用简单的nc命令来实现. 一.nc命令检测端口的用法# nc  -v  -w 10 %IP%   -z  %PORT%-v  显示指令执行

Linux nc命令详解 Linux nc命令怎么用

执行本指令可设置路由器的相关参数. 语法 nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>] [-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...] 参数说明: -g<网关> 设置路由器跃程通信网关,最丢哦可设置8个. -G<指向器数目> 设置来源路由指向器,其数值为4的倍数. -h 在线帮助

使用 nc 命令检查远程端口是否打开

端口是与 Linux 操作系统上的应用或进程的通讯端点的逻辑实体.在使用之前,了解目标机器上哪些端口是打开并正在运行服务是非常有用的. 我们可以使用 netstat 或其他几个 Linux 命令如 NMAP 在本地机器上轻松地列出 Linux 中的打开端口. 在本指南中,我们将向你展示如何使用简单的 netcat(简称 nc)命令来确定远程主机上的端口是否可访问/打开. netcat(或简称 nc)是一个功能强大且易于使用的程序,可用于 Linux 中与 TCP.UDP 或 UNIX 域套接字相