当我执行“nmap localhost”时,会列出一些开放端口,但不会列出其他端口。例如,会列出 22 上的 SSH,但不会列出 10022 上的 SSH。在我的情况下,主机的端口 10022 是 NAT 端口转发到 VBoxHeadless VM SSH,而主机的端口 22 是它自己的 SSH 端口。同时会显示端口 25 和 10025,而 hp 10025 是真正的 VBoxHeadless 提供的 SMTP 服务器,而 hp 25 只是重定向到那里。
答案1
您是否指定要扫描哪些端口?默认情况下,nmap 仅扫描每个协议的已知端口。从文档:
Nmap 提供指定扫描哪些端口以及扫描顺序是随机的还是连续的选项。默认情况下,Nmap 会扫描每个协议最常见的 1,000 个端口。
您必须指定 -p 以获得更大的范围:
-p(仅扫描指定端口)
此选项指定要扫描的端口并覆盖默认值。可以使用单个端口号,也可以使用连字符分隔的范围(例如 1-1023)。可以省略范围的起始值和/或结束值,这会导致 Nmap 分别使用 1 和 65535。因此,您可以指定 -p- 来扫描从 1 到 65535 的端口。如果明确指定,则可以扫描端口零。对于 IP 协议扫描(-sO),此选项指定要扫描的协议号(0-255)。