我们有一个要求,必须测试 500 多个端口开放规则。因此需要对以下几点提出建议。
- 哪个是测试端口连通性的最佳工具。Telnet 就足够了。
- 如果没有应用程序正在监听端口,telnet 将会从该端口获取响应。
我们正在 Amazon VPC 中根据安全组进行检查。
答案1
从机器内部netstat -ntlp
/netstat -nulp
将分别显示所有打开的 TCP / UDP 端口(和相关程序)。
从外部,nmap -sT
将nmap -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 秒。