bash 支持对 /dev/tcp/ 下特殊设备的读写,/dev/udp/ 同理。IP 后的数字即为端口。其他壳程序,例如 zsh 就无法进行这样的操作。

for i in {1..65535}; do
    (echo </dev/tcp/127.0.0.1/$i) 2>/dev/null \
  && echo "[+]Open port at $i" \
  || echo -n '.';
done