Linux

執行 NetCat (nc) 時檢查多個埠

  • November 21, 2017

我正在尋找測試主機上的特定埠是否打開。我在用:

nc -z host 22
nc -z host 80
nc -z host 443
nc -z host 8080

這可行,但最好使用像這樣的單線:

nc -z host 22 80 443 8080

這是行不通的。

如果可能的話,我想避免使用nc -z host 22-8080手冊頁中指出的埠範圍,因為我要檢查的埠#s 有很大的差距。另外,我不想掃描每個埠並被視為掃描開放埠。

如果沒有編寫 bash 循環,我有哪些測試埠是否打開的選項?我有幾十台主機,每台主機都有幾個埠要檢查。

我在-w 1下面使用將超時限制為 1 秒。我也使用-v評論中提到的原因。我曾經-n拒絕反向 DNS 查找的延遲…

[mpenning@tsunami ~]$ for i in $(echo "172.16.1.1,172.16.1.5"|tr "," "\n"); do echo -e "22\n80\n443\n8080" | xargs -i nc -w 1 -zvn $i {}; done
(UNKNOWN) [172.16.1.1] 22 (ssh) open
(UNKNOWN) [172.16.1.1] 80 (www) : Connection timed out
(UNKNOWN) [172.16.1.1] 443 (https) open
(UNKNOWN) [172.16.1.1] 8080 (http-alt) : Connection timed out
(UNKNOWN) [172.16.1.5] 22 (ssh) open
(UNKNOWN) [172.16.1.5] 80 (www) open
(UNKNOWN) [172.16.1.5] 443 (https) open
(UNKNOWN) [172.16.1.5] 8080 (http-alt) : Connection refused
[mpenning@tsunami ~]$

引用自:https://serverfault.com/questions/410415