4

Mac OS X で nc ユーティリティを使用しているときに、ちょっとした問題が発生しました。このユーティリティは、ポートが開いているかどうか、およびデーモンが実行されているバージョンを確認するための迅速で汚れたソリューションとしてよく使用します。

先日、新しいコンピューターのセットを展開しました。椅子を離れることなく、実行されている sshd のバージョンを確認したかったのです。

これは私が実行したコマンドと結果の出力です:

$ for i in {183..200}; do echo "hello" | nc -n -w 2 -v 10.120.113.$i 22; done
Connection to 10.120.113.183 22 port [tcp/*] succeeded!
SSH-2.0-OpenSSH_5.9
Protocol mismatch.
nc: connect to 10.120.113.184 port 22 (tcp) failed: Connection refused
^C
$

183 で最初のマシンを見つけ、デーモンのバージョンを返します。sshd が 184 で実行されているようには見えませんが、185 に達すると停止するだけなので、ctrl+c で強制終了する必要があります。

nc のマニュアル ページを理解しているので、「-w」スイッチを使用するとタイムアウトするはずですが、そうではありません。複数のマシンからの同じ問題。

これは単にマニュアルページを誤解しているだけですか? 応答がない場合、X 秒後に nc をタイムアウトにする他の方法はありますか? Mac OS X の組み込みツールを使用してこれを行う他の方法はありますか?

また、「-z」スイッチのみを使用して nc を実行してみましたが、同じ結果が得られました。マシンは本番環境に配置されているため、nmap などのサードパーティ アプリケーションをインストールすることはできません。

Platform: Mac OS X 10.8.4
Executable: /usr/bin/nc

この質問に回答があった場合は申し訳ありませんが、検索しましたが、これに対する解決策が見つかりませんでした。

4

2 に答える 2

14

あなたはその選択肢を探していると思い-Gます。マニュアルページから:

-G conntimeout 秒単位の TCP 接続タイムアウト。

-w接続後のタイムアウトを設定するために使用されます。オプションは、接続前-Gのタイムアウトを設定するために使用されます。これはあなたが望むものを与えるはずです

nc -n -G 2 -v xxx.xxx.xxx.xxx 22
于 2016-02-01T22:42:29.507 に答える