linux

作用:

  1. 网络调试
  2. 端口扫描

可使用的参数

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

常见用法

nc 可以作为服务器也可以作为客户端

1. 端口扫描

扫描 tcp 端口范围

nc -nvz -w2 [your-ip] 1-100

输出

Connection to [your-ip] port 22 [tcp/ssh] succeeded!
nc: connectx to [your-ip] port 23 (tcp) failed: Connection refused
nc: connectx to [your-ip] port 24 (tcp) failed: Connection refused
nc: connectx to [your-ip] port 25 (tcp) failed: Connection refused
nc: connectx to [your-ip] port 26 (tcp) failed: Connection refused
nc: connectx to [your-ip] port 27 (tcp) failed: Connection refused

扫描 udp 端口范围:

nc -unvz -w2 [your-ip] 1-1000

扫描指定端口

nc -nvv 192.168.0.1 80 //扫描 80端口

[[linux - nmap 命令]] 能更快的扫描端口号

2. 发送 tcp 数据

右边 nc 作为服务端

监听 80 端口

左边 nc 作为客户端

连接 本地 80 端口, 并且发送了一些字符串, 发送过去的字符串在服务端都被回显出来了

灵活一些, 既然服务端会接受字符串, 那么也可以接收文件

nc 127.0.0.1 80 < file

nc -l 80 > file_upload

即可把本地文件上传到服务器上

参考资料

https://www.runoob.com/linux/linux-comm-nc.html

原文地址:https://www.cnblogs.com/wudanyang/p/14240405.html