大约两周以来,我朋友的家人的互联网连接出现了问题。他们说,连接会完全断开几个小时(尽管他们似乎仍连接到他们的 ISP),或者速度非常慢,即使没有人使用电脑。由于我从来没有在发生这种情况时在那里,所以我正在寻找一种方法来监控几周内的网络,以分析可能存在的问题。
他们的网络由大约 6 台计算机组成,其中 2 台通过 wifi 访问 LAN,1 个由 ISP 提供的电缆调制解调器,1 个路由器和 2 个交换机。
我考虑在调制解调器和路由器之间连接一台带有两个网卡的旧电脑,运行适合监控网络流量、检测连接断开和分析数据包的 Linux 发行版。
目标
- 监控流量,检测路由器、交换机和/或 ISP 之间的连接中断。
- 分析软件包,过滤掉常用程序(可能是游戏?)并检测带宽峰值(例如,当某个软件(通过端口检测)使用大量带宽时,可能会降低网络速度)
有人知道如何实现这一点吗?是否有适合完成此类任务的功能齐全的 Linux 发行版?或者我应该以完全不同的方式完成此任务?
答案1
您可以将 Windows 或 Linux 机器设置为路由器(Windows:Google“Internet 连接共享”,Linux:Google“linux nat router”),然后使用 Wireshark 或 tcpdump 捕获所有流量。
更好的办法是在路由器和电缆调制解调器之间放置一个集线器(或具有端口镜像功能的交换机),并将一个单独的盒子连接到集线器以捕获所有流量。所有流量都将通过所有连接的端口发送出去,因此主机可以嗅探所有流量。
执行此操作的工具是 Wireshark 和 tcpdump。请记住,如果您嗅探所有流量,则必须将其存储在某个地方(因此您需要一个大磁盘)。
关于流量本身的分析:您可能在大海捞针。“连接丢失”不是实际的数据包(也许 TCP RST 数据包除外),因此您可能在寻找实际上不存在的东西。要求您的用户保留“连接失败”的详细日志,包括时间和访问的网站,以便您缩小搜索范围。