nc 常用参数
-l
用于指定nc将处于侦听模式。指定该参数,则意味着nc被当作server,侦听并接受连接,而非向其它地址发起连接。
-p <port>
暂未用到(老版本的nc可能需要在端口号前加-p参数,下面测试环境是centos6.6,nc版本是nc-1.84,未用到-p参数)
-s
指定发送数据的源IP地址,适用于多网卡机
-u
指定nc使用UDP协议,默认为TCP
-v
输出交互或出错信息,新手调试时尤为有用
-w
超时秒数,后面跟数字
-z
表示zero,表示扫描时不发送任何数据
目的地址和源地址都是变量
您可以使用nc命令测试从源地址10.206.26.4-64到目的地址10.206.137.141-10.206.137.172之间的10086端口是否可用。以下是示例命令:
for i in {4..64}; do for j in {141..172}; do nc -vz -s 10.206.26.$i -w 1 10.206.137.$j 10086; done; done
其中,{4..64}
表示从4到64的数字范围,{141..172}
表示从141到172的数字范围,-s 10.206.26.$i
指定源IP地址为10.206.26.X,-w 1
指定超时时间为1秒,10.206.137.$j
是要测试的目的IP地址,10086
是要测试的端口号。
该命令将测试从10.206.26.4到10.206.26.64之间的所有IP地址到10.206.137.141到10.206.137.172之间的所有IP地址之间的10086端口是否可用。如果端口可用,则输出类似于以下内容:
Connection to 10.206.137.X 10086 port [tcp/*] succeeded!
其中,X是当前测试的目的IP地址的最后一位数字。
如果端口不可用,则输出类似于以下内容:
nc: connect to 10.206.137.X port 10086 (tcp) timed out: Operation now in progress
您可以根据输出内容判断源地址和目的地址之间的哪些主机上的10086端口可用。
目的地址和源地址都是确定的
nc -vz -w 1 10.206.137.141 10086
目的地址是变量
for i in {1..254}; do nc -vz 192.168.1.$i 80; done
源地址是变量
for i in {4..64}; do nc -vz -s 10.206.27.$i -w 1 10.206.137.141 10086; done
枚举类型
for i in {71,72,74,75}; do nc -vz -s 10.206.27.$i -w 1 10.206.137.141 10086; done