监视/分析整个网络(几个子网)上的网络流量的最佳工具是什么?
我正在寻找可以帮助我解决带宽问题的东西,例如,当用户开始抱怨“网络速度慢”时
有哪些更好的工具/实用程序可用于测试链路上的实际带宽?就我而言,我正在测试通过 wifi 网桥的实际吞吐量。
我意识到已经提出了许多类似的问题,但到目前为止我还没有找到解决我的问题的方法。
我有一个虚拟 linux 服务器(运行 Debian Squeeze),用于测试网站速度,以测量所述网站加载时间的增加和减少。我试图限制该服务器的带宽和延迟,以便能够接近网站上的真实世界加载时间,但到目前为止都失败了。
我特别想要的是以下内容:
我一直在阅读 netem 并使用该tc命令,但它仍然有点超出我的头脑。我设法将这个命令放在一起来控制似乎有效的延迟,但我什至不确定它是否只处理传出延迟或两者兼而有之:
tc qdisc add dev eth0 root netem delay 50ms
Run Code Online (Sandbox Code Playgroud)
周围的任何网络专家可以帮助我吗?
编辑:
经过进一步研究,我已经实现了一半的目标,使用此命令所有传出流量的行为都符合我的要求:
tc qdisc add dev eth0 root tbf rate 4.0mbit latency 50ms burst 50kb mtu 10000
Run Code Online (Sandbox Code Playgroud)
但是,我仍然无法正确限制传入流量。我了解到我应该使用“入口监管器过滤器”我一直在尝试使用下面的命令来做到这一点,尝试使用不同的值,但没有运气。
tc qdisc add dev eth0 ingress
tc filter add dev eth0 parent ffff: protocol ip u32 match ip src 0.0.0.0/0 flowid :1 police rate 1.0mbit mtu 10000 burst 10k drop
Run Code Online (Sandbox Code Playgroud)
虽然带宽受命令影响,但上述值使速度从 …
我可以从我们的 ISP 统计数据中看到,全天都在使用大量带宽,尽管我不确定,但我怀疑有人在使用我们的无线路由器。我们的 PC 都运行各种类型的窗口,是否有实用程序/嗅探器可以用来检测带宽的去向?
我正在寻找消费者和专业互联网连接之间的技术差异。我所说的“专业”是指:
提出这个问题的另一种方法是“为了自托管,办公室宽带必须与数据中心提供的宽带进行哪些比较”。
我有一个小型(windows)网络,上面有几个人。
我们可以通过 BT 路由器访问互联网
一般来说,一切都很好,但偶尔,我们似乎会经历带宽的急剧损失。
我可能正在遭受僵尸 PC 或运行洪流软件的用户的困扰......或者我可能只是我的 ISP 对我施加了某种限制?
我想知道这是怎么回事。
是否有一个简单的工具可以运行,让我了解一个真实世界(哪些 PC 上的哪些应用程序)在任何给定点使用所有带宽?
我有两台通过 1 Gbit LAN 连接的 Debian Linux 机器。我可以使用原始 HTTP 文件传输来衡量这一点,wget它在任一方向上的传输速度约为 100MB/s。
当我现在使用 时scp,我得到的最大无压缩约为15MB/s。-C根据内容,使用该标志启用压缩可让我达到高达50MB/s 的速度。
尽管如此,这里似乎浪费了很多带宽。很长一段时间我都没有打扰,直到我真的不得不考虑一些非常大的日志文件传输,才意识到它scp是多么的慢。scp即使在公司环境中,我也很自然地使用,因为所有基础设施都是为它设置的。
是什么限制了 scp 的性能?由于加密,它是否受 CPU 限制?当我使用htop它时,它似乎没有使用多核 CPU,只有四个 CPU 中的一个达到了最大值。
有没有办法提高吞吐量?我有 HTTP 服务器和 samba 可用,但为了在 Linux 机器之间移动文件,我通常只使用 SSH,这就是我成长的方式。但这现在让我想到了,似乎我需要考虑其他大量数据的传输方式。
HTTP 仅用于 PHP/Java/whatever 中的特定应用程序,而 samba 用于某些特殊原因,我们需要从 Windows 机器访问。
我希望能够限制我服务器上的 SSH 带宽。即每个 sshd 进程应该限制在 200Kb/s 或类似的东西。
scp 具有此功能,但 ssh 更适合响应式交互式使用,似乎没有此选项。但是,我想将 -D(SOCKS 代理)功能与某种限制流量的能力结合起来。
对此有任何选择吗?
我想只允许一个 IP 每天使用最多 1GB 的流量,如果超过该限制,则来自该 IP 的所有请求都将被丢弃,直到第二天。但是,在一定数量的请求后断开连接的更简单的解决方案就足够了。
是否已经有某种模块可以做到这一点?或者我可以通过像 iptables 这样的东西来实现这一点?
谢谢
我试图弄清楚如何跟踪来自 Docker 容器的带宽。
通常我使用--uid-owner作为标记来跟踪给定用户的带宽使用情况。但是,即使我以 docker 容器内的用户身份运行所有进程--uid-owner也无法正常工作。--uid-owner我没有使用,而是尝试只跟踪来自 docker 创建的虚拟以太网设备的所有数据包。
然而,这最终也无济于事:无论我尝试什么,都没有捕获到数据包。
出于绝望,我尝试将规则放在所有链条中,但都没有结果。
Chain PREROUTING (policy ACCEPT 3041 packets, 7849454 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 MARK tcp -- veth5a36 any anywhere anywhere MARK set 0x1
Chain INPUT (policy ACCEPT 273 packets, 23305 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 MARK tcp -- veth5a36 any anywhere anywhere MARK set 0x1
Chain FORWARD …Run Code Online (Sandbox Code Playgroud) bandwidth ×10
networking ×5
monitoring ×2
traffic ×2
wifi ×2
apache-2.2 ×1
datacenter ×1
docker ×1
hosting ×1
ip ×1
iptables ×1
latency ×1
linux ×1
requests ×1
scp ×1
ssh ×1
windows ×1