bashスクリプトから、ポート445
がサーバー上で開いているか、リッスンしているかどうかをすばやく確認するにはどうすればよいですか。
私はいくつかのオプションを試しましたが、簡単なものが欲しいです:
1. lsof -i :445
(数秒かかります)
2. netstat -an |grep 445 |grep LISTEN
(数秒かかります)
3. telnet
(戻りません)
4. nmap
、netcat
サーバーで使用できません
最初に列挙せず、その後に歩む方法を知っておくといいでしょう。
netstat -lnt
(あり-t
、なし-a
)では、リスニングTCP接続のみに出力が制限されます。少しスピードアップするかもしれません。-4
IPv6が必要ない場合にのみ、IPv4 を追加できます。
netstat -an | grep PORTNUMBER | grep -i listen
出力が空の場合、ポートは使用されていません。
lsof
あなたにとって遅いのかはわかりませんが、通常はあなたが挙げたソリューションの中で最高です。あなたのnetstat
解決策はあまり信頼できません(あなたが使うときはいつでもそれを推測できますgrep
;とにかく誰かが例えば4450で聞いているならそれはtrueを返します)。telnet
そして、netcat
実際に接続を作成しようとしますが、それが常に希望するものであるとは限りません。