为什么在执行端口扫描时无法使用/浏览互联网?

为什么在执行端口扫描时无法使用/浏览互联网?

我正在通过 Virtualbox 在 Windows 上将 Kali 的滚动版本作为客户操作系统运行,并处理以下问题......(我认为这是由于软件配置错误造成的)

我目前正在尝试(同时)做三件事

  • 测试质量扫描
  • 使用 Nload 观察 masscan 性能
  • 浏览网络

正如标题所说,当我尝试同时做这几件事时,我的互联网性能完全不存在。我也无法 ping google。我读过这篇文章https://www.cyberciti.biz/faq/linux-tcp-tuning/关于提高性能,我遵循了文章的建议,但仍然遇到同样的问题。这是怎么回事?我更感兴趣的是了解从哪里可以解决这个问题,而不是实际的解决方案(尽管我确实想解决这个问题)。我以前使用 Windows,所以我不知道在 Linux 中从哪里开始解决这个问题。Nload 显示我的吞吐量为 57.59 kBit/s,这远远达不到我的带宽。为什么这个吞吐量这么低?我应该在哪里查看以确定配置错误。

另外值得注意的是,我可以合理地说我的硬件能够做更多的事情,因为我有一个 16 核的盒子,有 48GB 的​​ RAM,其中 8GB 专用于这个特定的 Kali 实例。

另外值得注意的是,当我通过 Google 的搜索引擎工具进行速度测试时,我的下载速度为 141.1 Mbps,上传速度为 21.6 Mbps。虽然这与我的主机操作系统不同,但它仍然比我使用 masscan 看到的结果要好得多。Nload 输出在测试时也与这些结果相匹配。这些最后的观察结果让我认为这是软件配置错误。

答案1

您的 NAT 上的端口可能用完了,或者 NAT 的映射表可能已超负荷。典型的 NAPT 设置只有一个公共 IP 地址,因此它只能使用 64Ki TCP 端口和 64Ki UDP 端口。

即使 TCP 连接完全关闭,连接也会进入 TIME_WAIT 状态约 2 分钟,以确保连接的 4 元组不会被重新用于新连接,而旧连接的延迟数据包可能仍在网络中。masscan 之类的工具可能必须能够智能地处理来自同一源 TCP 端口和 IP 地址的多个 4 元组,但单独的 NAT 可能没有那么智能,并且可能在 NAT 公共 IP 地址上为每个连接使用单独的 TCP 端口,这会很快耗尽所有 64Ki 个可能的 TCP 端口。

NAPT 网关无法判断 UDP 流是否结束,因此它们通常会将 UDP 端口映射保持 30 秒到几分钟的超时时间。

即使 NAT 能够智能地对大量连接 4 元组重复使用相同的源 TCP 或 UDP 端口,masscan 可以创建的大量连接也可能超出 NAT 跟踪所有并行打开连接的能力。

如果您尝试以 masscan 的“性能测试”示例速率 100,000 扫描所有约 40 亿个 IPv4 地址,那么您将在不到一秒的时间内达到 64Ki 端口号限制。我预计每秒超过 500 次尝试会导致此问题。难怪他们的默认速率只有 100。

答案2

这最终成为与 Virtualbox 中的 NAT 设置相关的问题。我并不完全清楚 Virtual Box 如何管理 NAT 职责,因此无法给出技术解释,但在我从“NAT”更改为“桥接 NAT”后,这个问题就消失了。我还没有测试过 Masscan,但在原始配置中使用 ALTDNS 和 NAT 时,我在评论中讨论的子域名枚举花费了 3 个多小时,我不得不反复关闭/打开接口。经过调整后,时间变成了 30 分钟,无需重置接口。

答案3

顺便说一句,直接回答你的问题,你的路由器正在超载,它会对你发送的每个数据包进行本机地址转换和重新路由,这减慢了你自己路由器的响应速度。

您可以尝试将您的电脑直接添加到路由器上的非军事区。

尽管我不确定这对传出请求而非传入请求有多大帮助。

相关内容