nc 网络测试工具

nc工具即Netcat(网络猫),是一个小巧的网络测试工具,它可以作为TCP或UDP客户端向服务器发送信息,也可以作为服务端监听TCP或UDP接口。nc可以用于作为客户端或服务端定位检测网络软件的故障,在开发和运维中都比较常用,也经常用于渗透测试用途。

注:Ubuntu下nc命令默认使用的是netcat-openbsd版本,这个版本更注重安全性和简洁性,功能较少,不过通常来说也足够使用了,因此推荐使用;另一个版本是netcat-traditional,它功能更多但需要我们单独安装,使用上也有一些区别,下面介绍的内容都是以netcat-openbsd版本为准。

nc常用命令行选项

  • -l:以监听模式启动,使用nc作为服务端
  • -k:即--keep-open的缩写,nc默认会在客户端断开后关闭服务端结束测试,指定-k则会保证服务端持续运行
  • -s:指定源IP地址(用于多网卡主机)
  • -u:使用UDP协议,不指定时默认使用TCP协议
  • -v:详细信息输出模式
  • -w:指定超时时间(秒)
  • -z:作为客户端只连接不写入任何信息

有关更多的使用方法,可以参考相关的Man手册man nc

测试TCP网络

下面例子中我们在同一台主机上模拟测试TCP网络连接。

nc -l 8080
nc localhost 8080

两条命令分别代表启动nc服务端并监听8080端口,以及启动nc客户端连接8080端口。两条命令执行后都可以直接在标准输入中键入信息,写入的信息会被发送给对方,实现TCP全双工通信。

nc默认会在客户端断开后关闭服务端结束测试,如果想持续保持服务端开启,可以在服务端指定-k参数。

测试UDP网络

下面例子中我们在同一台主机上模拟测试UDP网络连接。

nc -lu 8080
nc -u localhost 8080

用法和TCP一致,这里就不多赘述了。

关于安装netcat-traditional版本

Ubuntu下默认自带的是netcat-openbsd版本,安装netcat-traditional可以执行以下命令:

apt-get install netcat-traditional

安装后我们可以使用update-alternatives切换当前命令到netcat-traditional版本。

update-alternatives --config nc

netcat-traditional版本的用法和netcat-openbsd在细节上可能存在不同,相对而言可能也不是那么好用,具体参考文档即可,这里就不多介绍了。

作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。
Copyright © 2017-2024 Gacfox All Rights Reserved.
Build with NextJS | Sitemap