问题标签 [trafficshaping]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
623 浏览

google-cloud-storage - gsutil rsync 正在杀死我的电缆调制解调器;寻找命令行节流

我编写了 bash 脚本来将文件同步到 Google Nearline 存储桶;这是原始照片和音乐,有这么多 GB 的文件。我们运行许多设备,Netflix/Amazon 流媒体、游戏、手机、平板电脑、Skype、大小下载 - 数周内同时运行,没有任何问题。每次在启动 gsutil rsync 的几分钟内,我的互联网连接都会停止,我需要拔下电缆调制解调器。无论我是否使用 -m 开关,它都与 gsutil rsync 隔离。这已被确认为问题 20 多次。

从“网络链接调节器”首选项窗格进行限制时,我已成功使用 gsutil rsync,但我不想限制整个系统。我正在使用 El Capitan 10.11.3。即使从 Google 的 gsutil 文档中,我也已经阅读了几个选项,例如“涓涓细流”,但链接很糟糕,我认为它不是基于当前的 Mac OS 构建的。我有一个单独的脚本,它也可以使用 pfctl 工作,但我必须传递我能找到的所有可能的 Google IP 范围,并且该脚本只有在我是 root 时才有效。

我正在寻找解决此问题的任何方法,并且我认为肯定会有一种更简单的方法来限制 Mac 上的 bash 脚本中的命令行实用程序,但我找不到适用于 El Capitan 的方法。有什么建议么?

0 投票
1 回答
2204 浏览

linux - tc 过滤器不匹配 ip 地址,只有范围

我正在尝试建立虚拟网络进行模拟。链接由 IP 地址确定,我可以调整流量并为网络掩码定义的范围设置延迟

但我只需要过滤特定的 IP 地址,例如

在 /24 的第一种情况下,所有数据包都被正确捕获。没有网络掩码的第二个配置不会捕获任何数据包。

编辑:仅将分配给已定义接口的 IP 地址捕获为目标。但是如何减慢其他IP地址?

0 投票
1 回答
2903 浏览

docker - 使用 tc 限制 Docker 容器的传出网络带宽

我正在尝试对 Docker 容器进行带宽限制。为了限制下行带宽,我可以先找到容器的veth接口,使用tc tc qdisc add dev vethpair1 root tbf rate 1mbit latency 50ms burst 10000:。如果我想限制上行带宽,我需要指定--cap-add=NET_ADMIN何时启动容器并在容器eth0内使用相同的 tc 命令。是否有任何非侵入性的方法可以做到这一点,以便我可以管理任何容器而不赋予它特权?

0 投票
2 回答
921 浏览

linux - 如何对 golang http 上传进行外部速率限制?

我有一个 golang 实用程序,它通过 https 将大量数据上传到 OpenStack 对象存储。我在 Ubuntu Linux 上运行它,我想确保它的最大上传带宽不超过 2,500KB/s,最好不影响同一系统上的其他用户(即减慢以太网接口)。

