测试开放端口的最佳方法

测试开放端口的最佳方法

我们有一个要求,必须测试 500 多个端口开放规则。因此需要对以下几点提出建议。

  • 哪个是测试端口连通性的最佳工具。Telnet 就足够了。
  • 如果没有应用程序正在监听端口,telnet 将会从该端口获取响应。

我们正在 Amazon VPC 中根据安全组进行检查。

答案1

从机器内部netstat -ntlp/netstat -nulp将分别显示所有打开的 TCP / UDP 端口(和相关程序)。

从外部,nmap -sTnmap -sU分别显示开放的 TCP/UDP 端口。

请记住,这些命令可能需要 root 权限,同时还要确保在防火墙中将扫描源列入白名单 - 否则,如果主机使用类似 fail2ban 的东西,您可能会发现自己被锁定。

答案2

看看 nmap(http://nmap.org)。它可以进行多种类型的扫描,适用于多种操作系统。还有一个 Windows 版本和 GUI

答案3

您可以使用 nmap 测试主机(或主机列表)上的端口(或端口列表)。示例:

nmap 192.168.0.101-150 -p 22,80,443

检查 150 台主机上的每台主机的三个端口,并生成格式良好的报告。如果端口上没有程序监听,nmap 将显示该端口为“已关闭”。如果防火墙阻止测试计算机访问该端口,则该端口将显示为“已过滤”。

您可以执行相同的扫描并生成每行一个主机的报告,适合用于 grep 或导入到另一个程序:

nmap 192.168.0.101-150 -p 22,80,443 -oG -

(请注意上面行中的最后一个 - 表示输出到标准输出。如果需要,请更改为文件名。)

答案4

您应该使用 nc(netcat)来扫描任何 tcp 或 udp 端口​​。

nc(或 netcat)实用程序可用于涉及 TCP 或 UDP 的几乎所有事情。它可以打开 TCP 连接、发送 UDP 数据包、监听任意 TCP 和 UDP 端口、进行端口扫描以及处理 IPv4 和 IPv6。与 telnet(1) 不同,nc 脚本编写得很好,并且将错误消息分离到标准错误上,而不是像 telnet(1) 那样将它们发送到标准输出。

基本上,

nc -z -wX <host> <port>

-z

指定 nc 应仅扫描监听守护进程,而不向它们发送任何数据。将此选项与 -l 选项结合使用是错误的。更简洁的用法:

-w3

如果连接和标准输入空闲时间超过超时秒,则连接将自动关闭。-w 标志对 -l 选项没有影响,也就是说,无论是否使用 -w 标志,nc 都会永远监听连接。默认为无超时。

例如;

nc -z -w3 example.com 22

将扫描 example.com 上的端口 22 而不发送任何数据,超时为 3 秒。

相关内容