系统环境:Centos7
nc的作用:
(1)实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口
(2)端口的扫描,nc可以作为client发起TCP或UDP连接
(3)传输文件
(4)网络测速
(5)克隆硬盘或分区
(6)反弹服务器shell
nc的常用的几个参数如下所列:
参数 | 含义 |
---|---|
-4 | 强制nc只能使用IPv4地址 |
-6 | 强制nc只能使用IPv6地址 |
-l | 用于指定nc将处于侦听模式。指定该参数,则意味着nc被当作server,侦听并接受连接,而非向其它地址发起连接 |
-s | 指定发送数据的源IP地址,适用于多网卡机 |
-u | 指定nc使用UDP协议,默认为TCP |
-n | 不使用DNS或者服务不做任何地址,主机名或者端口的查询 |
-v | 输出交互或出错信息,新手调试时尤为有用 |
-w | 超时秒数,后面跟数字 |
-z | 表示zero,表示扫描时不发送任何数据 |
-D | 在socket上开启debugging功能 |
-d | 不从标准输入中读取任何消息 |
-r | 指定源 和/或 目的端口是随机选择的,而不是系统按照一个范围或者顺序分配的 |
-C | 发送CRLF做为行尾符 |
nc监听IPv6端口:
nc -6ul 666
开启后,通过 “netstat -ano |grep 666” 可查看 666 端口占用情况,如下图,
可以看到,666端口绑定在 IPv6地址上
nc向IPv6地址的666端口发送数据:
如,在192.168.149.130上向192.168.149.128(eth0的IPv6地址为:fe80::eaaa:ffdc:fad6:9a28)的IPv6端口666发送数据,操作如下:
# 192.168.149.130上执行以下命令:
nc -6unv fe80::eaaa:ffdc:fad6:9a28%eth0 666
#注意,IPv6地址后需要加上"%eth0",不然数据无法得知出去的网卡线路
# 192.168.149.128上执行以下命令:
nc -6ul 666 #监听666端口