我怎样才能做到这一点,最好不改变我的源代码?到目前为止,我已经尝试了几种方法:

  1. 流量整形:我一直无法找出适当的网络整形技术来影响单个进程,尽管我知道使用 and 应该是可能iptablestc。任何有关如何执行此操作的指导将不胜感激。我的网络背景不是很广泛。
  2. 流量限制:我尝试使用flowratego 中的包来限制我对上传的写入。这没有任何明显的效果。我认为这不起作用,因为该github.com/ncw/swift.ObjectCreateFile.Write()方法不会在收到数据时上传数据,而是在关闭时上传数据。不过,我可能会误解这一点。
  3. 涓涓细流:我尝试了该trickle命令,但它与 golang 可执行文件不兼容(请参阅此问题
0 投票
2 回答
1689 浏览

linux - 通过 GRE 隧道使用 tc 进行流量镜像仅获取入口流量

我试图在tcGRE-Tunnel的帮助下从一个接口镜像“所有”网络流量tun0。GRE 隧道工作正常,我可以通过它 ping 并发送数据包,没有任何问题。我使用以下命令添加了tc-qdiscand :tc-filter

就像在本教程中一样

问题

问题是只有入口流量通过 GRE 隧道。当我通过接口 ping 另一台计算机时,ens5我只能icmp echo replies通过tun0接口获得。我究竟做错了什么?

调试

0 投票
2 回答
1431 浏览

c# - 我的 C# 应用程序中的带宽整形

我有一个使用本地库的 C# 应用程序,该库使用 UDP 通过 Internet 将视频发送到其他 IP。我对那个图书馆没有流量控制。

WebRequest我的应用程序还使用我可以控制它们的方式调用另一台服务器的 Web 服务。

问题是:

当我的互联网带宽较低时,视频流会占用我所有的带宽。因此,在那段时间里,我无法从我的 Web 服务方法中得到响应。

有什么方法可以优先考虑WebRequest或为他们节省一些带宽,以便我可以安全地得到响应?

0 投票
2 回答
2900 浏览

trafficshaping - Linux 中的 TC(流量控制)

我正在使用此页面中的代码来限制我的上传和下载带宽。

https://help.atmail.com/hc/en-us/articles/201566464-Throttling-Bandwidth-using-Traffic-Controller-for-Linux

编码:

我更改了“IP=0.0.0.0”和“$IP/0”,因此它可以在任何机器上使用(具有所有 IP)。

当我用http://www.speedtest.net/之类的网站对其进行测试以查看效果时,我的上传速度为 1mbps(正如我在文件中配置的那样),但下载不听我的命令。下载带宽远高于配置值。

默认值:

eth0 的带宽整形状态:

过滤器后的值:

eth0 的带宽整形状态:

有谁知道可能是什么问题?

0 投票
0 回答
220 浏览

linux-kernel - tc 多个管道操作结果性能下降,寻求更好的方法

我一直在尝试使用 tc、tc-nat 和 tc-pedit 来执行无状态的 nat 操作。我的目标是将数据包从一个接口 (eth0) 镜像到另一个接口 (eth1),但我还想更改目标 IP 和目标 MAC,以便可以将数据包传递到另一台主机。

主机 A [Eth0 -> Eth1(更改 IP dst,更改 MAC dst)] -------> HOST B

因为我有其他应用程序在 Eth0 上侦听,所以我无法在 Eth0 的入口/出口上执行 tc-nat 或 tc-pedit。所以这就是我所做的

  1. 创建一个虚拟接口
  2. 将数据包从 Eth0 镜像到虚拟接口
  3. 在 dummy 的出口端运行 tc-nat(更改目标 IP),通过管道进入 tc-pedit(更改目标 MAC),并通过管道镜像到 Eth1。

上述装置按预期工作,但性能很差(特别是与基于 libpcap 的应用程序(如 tcpbridge)相比时)。

我开始这种方法是希望在内核空间与用户空间中基于 libpcap 的应用程序相比获得更好的性能。我很好奇有没有更好的方法。

0 投票
1 回答
630 浏览

limit - 如何使用 tc 命令和 cbq-only 过滤器限制内部 IP 地址的带宽速度?

我想限制内部 IP 地址(如 10.8.0.1)的带宽速度,并且一直在尝试使用以下规则:

这些规则适用于“内部”IP 地址,但不适用于内部。我无法使用 htb 过滤器,因为我的 VPS 基于 OpenVZ 并且内核不支持它。

谢谢。

0 投票
0 回答
375 浏览

shell - 使用 qdisc 和 tc 对 ipset 进行带宽整形

我正在尝试使用本教程对 ipset 进行带宽控制。我已对其进行了修改以获取 ipsetnames。

这是我的带宽共享脚本。

当我尝试启动 bandwithshaping 脚本时,我得到以下输出。开始带宽整形:非法“匹配”

这不是在塑造带宽。如果我使用 IP 地址,它可以正常工作。

我是 qdisc 和 tc 的新手,可以这样做吗?

提前致谢。