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