问题标签 [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 投票
1 回答
139 浏览

apache - 如何根据 cookie 限制文件下载带宽

我想在我的 wordpress 网站上创建高级会员计划,例如黄金用户可以无限制地下载文件,但普通用户必须以最大 200KB/s 的速度下载文件。

用户登录 wordpress 时保存 cookie 很简单(setcookie()根据this使用功能),因此实现我的目标的最佳方法似乎是根据 cookie 过滤用户。

我搜索并找到了mod_qosapache 模块,它可以限制带宽并具有特权用户选项,但我不知道如何使用它来排除高级用户的限制。提供的文档不够详细。

还有其他模块,例如mod_cbandandmod_ratelimit和其他,但它们都不能根据 cookie 过滤用户(或者至少我想不出办法这样做)

其他解决方法是根据 IP 和使用过滤用户tciptables限制带宽(就像这里为 open vpn 所做的那样)。但这似乎很困难,因为您必须为每个用户登录执行 shell 命令并将用户 IP 添加到高带宽组。

注意:我有两台单独的服务器,一台是带有 cpanel 的 web 主机,我的 wordpress 网站在其上运行,另一台是我托管文件的 vps。

请原谅我的英语或用词不好,这是我在 stackoverflow 中的第一个问题。提前致谢。

0 投票
1 回答
794 浏览

m3u8 - M3U8 和 Linux tc 中定义的 BANDWIDTH

我有以下 m3u8 文件

我想运行一个 Linux tc 命令来调整前一个文件中每个定义的带宽的带宽,但我不确定带宽值是 bps 还是 kbps。

例如,我想为以下运行一个 tc 命令

哪个命令是正确的

或者

0 投票
1 回答
61 浏览

python - Python Twisted:如何通过 UDP 协议使用 HTB 速率限制

我有一个 DNS 服务器,我想在其上添加一些速率限制,因为我收到了一些突发的查询。

我通读了https://github.com/racker/python-twisted-core/blob/master/doc/examples/shaper.py并根据我的需要进行了调整:

但我得到以下异常:

甚至可以将twisted.protocols.htb与 UDP 协议一起使用吗?

0 投票
1 回答
128 浏览

linux - 是否可以对 iproute tc 命令进行逆向工程?

我的 QOS 在 VyOS 中运行良好,但需要迁移到 TinyCoreLinux,因为我将将此 VM 共享为实验室路由器。VyOS 是 400MB,而 TCL 是 10MB。

使用 VyOS 中的“set”命令,它会生成 tc 输出,如下所示:

有没有办法对其进行逆向工程以获得原始命令?

我尝试过查看生成 tc 命令的 VyOS perl 代码,但它到处都是,没有任何注释,而且我的 perl 知识也不是很好。

我还尝试将 /sbin/tc 重命名为 /sbin/tc_ 并创建了一个 /sbin/tc 脚本来尝试记录命令,但由于某种原因效果不佳。

0 投票
0 回答
1950 浏览

trafficshaping - 无法使用其句柄删除 Linux 流量控制 qdisc

我是 Linux TC 的初学者。我无法弄清楚为什么我添加到接口根目录的某个qdisc不能通过指定其句柄来删除。

是的,我知道root如果它附加到接口的根目录,我可以使用说明符删除它,但我也应该能够通过handle删除它。

在上面的示例中,添加了一个netem qdisc,它的句柄显示为 8005。我尝试通过指定该句柄来删除它。这行不通。但显然,指定root为句柄是有效的。

为什么?

0 投票
0 回答
1042 浏览

youtube - 使用 iptables 阻止 YouTube 视频

我正在尝试找到一种方法来阻止在我孩子的 Ubuntu 计算机上播放 YouTube 视频。我创建了一个 shell 脚本来获取 Youtube IP 并将它们添加到 iptables 以丢弃传入的数据包。为此,我使用whois -h whois.radb.net -- '-i origin AS15169'

问题是我不仅获得了 YouTube IP,还获得了所有 Google IP。因此,阻止它们也会阻止访问其他谷歌服务,其中包括谷歌搜索、谷歌云端硬盘、谷歌邮件等。

我还添加了一些例外,包括域白名单,但这还不够。

这是shell脚本:

我正在尝试找到另一种基于 iptables 的强大解决方案(例如,我的孩子足够聪明,可以绕过主机阻塞)。

我虽然关于 mDPI netfilter 但它似乎不再作为 Ubuntu 20.04 中的 iptables 模块提供。

任何想法?

0 投票
0 回答
20 浏览

linux - 如何检查我的交通控制规则的运行情况?

我对网络流量控制有点陌生。我一直在修改 linux 中的 tc 命令和 iptables,并且一直在用不太方便的方法测试它们,例如,为了防止拥塞,上传多个重文件。有没有办法可以根据我设置的规则来计算网络性能的结果?如果它看起来有点模糊,请原谅我。

0 投票
0 回答
620 浏览

docker - 如何在 docker 容器上设置网络优先级?

我想在特定的 docker 容器上设置较低的优先级,这样它就不会让其他容器的网络容量不足。我正在寻找的模型是这样的:

我想我想在启动 docker 容器时设置它,以便所有退出该容器虚拟接口的数据包都被标记为较低的优先级(较高的数字)。期望的结果是:如果没有拥塞,一切正常。队列备份的那一刻,来自目标容器的流量被取消优先级。

我看到了添加延迟、设置带宽上限或损坏的示例,但没有设置优先级。

另外,我是否需要在 docker bridge/nat 接口上启用队列以便读取 TOS 优先级?

默认情况下,虚拟设备在没有附加 qdisc 的情况下运行(出于性能原因)

0 投票
0 回答
181 浏览

tcp - 如何在 TCP 连接上将数据限制为给定的数据速率

有多个传入 TCP 连接,您需要构建一个系统,该系统将以特定数据速率写入传出 TCP 连接。你如何以编程方式实现这一点。来自不同线程的数据包的顺序并不重要,可以对此做出假设。

这只是一个限速算法吗?或者是否有可以利用的与 TCP 相关的协议特性?

被拒绝的答案:使用队列和计时器通过漏桶方法实现这一点(这是一个面试问题)

0 投票
0 回答
120 浏览

linux-kernel - Network Output Buffering

How can I hold the packets generated from a server until an external signal is delievered. On receiving the signal the host hosting the server should release the packets?

I think it can be done with qdisc module in kernel but i don't know how to use it specifically for this case. a simple working example is required.

Any other way is also fine.