从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
实际上尝试创建一个连接,但不一定总是您想要的。