[root@ka1che225 ~]# which nc
/usr/bin/nc
[root@ka1che225 ~]# which ncat
/usr/bin/ncat
[root@ka1che225 ~]# rpm -qf /usr/bin/ncat
nmap-ncat-6.40-16.el7.x86_64
[root@ka1che225 ~]# rpm -qf /usr/bin/nc
nmap-ncat-6.40-16.el7.x86_64
[root@ka1che225 ~]# rpm -ql nmap-ncat
/usr/bin/nc
/usr/bin/ncat
Ncat 7.50 ( https://nmap.org/ncat )
nc-1.84-22.el6.x86_64
不同系统上提供的nc版本会有所不同,其提供的参数使用方法也略有差异
nc -v -w 1 192.168.2.10 -z 1-65535|grep succeeded 端口扫描
1. -4 强制使用ipv4
2. -6 强制使用ipv6
3. -D 允许socket通信返回debug信息
4. -d 不允许从标准输入中读取
5. -h 显示nc帮助文档
6. -i interval
7. 指定每行之间内容延时发送和接受,也可以使多个端口之间的连接延时
8. -k 当一个连接结束时,强制nc监听另一个连接。必须和-l一起使用
9. -l 用于监听传入的数据链接,不能与-p -z -s一起使用。-w 参数的超时也会被忽略
10. -n 不执行任何地址,主机名,端口或DNS查询
11. -p 指定nc使用的源端口,受权限限制且不能余-l一起使用
12. -r 指定nc使用的源端口和目的端口,不能使用系统原来就指定的那些端口
13. -S 允许在RFC 2385的TCP MD5签名选项
14. -s source_ip_address
15. 指定用于发包的接口的IP地址,不能和-l一起使用
16. -T ToS
17. 指定链接的IP服务类型(TOS)
18. -C 自动换行
19. -t 使nc能够与telnet交互
20. -U 使用UNIX域socket
21. -u 使用udp代替默认的tcp选项
22. -v 输出详细报告
23. -w timeout
24. 一个链接一段时间无操作,则自动断开,默认无超时
25. -X proxy_version
26. 指定nc使用代理时所采用的协议,可选的有socksv4,socks5以及https。默认socks5
27. -x proxy_address[:port]
28. 指定nc使用的代理地址和端口。默认设置:1080(SOCKS),3128(HTTPS)
29. -z 只监听不发送任何包
nc每次启动监听后,都会在客户端连接完成并退出的同时,服务端一同退出。所以,如果需要不断的使用nc进行数据传输,需要在脚本中使用循环。利用nc实现更多的功能,可参考其rpm提供的参考脚本:
# rpm -qd nc