使用GNU的parallel和netcat加快扫描端口

seq 1 255 | parallel -j+0 'nc -w 1 -z -v 192.168.1.{} 80'

nmap扫描单个主机和单个端口需要5秒

time (nmap -p 80 192.168.1.1 &> /dev/null)
real 0m5.109s
user 0m0.102s
sys 0m0.004s

使用netcat扫描C内网的80端口需要2.5分钟

time (for NUM in {1..255} ; do nc -w 1 -z -v 192.168.1.${NUM} 80 ; done &> /dev/null)

real 2m28.651s
user 0m0.136s
sys 0m0.341s

使用parallel, 我扫描C内网的80端口 只需要2秒

time (seq 1 255 | parallel -j255 'nc -w 1 -z -v 192.168.1.{} 80' &> /dev/null)

real 0m1.957s
user 0m0.457s
sys 0m0.994s

这里需要注意这里使用是GNU的parallel

各发行版版本