Linux之nc命令详解

@Author  : Spinach | GHB
@Link    : http://blog.csdn.net/bocai8058

nc/netcat(网路工具,网络界的瑞士军刀)

nc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具。

nc的作用

  • 实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口;
  • 端口的扫描,nc可以作为client发起TCP或UDP连接;
  • 机器之间传输文件;
  • 机器之间网络测速。
nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>]
		  [-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]

参数:
  -g<网关>         设置路由器跃程通信网关,最多可设置8个。
  -G<指向器数目>   设置来源路由指向器,其数值为4的倍数。
  -h               在线帮助。
  -i<延迟秒数>     设置时间间隔,以便传送信息及扫描通信端口。
  -l               监听模式,用于入站连接 (监听本地端口)。
  -n               直接使用IP地址,而不通过域名服务器。
  -o<输出文件>     指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
  -p<通信端口>     设置本地主机使用的通信端口。
  -r               随机指定本地与远端主机的通信端口。
  -s<来源位址>     设置本地主机送出数据包的IP地址。
  -u               使用UDP传输协议。
  -v               显示指令执行过程。
  -w<超时秒数>     设置等待连线的时间。
  -z               使用0输入/输出模式,只在扫描通信端口时使用。

nc实例

网络连通性测试和端口扫描

// 监听本地TCP 80端口
$ nc -l 80
// 监听本地TCP 80端口,后台运行
$ nc -l 80 & 

// 监听本地udp的端口
$ nc -ul 9998 

// 使用nc命令作为客户端工具进行端口探测(-v可视化,-z扫描时不发送数据,-w超时几秒,后面跟数字)
$ nc -vzw 2 10.0.1.161 9999

文件传输

// 将9995端口的接受的数据写到test.txt中
$ nc -l 9995 >test.txt

// 将文件test.txt发送给10.0.1.162的9995端口上
$ nc 10.0.1.162 9995 < test.txt

// 服务器上,我们创建一个tar归档包并且通过-在控制台重定向它,然后使用管道,重定向给netcat,netcat可以通过网络发送它。
// 在客户端我们下载该压缩包通过netcat 管道然后打开文件。
// Server
$ tar -cvf – dir_name | nc -l 20000
// Client
$ nc -n 192.168.1.1 20000 | tar -xvf -

测试网速

// 先启动发送的数据,谁连接这个端口时就会接收来自zero设备的数据(二进制的无限个0)
nc -l 9990 </dev/zero

// 下面B机器连接A机器的9990端口,把接收的数据输出到空设备上
nc 10.0.1.161 9990 >/dev/null

// 同样可以使用dstat观察数据发送时的网速

引用:https://www.cnblogs.com/jjzd/p/6306273.html | https://www.cnblogs.com/nmap/p/6148306.html | https://blog.csdn.net/freeking101/article/details/53289198


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章