Linux之nc命令工具
1. 安装
yum install nc -y
2. 常用选项
-l 用于指定nc将处于侦听模式。指定该参数,则意味着nc被当作server,侦听并接受连接,而非向其他地址发起连接。
-s 指定发送数据的源IP地址,适用于多网卡主机
-u 指定使用udp,默认是tcp
-v 输出交互或出错信息,新手调试
-w 超时秒数,后面跟数字
-z 表示zero,表示扫描时不发送任何数据
-p 指定连接监听服务器的端口
3. 实战例子
1. -l的使用
1. 在test4上,打开监听模式。


可以看到已经打开了9999端口
2. 在test3上,使用telnet命令

2. nc当做客户端,进行端口探测
1. 上面的test4已经打开了9999端口,在test3,使用nc命令探测9999端口
nc -vw 2 192.168.1.185 9998 < /dev/null && echo "tcp port ok"

这是客户端为centos7的时候,返回的结果。
因为centos7的nc已经取消了-z,所以需要使用/dev/null && echo "tcp port ok"
2. 当客户端为centos6的时候,返回的结果。

3. 连续端口的探测
1. 在test4打开9999和9998两个端口

2. 当客户端为ceontos6的时候,探测9999和9998两个端口
![]()
3. 当客户端为centos7的时候,探测9999和9998两个端口
centos7不支持
4. nc作为服务端监听udp端口
1. test4打开监听的udp端口9999
sudo nc -u -l 9999 &
2. test3当做客户端测试连接test4
sudo nc -v -w 2 -u 192.168.1.185 9999 < /dev/null && echo "ucdp port ok"

5. nc扫描大量udp端口
1. 在客户端centos6上,使用nc命令
![]()
2. 在客户端centos7上,没有找到对应的方法
6. 使用nc传输文件和目录
第一种方法(先打开接收端,再打开发送端)
目的:把test3的文件传输到test4上
1. test4打开监听的端口,并把收到的数据都写到一个目标文件中(名字可以任意取)
nc -l 9999 > a.cfg
2. test3读取源文件
nc 192.168.1.185 9999 < anaconda-ks.cfg
第二种方法(先打开发送端,再打开接收端)
1. test3打开发送命令
nc -l 9999 < anaconda-ks.cfg
2. test4打开接收命令
nc 192.168.1.184 9999 > d.cfg
第三种方法(传输目录)
1. 在接收方上打开监听
sudo nc -l 9999 | tar zxvf -
2. 在发送方传输
sudo tar cfz - {a..f} | nc 192.168.1.185 9999
7. 使用nc测试网速
1. 在发送端和接收端都安装dstat工具,用来监测网速
yum install -y dstat
2. 在接收端启动接收数据的命令
sudo nc -l 9999 > /dev/null
3. 在发送端启动发送数据的命令
sudo nc 192.168.1.185 9999 < /dev/zero
4. 使用dstat工具观察一下

8. nc作为web客户端
nc webserver port

浙公网安备 33010602011771号