GNU/Linux >> Linux の 問題 >  >> Linux

NetCat (nc) の実行中に複数のポートを調べる

-w 1 を使用しています タイムアウトを 1 秒に制限します。 -v も使用しています コメントに記載されている理由により。 -n を使用しました 逆引き DNS ルックアップの遅延を拒否するには...

[[email protected] ~]$ 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
[[email protected] ~]$

私と同じくらい GNU Parallel が好きなら、これを試してみてください:

parallel nc -vz host ::: 22 80 443 8080

サンプル出力:

Connection to foo.example.com 22 port [tcp/ssh] succeeded!
nc: connect to foo.example.com port 80 (tcp) failed: Connection refused
nc: connect to foo.example.com port 443 (tcp) failed: Connection refused
nc: connect to foo.example.com port 8080 (tcp) failed: Connection refused

この方法は、ポートへの接続をシリアルではなくパラレルでテストしているため、場合によっては高速です。具体的には、これはリモート ホスト (または介在するファイアウォール) がパケットを破棄してステルス状態を維持する場所です (接続の成功や強制的な拒否とは対照的に)。

ヒント: ほとんどの Linux ディストリビューションでは、parallel をインストールできます。 パッケージマネージャーから。

更新: parallel で 、これは非常によく一般化されており、複数のホストと複数のポートが必要になることがよくあるケースをカバーします。次の例では parallel を使用しています 外積を反復処理するため、ネストされたループを記述する必要はありません。

parallel nc -vz ::: host1 host2 host3 ::: 22 80 443 8080

出力:

Connection to host1 22 port [tcp/ssh] succeeded!
Connection to host1 80 port [tcp/http] succeeded!
Connection to host1 443 port [tcp/https] succeeded!
nc: connect to host1 port 8080 (tcp) failed: Connection refused
Connection to host2 22 port [tcp/ssh] succeeded!
nc: connect to host2 port 80 (tcp) failed: Connection refused
nc: connect to host2 port 443 (tcp) failed: Connection refused
nc: connect to host2 port 8080 (tcp) failed: Connection refused
Connection to host3 22 port [tcp/ssh] succeeded!
nc: connect to host3 port 80 (tcp) failed: Connection refused
nc: connect to host3 port 8080 (tcp) failed: Connection refused
nc: connect to host3 port 443 (tcp) failed: Connection refused

前の例のように parallel 接続テストを並行して実行します。デフォルトの並列処理はシステムのスレッド数ですが、-j で簡単にオーバーライドできることに注意してください。 任意の値に切り替えます。 parallel -j 50 ... で簡単に逃げることができます ソケットのテストは CPU を集中的に使用するタスクではないため、それ以上です。


Linux
  1. 複数のポートで ssh を実行する方法

  2. Ubuntu で実行されているポートとプロセスを確認する

  3. 特定のポートで実行されている rmiregistry を閉じるには?

  1. ポート 80 で Node.js を実行する場合のベスト プラクティス (Ubuntu / Linode)

  2. MongoDB errno 111 への接続が拒否されました

  3. Linux コマンドは未使用のポートを取得します

  1. ポート 80 で実行中のプロセスを強制終了する

  2. 最大ポート番号はいくつですか?

  3. iptables 使用時の REJECT と DROP