Linux
執行 NetCat (nc) 時檢查多個埠
我正在尋找測試主機上的特定埠是否打開。我在用:
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 ~]$