从一个bash脚本如何快速查找端口445是否在服务器上打开/监听。
我已经试过几个办法了,但我想快点: 1. lsof -i:445(需要数秒) 2. netstat -an |grep 445 |grep LISTEN(需要数秒) 3.Telnet(不返回) 4. 服务器上没有Nmap、netcat
知道一种不先枚举然后再grep的方法将会很好。
从一个bash脚本如何快速查找端口445是否在服务器上打开/监听。
我已经试过几个办法了,但我想快点: 1. lsof -i:445(需要数秒) 2. netstat -an |grep 445 |grep LISTEN(需要数秒) 3.Telnet(不返回) 4. 服务器上没有Nmap、netcat
知道一种不先枚举然后再grep的方法将会很好。
当前回答
Nmap是正确的工具。 简单地使用nmap example.com -p 80
您可以从本地或远程服务器使用它。 它还可以帮助您识别防火墙是否正在阻止访问。
其他回答
如果你使用的是iptables,试试:
iptables -nL
or
iptables -nL | grep 445
你可以这样使用netstat来获得更快的结果:
在Linux上:
netstat -lnt | awk '$6 == "LISTEN" && $4 ~ /\.445$/'
在Mac:
netstat -anp tcp | awk '$6 == "LISTEN" && $4 ~ /\.445$/'
这将输出在端口上侦听的进程列表(本例中为445),如果端口空闲,则不输出任何内容。
Nmap是正确的工具。 简单地使用nmap example.com -p 80
您可以从本地或远程服务器使用它。 它还可以帮助您识别防火墙是否正在阻止访问。
下面是一个适用于Mac和Linux的方法:
netstat -aln | awk '$6 == "LISTEN" && $4 ~ "[\\.\:]445$"'
nc -l 8000
其中8000是端口号。如果端口是空闲的,它将启动一个可以轻松关闭的服务器。如果不是,它将抛出一个错误:
nc: Address already in use